选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

示例 3:使用 OPA 和 Rego 对 RBAC 和 ABAC 进行多租户访问控制

聚焦模式
示例 3:使用 OPA 和 Rego 对 RBAC 和 ABAC 进行多租户访问控制 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

要增强上一节中的 RBAC 示例,您可以向用户添加属性。 

RBAC 和 ABAC 有 OPA 和 Rego

此示例包含与上一个示例相同的角色,但添加了用户属性account_lockout_flag。这是用户特定的属性,与任何特定角色均无关联。您可以使用之前在本示例中使用的 RBAC 外部数据: 

{ "roles": { "tenant_a": { "all_access_role": ["viewData", "updateData"] }, "tenant_b": { "update_data_role": ["updateData"], "view_data_role": ["viewData"] } } }

可以将account_lockout_flag用户属性作为用户 Bob 的 OPA 查询输入的一部分传递给数据服务:/viewData/tenant_a

{ "tenant_id": "tenant_a", "role": "all_access_role", "path": ["viewData", "tenant_a"], "method": "GET", "account_lockout_flag": "true" }

查询访问决策的规则与前面的示例类似,但包括另外一行用于检查该account_lockout_flag属性:

default allowViewData = false allowViewData = true { input.method == "GET" input.path = ["viewData", tenant_id] input.tenant_id == tenant_id role_permissions := data.roles[input.tenant_id][input.role][_] contains(role_permissions, "viewData") input.account_lockout_flag == "false" }

此查询返回的授权决定为false。这是因为true适用于 Bob,而 Rego 规则allowViewData拒绝访问,尽管 Bob 的角色和租户account_lockout_flag attribute是正确的。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。