5장. Policies
각 OpenStack 서비스에는 액세스 정책에 의해 관리되는 리소스가 포함되어 있습니다. 예를 들어 리소스에 다음 기능이 포함될 수 있습니다.
- 인스턴스를 생성하고 시작할 수 있는 권한
- 인스턴스에 볼륨을 연결하는 기능
RHOSP(Red Hat OpenStack Platform) 관리자는 다양한 액세스 수준의 새 역할을 도입하거나 기존 역할의 기본 동작을 변경하려면 사용자 지정 정책을 생성해야 할 수 있습니다. 또한 API 액세스 정책을 변경한 후 검증하고 작동하지 않는 경우 해당 정책을 디버깅하는 기능이 필요합니다. 구문 오류가 다운타임으로 이어질 수 있고 잘못된 권한 부여로 인해 보안 또는 유용성에 부정적인 영향을 줄 수 있는 프로덕션 배포 외부에서 정책을 검증 및 디버깅합니다.
5.1. 기존 정책 검토
서비스에 대한 정책 파일은 기존에 /etc/$service
디렉토리에 있습니다. 예를 들어 Compute(nova)에 대한 policy.json
파일의 전체 경로는 /etc/nova/policy.json
이었습니다.
기존 정책을 찾는 방법에 영향을 주는 두 가지 중요한 아키텍처 변경 사항이 있습니다.
Red Hat OpenStack Platform이 이제 컨테이너화되었습니다.
서비스 컨테이너 내부에서 정책 파일을 보는 경우 정책 파일이 기존 경로에 있습니다.
/etc/$service/policy.json
서비스 컨테이너 외부에서 정책 파일을 보는 경우 정책 파일이 다음과 같은 경로에 있습니다.
/var/lib/config-data/puppet-generated/$service/etc/$service/policy.json
각 서비스에는 코드로 제공된 기본 정책, 수동으로 생성한 경우에만 사용할 수 있는 파일 또는 with
oslopolicy
툴링이 생성되는 경우에만 사용할 수 있습니다. 정책 파일을 생성하려면 다음 예와 같이 컨테이너 내에서 theoslopolicy-policy-generator
를 사용합니다.docker exec -it keystone oslopolicy-policy-generator --namespace keystone
기본적으로 생성된 정책은 osly.policy CLI 툴을 통해 stdout로 푸시됩니다.