1.4. 查看密钥管理器策略
barbican 使用策略来确定允许哪些用户对 secret 执行操作,如添加或删除密钥。为实施这些控制,之前创建的 创建者
等 keystone 项目角色映射到 barbican 内部权限。因此,分配给这些项目角色的用户会收到对应的 barbican 权限。
默认策略在代码中定义,通常不需要任何修改。如果没有进行任何更改,您可以使用环境中的现有容器查看默认策略。如果对默认策略进行了更改,并且您希望查看默认值,请首先使用单独的系统拉取 openstack-barbican-api
容器。
前提条件
- OpenStack Key Manager 已部署并运行
流程
使用您的红帽凭证登录到 podman:
podman login username: ******** password: ********
拉取
openstack-barbican-api
容器:podman pull \ registry.redhat.io/rhosp-rhel8/openstack-barbican-api:17.1
在当前工作目录中生成策略文件:
podman run -it \ registry.redhat.io/rhosp-rhel8/openstack-barbican-api:17.1 \ oslopolicy-policy-generator \ --namespace barbican > barbican-policy.yaml
验证
查看 barbican-policy.yaml
文件,以检查 barbican 使用的策略。该策略由四个不同的角色实施,它们定义用户如何与 secret 和 secret 元数据进行交互。用户通过分配给特定角色来接收这些权限:
admin
- admin 角色可以在所有项目间读取、创建、编辑和删除 secret。
创建者
- creator 角色可以读取、创建、编辑和删除位于创建者范围的项目中的 secret。
Observer
- observer 角色只能读取 secret。
audit
- audit 角色只能读取元数据。audit 角色无法读取 secret。
例如,下列条目列出了各个项目的 admin
、观察
器和 创建者
Keystone 角色:请注意,请注意,它们被分配了 role:admin
、role:observer
和 role:creator
权限:
# #"admin": "role:admin" # #"observer": "role:observer" # #"creator": "role:creator"
这些角色也可以通过 barbican 分组在一起。例如,指定 admin_or_creator
的规则可应用到 rule:admin
或 rule:creator
的成员。
在文件的下面,有 secret:put
和 secret:delete
操作。在其右侧,注意哪些角色具有执行这些操作的权限。在以下示例中,secret:delete
表示只有 admin
和 creator
角色成员才能删除 secret 条目。此外,该规则指出该项目的 admin
或 creator
角色中的用户可以删除该项目中的机密。项目匹配由 secret_project_match
规则定义,该规则也会在策略中定义。
secret:delete": "rule:admin_or_creator and rule:secret_project_match"