12.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