특정 서비스에 RBAC 정책을 제어하기 위한 policy
섹션을 추가할 수 있습니다.
ID, 계산, 네트워킹 등의 각 OpenStack 서비스에는 고유한 역할 기반 액세스 정책이 있습니다. 이러한 정책은 액세스할 수 있는 개체를 결정하며 서비스 정책 구성 파일에 정의되어 있습니다.
VMware Integrated OpenStack 배포의 경우 해당 서비스 정책 구성을 편집하기 위해
viocli update 명령을 사용할 수 있습니다.
참고: VIO 7.x의 경우 Keystone에는 기본 판독기 및 멤버 역할이 있습니다. 이것은 기본적으로 작동하지 않습니다. 사용 권한 제어 요구 사항을 충족하도록 역할 사용을 위한 해당 서비스 정책을 명시적으로 편집해야 합니다. 사용자 및 역할 관리에 대한 자세한 내용은
Keystone 사용자 및 역할 관리를 참조하십시오.
구문:
지정된 서비스에 대한 RBAC 정책을 추가하려면 viocli update <service>
명령을 사용합니다.
사용자 범위 지정 조건을 생성하는 데
project_id
,
user_id
,
domain_id
또는
role
를 사용할 수 있습니다. 일반 범위 조합에 대해 다음 연산자를 사용합니다.
- !: 작업을 수행할 수 있는 사용자가 없습니다.
- @ 또는 "": 모든 사용자가 작업을 수행할 수 있습니다.
- not, and, or: 여러 범위를 결합하기 위한 연산자입니다.
다음 샘플 코드는 일반 범위 조합에 대한 다양한 연산자를 보여 줍니다.
conf: policy: "alias_1": "is_admin:True or project_id:%(project_id)s" "alias_2": "role:reader" "alias_3": "other user scope definition" "operation_1": "!" "operation_2": "@" "operation_3": "rule:alias_1 or (rule:alias_2 and rule:alias_3)"
예:
정책 구성 파일 내에서
power_user
및
read_user
와 같은 특정 규칙을 정의할 수 있습니다. 예를 들어 다음 코드에서
read_user
는 서버 index, show 및 details에 대해 API를 호출하지만 Nova 인스턴스를 생성, 삭제, 시작 및 중지할 수는 없습니다.
conf: nova: vmware: #some configurations for VIO policy: power_user: (role:member) and project_id:%(project_id)s read_user: (role:reader) and project_id:%(project_id)s os_compute_api:servers:detail: rule:read_user os_compute_api:servers:index: rule:read_user os_compute_api:servers:show: rule:read_user os_compute_api:servers:start: rule:power_user os_compute_api:servers:stop: rule:power_user os_compute_api:servers:create: rule:power_user os_compute_api:servers:delete: rule:power_user
전체 정책 검토:
서비스 포드를 찾은 다음 정책 파일 컨텐츠를 검토해야 합니다. 전체 Nova 정책을 검토하려면 다음 명령을 사용합니다.
# osctl get pod | grep nova-api-osapi nova-api-osapi-7d7978fb44-b24rl 2/2 Running 0 3d23h # osctl exec -it nova-api-osapi-7d7978fb44-b24rl /bin/bash Defaulting container name to nova-osapi. Use 'kubectl describe pod/nova-api-osapi-7d7978fb44-b24rl -n openstack' to see all of the containers in this pod. [root@nova-api-osapi-7d7978fb44-b24rl /]# cat /etc/nova/policy.yaml os_compute_api:os-simple-tenant-usage:discoverable: '@' ......
다양한 서비스의 정책에 대한 자세한 내용은 다음 OpenStack 커뮤니티 문서를 참조하십시오.
Keystone: Keystone 정책
Nova: Nova 정책
Cinder: Cinder 정책
Glance: Glance 정책
Neutron: Neutron 정책