17.10. Policies
공유 파일 시스템 서비스 API는 역할 기반 액세스 제어 정책과 함께 제공됩니다. 이러한 정책은 특정 방식으로 특정 API에 액세스할 수 있는 사용자가 결정하며 서비스의 policy.json
파일에 정의됩니다.
설정 파일 policy.json
은 어디에서나 배치할 수 있습니다. 기본적으로 /var/lib/config-data/puppet-generated/manila/etc/manila/policy.json
경로가 예상됩니다.
manila에 API 호출이 수행될 때마다 정책 엔진에서는 적절한 정책 정의를 사용하여 호출을 수락할 수 있는지 결정합니다. 정책 규칙은 API 호출이 허용되는 상황에 따라 결정됩니다. /var/lib/config-data/puppet-generated/manila/etc/manila/policy.json
파일에는 규칙이 항상 허용되는 규칙인 ""
, 사용자 역할 또는 규칙을 기반으로 하는 규칙, 부울 표현식을 사용하는 규칙입니다. 다음은 manila에 대한 policy.json
파일의 스니펫입니다. OpenStack 릴리스 간에 변경될 수 있습니다.
{ "context_is_admin": "role:admin", "admin_or_owner": "is_admin:True or project_id:%(project_id)s", "default": "rule:admin_or_owner", "share_extension:quotas:show": "", "share_extension:quotas:update": "rule:admin_api", "share_extension:quotas:delete": "rule:admin_api", "share_extension:quota_classes": "", }
사용자는 정책에서 참조하는 그룹 및 역할에 할당되어야 합니다. 이 작업은 사용자 관리 명령을 사용할 때 서비스에서 자동으로 수행됩니다.
/var/lib/config-data/puppet-generated/manila/etc/manila/policy.json
에 대한 모든 변경 사항은 즉시 적용되므로 manila가 실행되는 동안 새 정책을 구현할 수 있습니다. 정책을 수동으로 수정하면 예기치 않은 부작용이 발생할 수 있으며 권장되지 않습니다. Manila는 기본 정책 파일을 제공하지 않습니다. 모든 기본 정책은 코드 기반 내에 있습니다. 다음을 실행하여 manila 코드에서 기본 정책을 생성할 수 있습니다. oslopolicy-sample-generator --config-file=var/lib/config-data/puppet-generated/manila/etc/manila/manila-policy-generator.conf