3.2. 了解策略


Barbican 使用策略来确定允许哪些用户对 secret 执行操作,如添加或删除密钥。要实施这些控件,keystone 项目角色(如您之前创建的 创建者 )映射到 barbican 内部权限。因此,分配给这些项目角色的用户会收到对应的 barbican 权限。

3.2.1. 查看默认策略

默认策略在代码中定义,通常不需要任何修改。您可以通过从 barbican 源代码生成来查看默认策略:

  1. 在非生产环境的系统上执行以下步骤,因为可以下载并安装其他组件。本例切换到 queens 分支,因此在使用不同版本时必须调整此功能。

    git clone https://github.com/openstack/barbican
    cd /home/stack/barbican
    git checkout origin/stable/queens
    tox -e genpolicy

    这会在包含默认设置的子目录中生成策略文件: etc/barbican/policy.yaml.sample。请注意,此路径引用仓库中的子目录,而不是系统的 /etc 目录。下方的步骤中阐述了此文件的内容。

  2. 您生成的 policy.yaml.sample 文件描述了 barbican 使用的策略。该策略由四个不同的角色实施,用于定义用户如何与 secret 和 secret 元数据交互。用户通过分配给特定角色来接收这些权限:

    • admin - 可以删除、创建/编辑和读取 secret。
    • 创建者 - 可以创建/编辑和读取机密。无法删除 secret。
    • observer - 只能读取数据。
    • Audit - 只能读取元数据。不能读取 secret。

      例如,以下条目列出每个项目的 adminwatch r 和 creator Keystone 角色:在右侧,注意它们被分配了 role:adminrole:observerrole:creator 权限:

      #
      #"admin": "role:admin"
      
      #
      #"observer": "role:observer"
      
      #
      #"creator": "role:creator"

      这些角色也可通过 barbican 分组在一起。例如,指定 admin_or_creator 的规则可以应用到 rule:adminrule:creator 的成员。

  3. 也可以在文件中进一步向下,有 secret:putsecret:delete 操作。因此,请注意哪些角色具有执行这些操作的权限。在以下示例中,secret:delete 表示只有 admincreator 角色成员才能删除 secret 条目。此外,规则也指出该项目的 admincreator 角色中的用户可以删除该项目中的机密。项目匹配由 secret_project_match 规则定义,该规则也在策略中定义。

    secret:delete": "rule:admin_or_creator and rule:secret_project_match"
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.