本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Identity-enhanced IAM 角色会话
Amazon Security Token Service(STS) 使应用程序能够获得身份增强型 IAM 角色会话。 Identity-enhanced 角色会话增加了身份上下文,该上下文在其调用时携带用户标识符。 Amazon Web Services 服务 Amazon Web Services 服务 可以在 IAM 身份中心中查找用户的群组成员资格和属性,并使用它们来授权用户访问资源。
Amazon 应用程序通过向 Amazon STS AssumeRole API 操作发出请求并在请求的ProvidedContexts参数中传递带有用户标识符 (userId) 的上下文断言来获得身份增强型角色会话。AssumeRole该上下文断言是从响应 CreateTokenWithIAM SSO OIDC 请求而收到的 idToken 声明中获取的。当 Amazon 应用程序使用身份增强型角色会话访问资源时,会 CloudTrail 记录userId、启动会话和所采取的操作。有关更多信息,请参阅 Identity-enhanced IAM 角色会话日志。
身份增强型 IAM 角色会话的类型
Amazon STS 可以创建两种不同类型的身份增强型 IAM 角色会话,具体取决于向请求提供的上下文断言。AssumeRole已从 IAM Identity Center 获取身份令牌的应用程序,可向 IAM 角色会话添加 sts:identity_context(推荐)或 sts:audit_context(为向后兼容提供支持)。身份增强型 IAM 角色会话只能采用这些上下文断言中的一个,不能同时采用两者。
Identity-enhanced 使用 sts: identity_context 创建的 IAM 角色会话
当身份增强型角色会话包含 sts:identity_context 时,被调用的 Amazon Web Services 服务
会决定资源授权是基于角色会话中代表的用户,还是基于角色。支持基于用户的授权的 Amazon Web Services 服务 ,可为应用程序管理员提供向用户或用户所属组分配访问权限的控制。
Amazon Web Services 服务 不支持基于用户的授权的用户忽略。sts:identity_context CloudTrail 记录 IAM 身份中心用户的 userID 以及该角色采取的所有操作。有关更多信息,请参阅 Identity-enhanced IAM 角色会话日志。
要从中获取这种类型的身份增强角色会话 Amazon STS,应用程序使用AssumeRole请求参数在请求中提供该sts:identity_context字段的ProvidedContexts值。使用 arn:aws:iam::aws:contextProvider/IdentityCenter 作为 ProviderArn 的值。
有关授权行为方式的更多信息,请参阅接收 Amazon Web Services 服务文档。
Identity-enhanced 使用 sts: audit_context 创建的 IAM 角色会话
过去sts:audit_context,用于启用 Amazon Web Services 服务 记录用户身份,而无需使用它来做出授权决定。 Amazon Web Services 服务 现在能够使用单一上下文 sts:identity_context-来实现这一目标并做出授权决策。我们建议在所有新的可信身份传播部署中使用 sts:identity_context。
Identity-enhanced IAM 角色会话日志
向 Amazon Web Services 服务 使用身份增强型 IAM 角色会话发出请求时,用户的 IAM 身份中心userId将登录到元素 CloudTrail 中OnBehalfOf。事件的记录方式 CloudTrail 因情况而异 Amazon Web Services 服务。并非所有 Amazon Web Services 服务
都会记录 onBehalfOf 元素。
以下是如何登录向 Amazon Web Services 服务 使用身份增强角色会话发出的请求的示例。 CloudTrail
"userIdentity": { "type": "AssumedRole", "principalId": "AROAEXAMPLE:MyRole", "arn": "arn:aws:sts::111111111111:assumed-role/MyRole/MySession", "accountId": "111111111111", "accessKeyId": "ASIAEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAEXAMPLE", "arn": "arn:aws:iam::111111111111:role/MyRole", "accountId": "111111111111", "userName": "MyRole" }, "attributes": { "creationDate": "2023-12-12T13:55:22Z", "mfaAuthenticated": "false" } }, "onBehalfOf": { "userId": "11111111-1111-1111-1111-1111111111", "identityStoreArn": "arn:aws:identitystore::111111111111:identitystore/d-111111111" } }