3.13. STS 中基于属性访问控制(ABAC)的会话标签
会话标签是键值对,可在生成用户时传递。它们作为 aws:PrincipalTag
在会话中传递,或者由安全令牌服务(STS)返回的临时凭证。这些主体标签由会话标签组成,这些标签作为 web 令牌的一部分以及附加到所假定角色的标签组成。
目前,会话标签仅支持作为传递给 AssumeRoleWithWebIdentity
的 web 令牌的一部分。
标签必须始终在以下命名空间中指定: https://aws.amazon.com/tags
。
如果联合用户传递的 web 令牌包含会话标签,则信任策略必须具有 sts:TagSession
权限。否则,AssumeRoleWithWebIdentity
操作会失败。
带有 sts:TagSession
的信任策略示例:
Properties
以下是会话标签的属性:
会话标签可以是多值。
注意Amazon Web Service (AWS)不支持多值的会话标签。
- Keycloak 可以设置为最多 50 个会话标签的 OpenID Connect 身份提供程序(IDP)。
- 允许键的最大大小为 128 个字符。
- 允许的值是 256 个字符的最大值。
-
标签或值不能以
aws:
开头。
3.13.1. 标签键 复制链接链接已复制到粘贴板!
以下是可在角色信任策略或角色权限策略中使用的标签键。
aws:RequestTag
- Description
将请求中传递的键值对与角色信任策略中的键值对进行比较。
如果
AssumeRoleWithWebIdentity
,会话标签可以在角色信任策略中用作aws:RequestTag
。这些会话标签由 web 令牌中的 Keycloak 传递。因此,联合用户可以假定角色。
aws:PrincipalTag
- Description
将附加到主体的键值对与策略中的键值对进行比较。
如果
AssumeRoleWithWebIdentity
,当一个用户通过身份验证后,会话标签会在临时凭证中显示为主体标签。这些会话标签由 web 令牌中的 Keycloak 传递。在角色权限策略中,它们可以用作aws:PrincipalTag
。
iam:ResourceTag
- Description
将附加到资源的键值对与策略中的键值对进行比较。
如果
AssumeRoleWithWebIdentity
,附加到该角色的标签与信任策略中的标签进行比较,以便用户假定角色。注意Ceph 对象网关现在支持 RESTful API 在角色上进行标记、列出标签和取消标记操作。
aws:TagKeys
- Description
将请求中的标签与策略中的标签进行比较。
对于
AssumeRoleWithWebIdentity
,标签用于检查角色信任策略或权限策略中的标签键,然后再允许用户假定角色。
s3:ResourceTag
- Description
将 S3 资源中存在的标签与角色权限策略中的标签进行比较,即 bucket 或对象。
它可用于在 Ceph 对象网关中授权 S3 操作。但是,AWS 中不允许这样做。
它是用于引用附加到对象或 bucket 的标签的关键。可以使用可用于相同功能的 RESTful API,将标签附加到对象或 bucket。