5.5. 示例:根据属性限制访问


重要

红帽不支持自定义角色或策略。语法错误或应用错误授权可能会对安全或可用性造成负面影响。如果在生产环境中需要自定义角色或策略,请联系红帽支持例外。

您可以创建一个策略,根据发出该 API 调用的用户的属性限制对 API 调用的访问。例如,以下默认规则指出,如果从管理上下文运行,或者令牌的用户 ID 与与目标关联的用户 ID 匹配,则允许删除密钥对。

"os_compute_api:os-keypairs:delete": "rule:admin_api or user_id:%(user_id)s"
Copy to Clipboard Toggle word wrap

注意:通过每个发行版本的每个服务中,不会保证新实施的功能。因此,使用目标服务的现有策略惯例编写规则非常重要。有关查看这些策略的详情,请参阅检查现有策略。应用于部署它们的每个版本的非生产环境中应严格测试所有策略,因为无法保证跨版本的兼容性。

根据上例,您可以制作 API 规则来根据用户是否拥有资源来扩展或限制用户的访问权限。另外,属性可以与其他限制相结合,以形成规则,如下例所示:

"admin_or_owner": "is_admin:True or project_id:%(project_id)s"
Copy to Clipboard Toggle word wrap

考虑以上示例,您可以创建一个仅限于管理员和用户的唯一规则,然后使用该规则进一步限制操作:

"admin_or_user": "is_admin:True or user_id:%(user_id)s"
"os_compute_api:os-instance-actions": "rule:admin_or_user"
Copy to Clipboard Toggle word wrap

有关可用的 policy.json 语法选项的更多信息,请参阅策略语法

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat