可以新增 policy 區段,用於控制特定服務的 RBAC 原則。

每個 OpenStack 服務 (例如,身分識別、計算、網路等) 都有自己的角色型存取原則。這些原則確定了您可以存取的物件,它們在服務原則組態檔中進行定義。對於 VMware Integrated OpenStack 部署,可以使用 viocli update 命令編輯相應的服務原則組態。
備註: 對於 VIO 7.x,Keystone 具有預設的讀者和成員角色。依預設,該角色不起作用。必須編輯相應的服務原則,明確使用該角色滿足權限控制要求。如需有關使用者和角色管理的詳細資訊,請參閱 Keystone 使用者和角色管理

語法:

使用 viocli update <service> 命令為指定的服務新增 RBAC 原則。

可以使用 project_iduser_iddomain_idrole 建立使用者範圍條件。對於一般範圍組合,請使用以下運算子:
  • ! :任何使用者都無法執行該作業。
  • @"”:任何使用者都可以執行該作業。
  • notandor:用於組合多個範圍的運算子。
以下範例代碼顯示了一般範圍組合所用的不同運算子:
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_userread_user。例如,在以下代碼中, read_user 呼叫用於伺服器索引、顯示和詳細資料的 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 原則