使用 Amazon 凭证代入角色来进行 Amazon SDK 和工具的身份验证
假设角色涉及使用一组临时安全凭证来访问您原本无法访问的 Amazon 资源。这些临时凭证由访问密钥 ID、秘密访问密钥和安全令牌组成。要了解有关 Amazon Security Token Service(Amazon STS)API 请求的更多信息,请参阅《Amazon Security Token Service API 参考》中的操作。
要设置您的 SDK 或工具来代入角色,必须先创建或标识要代入的特定角色。IAM 角色由角色 Amazon 资源名称(ARN)进行唯一标识。角色与另一个实体建立信任关系。使用该角色的可信实体可能是某个 Amazon Web Services 服务或另一个 Amazon Web Services 账户。有关 IAM 角色的更多一般信息,请参阅《IAM 用户指南》中的 IAM 角色。
标识 IAM 角色后,如果您受到该角色的信任,则可以将您的 SDK 或工具配置为使用该角色授予的权限。
注意
根据 Amazon 最佳实践要求,建议尽可能使用区域性端点并配置您的 Amazon Web Services 区域。
代入 IAM 角色
代入角色时,Amazon STS 返回一组临时安全凭证。这些凭证来自另一个配置文件或运行代码的实例或容器。此类代入角色的最常见使用场景是,当您拥有一个账户的 Amazon 凭证,但您的应用程序需要访问另一个账户中的资源时。
步骤 1:设置 IAM 角色
要设置您的 SDK 或工具来代入角色,必须先创建或标识要代入的特定角色。IAM 角色使用角色 ARN 进行唯一标识。角色与另一个实体建立信任关系,通常是在您的账户内或用于跨账户访问。要了解更多信息,请参阅 IAM 用户手册中的创建 IAM 角色。
步骤 2:配置 SDK 或工具
将 SDK 或工具配置为从 credential_source 或 source_profile 获取凭证。
credential_source 用于从 Amazon ECS 容器、Amazon EC2 实例或环境变量中获取凭证。
source_profile 用于从另一个配置文件获取凭证。source_profile 还支持角色链,即配置文件的层次结构,然后使用代入的角色来代入另一个角色。
当您在配置文件中指定此选项时,SDK 或工具会自动为您发出相应的 Amazon STS AssumeRole API 调用。要通过代入角色来检索和使用临时凭证,请在共享 Amazon config 文件中指定以下配置值。有关这些设置各自的更多信息,请参阅 代入角色凭证提供者设置 节。
-
role_arn- 来自您在步骤 1 中创建的 IAM 角色 -
配置
credential_source或source_profile -
(可选)
duration_seconds -
(可选)
external_id -
(可选)
mfa_serial -
(可选)
role_session_name
以下示例显示了共享 config 文件中两个代入角色选项的配置:
role_arn = arn:aws:iam::123456789012:role/my-role-namecredential_source =Ec2InstanceMetadata
[profile-with-user-that-can-assume-role] aws_access_key_id=AKIAIOSFODNN7EXAMPLEaws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYaws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE[profile dev] region =us-east-1output = json role_arn = arn:aws:iam::123456789012:role/my-role-namesource_profile =profile-with-user-that-can-assume-rolerole_session_name =my_session
有关所有代入角色凭证提供程序设置的详细信息,请参阅本指南中的 代入角色凭证提供者。