IAM Identity Center 的 AWS STS 条件上下文键
主体向 AWS 发出请求时,AWS 会将请求信息收集到请求上下文中,用于评估并授权请求。您可以使用 JSON 策略的 Condition
元素将请求上下文中的键与您在策略中指定的键值进行比较。请求信息由不同的来源提供,包括发出请求的主体、请求所针对的资源以及有关请求本身的元数据。服务特定条件键是为与单独的 AWS 服务一起使用而定义的。
IAM Identity Center 包含一个 AWS STS 上下文提供者,可支持 AWS 托管应用程序和第三方应用程序为 IAM Identity Center 定义的条件键添加值。这些键包含在 IAM 角色中。键值是在应用程序向 AWS STS 传递令牌时设置的。应用程序通过以下任一方式获取向 AWS STS 传递的令牌:
使用 IAM Identity Center 进行身份验证的过程中。
在与可信令牌发布者交换令牌进行可信身份传播之后。在这种情况下,应用程序会从可信令牌发布者中获取令牌,然后将该令牌交换为 IAM Identity Center 中的令牌。
这些键通常由与可信身份传播集成的应用程序使用。在某些情况下,如果存在键值,则可以使用您创建的 IAM 策略中的这些键来允许或拒绝权限。
例如,您可能想要根据 UserId
的值提供对资源的条件访问。此值表示哪个 IAM Identity Center 用户正在使用角色。示例类似于使用 SourceId
。但是,与 SourceId
不同的是,UserId
的值表示身份存储中经过验证的特定用户。此值存在于应用程序获取并传递给 AWS STS 的令牌中,并非可以包含任意值的通用字符串。
主题
identitystore:UserId
此上下文键是 IAM Identity Center 用户的 UserId
,该用户是 IAM Identity Center 发布的上下文断言的主体。上下文断言会传递给 AWS STS。您可以使用此键将发出请求所代表的 IAM Identity Center 用户的 UserId
与您在策略中指定的用户标识符进行比较。
-
可用性 – 如果在 AWS CLI 或 AWS STS
AssumeRole
API 操作中使用任何 AWS STSassume-role
命令代入角色,此键会在设置好由 IAM Identity Center 发布的上下文断言后包含在请求中。 -
数据类型 – 字符串
-
值类型 — 单值
identitystore:IdentityStoreArn
此上下文键是附加到发布上下文断言的 IAM Identity Center 实例的身份存储的 ARN,也是可供您在其中查找 identitystore:UserID
的属性的身份存储。您可以在策略中使用此键确定 identitystore:UserID
是否来自预期的身份存储 ARN。
identitycenter:ApplicationArn
此上下文键是 IAM Identity Center 向其发布上下文断言的应用程序的 ARN。您可以在策略中使用此键确定 identitycenter:ApplicationArn
是否来自预期的应用程序。使用此键有助于防止意外应用程序访问 IAM 角色。
identitycenter:CredentialId
此上下文键是身份增强型角色凭证的随机 ID,仅用于记录。由于此键值不可预测,建议不要将其用于策略中的上下文断言。
-
可用性 – 此键包含在 AWS STS
AssumeRole
API 操作的请求上下文中。该请求上下文包含 IAM Identity Center 发布的上下文断言。 -
数据类型 – 字符串
-
值类型 — 单值
identitycenter:InstanceArn
此上下文键是为 identitystore:UserID
发布上下文断言的 IAM Identity Center 实例的 ARN。您可以使用此键确定 identitystore:UserID
和上下文断言是否来自预期的 IAM Identity Center 实例的 ARN。