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