本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
假设角色使用网络身份或 OpenID Connect 进行身份验证和工具 AWS SDKs
假设角色涉及使用一组临时安全凭证来访问您原本无法访问的 AWS 资源。这些临时凭证由访问密钥 ID、秘密访问密钥和安全令牌组成。要了解有关 AWS Security Token Service (AWS STS)API 请求的更多信息,请参阅《AWS Security Token Service API 参考》中的操作。
要设置您的 SDK 或工具来代入角色,必须先创建或标识要代入的特定角色。IAM 角色由角色 Amazon 资源名称(ARN)进行唯一标识。角色与另一个实体建立信任关系。使用该角色的可信实体可能是网络身份提供商、OpenID Connect (OIDC) 或 SAML 联合体。要了解有关 IAM 角色的更多信息,请参阅 IAM 用户指南中的代入角色的方法。
在您的软件开发工具包中配置 IAM 角色后,如果将该角色配置为信任您的身份提供商,则可以进一步配置您的软件开发工具包以代入该角色以获得临时 AWS 证书。
注意
AWS 最佳做法是尽可能使用区域终端节点并配置您的终端节点AWS 区域。
使用 Web 身份或 OpenID Connect 进行联合
你可以使用公共身份提供商(例如 Login With Amazon、Facebook、GoogleJWTs)提供的 JSON 网络令牌 () 来获取临时 AWS 证书AssumeRoleWithWebIdentity
。根据它们的使用方式,它们 JWTs可能被称为 ID 令牌或访问令牌。您也可以使用由与 OIDC 发现协议兼容的身份提供商 (IdPs) JWTs 签发,例如 EntraId 或。 PingFederate
如果您使用的是 Amazon Elastic Kubernetes Service,则此功能允许您为 Amazon EKS 集群中的每个服务账户指定不同的 IAM 角色。这个 Kubernetes 功能会分发 JWTs 到你的 pod 中,然后由该凭证提供者使用这些容器来获取临时证书。 AWS 有关此 Amazon EKS 配置的更多信息,请参阅《Amazon EKS 用户指南》中的服务账户的 IAM 角色。但是,对于更简单的选项,我们建议您改用 Amazon EKS 容器组身份,前提是您的 SDK 支持它。
步骤 1:设置身份提供者和 IAM 角色
要配置与外部 IdP 的联合,请使用 IAM 身份提供商 AWS 通知外部 IdP 及其配置。这将在您 AWS 账户 和外部 IdP 之间建立信任。在将 SDK 配置为使用 JSON Web 令牌 (JWT) 进行身份验证之前,必须先设置身份提供商 (IdP) 和用于访问它的 IAM 角色。要进行设置,请参阅 IAM 用户指南中的 创建 Web 身份或 OpenID Connect 联合身份验证角色(控制台)。
步骤 2:配置 SDK 或工具
将 SDK 或工具配置为使用来自的 JSON Web 令牌 (JWT) AWS STS 进行身份验证。
当您在配置文件中指定此项时,SDK 或工具会自动为您调用相应 AWS STS AssumeRoleWithWebIdentity
的 API。要使用 Web 联合身份验证检索和使用临时证书,请在共享 AWS config
文件中指定以下配置值。有关这些设置各自的更多信息,请参阅 代入角色凭证提供者设置 节。
-
role_arn
- 来自您在步骤 1 中创建的 IAM 角色 -
web_identity_token_file
- 来自外部 IdP -
(可选)
duration_seconds
-
(可选)
role_session_name
以下是使用 Web 身份代入角色的共享 config
文件配置示例:
[profile
web-identity
] role_arn=arn:aws:iam::123456789012
:role/my-role-name
web_identity_token_file=/path/to/a/token
注意
有关移动应用程序,请考虑使用 Amazon Cognito。Amazon Cognito 充当身份凭证代理程序并为您完成许多联合身份验证工作。但是,Amazon Cognito 身份提供商不像其他身份提供商那样包含在 SDKs 和工具核心库中。要访问 Amazon Cognito API,请在您的 SDK 或工具的构建或库中包含 Amazon Cognito 服务客户端。有关用法 AWS SDKs,请参阅 Amazon Cognito 开发者指南中的代码示例。
有关所有代入角色凭证提供程序设置的详细信息,请参阅本指南中的 代入角色凭证提供者。