3.2. 了解策略
Barbican 使用策略来确定允许哪些用户对 secret 执行操作,如添加或删除密钥。要实施这些控件,keystone 项目角色(如您之前创建的 创建者 )映射到 barbican 内部权限。因此,分配给这些项目角色的用户会收到对应的 barbican 权限。
3.2.1. 查看默认策略 复制链接链接已复制到粘贴板!
默认策略在代码中定义,通常不需要任何修改。您可以通过从 barbican 源代码生成来查看默认策略:
在非生产环境的系统上执行以下步骤,因为可以下载并安装其他组件。本例切换到
queens分支,因此在使用不同版本时必须调整此功能。git clone https://github.com/openstack/barbican cd /home/stack/barbican git checkout origin/stable/queens tox -e genpolicy
git clone https://github.com/openstack/barbican cd /home/stack/barbican git checkout origin/stable/queens tox -e genpolicyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会在包含默认设置的子目录中生成策略文件:
etc/barbican/policy.yaml.sample。请注意,此路径引用仓库中的子目录,而不是系统的/etc目录。下方的步骤中阐述了此文件的内容。您生成的
policy.yaml.sample文件描述了 barbican 使用的策略。该策略由四个不同的角色实施,用于定义用户如何与 secret 和 secret 元数据交互。用户通过分配给特定角色来接收这些权限:-
admin- 可以删除、创建/编辑和读取 secret。 -
创建者- 可以创建/编辑和读取机密。无法删除 secret。 -
observer- 只能读取数据。 Audit- 只能读取元数据。不能读取 secret。例如,以下条目列出每个项目的
admin、watchr 和creatorKeystone 角色:在右侧,注意它们被分配了role:admin、role:observer和role:creator权限:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这些角色也可通过 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"
secret:delete": "rule:admin_or_creator and rule:secret_project_match"Copy to Clipboard Copied! Toggle word wrap Toggle overflow