IAM身份中心凭证提供商 - AWS SDKs和工具

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

IAM身份中心凭证提供商

此身份验证机制 AWS IAM Identity Center 用于获取您的代码的单点登录 (SSO) 访问 AWS 服务 权限。

注意

在 AWS SDKAPI文档中,Ident IAM ity Center 凭据提供者被称为SSO凭证提供者。

启用 IAM Identity Center 后,您可以在共享 AWS config文件中为其设置定义配置文件。此配置文件用于连接到IAM身份中心访问门户。当用户成功通过 Identity Center 进行IAM身份验证后,门户会返回与该用户关联的IAM角色的短期证书。要了解如何从配置中SDK获取临时证书并将其用于 AWS 服务 请求,请参阅了解 IAM Identity Center 身份验证

通过该config文件配置IAM身份中心有两种方法:

  • (推荐)SSO令牌提供者配置-延长会话持续时间。包括对自定义会话持续时间的支持。

  • 传统不可刷新的配置-使用固定的八小时会话。

在这两种配置中,您都需要在会话到期后重新登录。

以下两份指南包含有关IAM身份中心的其他信息:

要深入了解SDKs和工具如何使用和使用此配置刷新凭据,请参阅了解 IAM Identity Center 身份验证

先决条件

您必须先启用 “IAM身份中心”。有关启用 Ident IAM ity Center 身份验证的详细信息,请参阅《AWS IAM Identity Center 用户指南》 AWS IAM Identity Center中的 “启用”。

注意

或者,有关本页详细介绍的完整先决条件必要的共享config文件配置,请参阅设置指导说明IAM您的SDK或工具的身份中心身份验证

SSO令牌提供者配置

当您使用SSO令牌提供程序配置时,您的 AWS SDK或工具会自动刷新您的会话,直到延长的会话时段为止。有关会话持续时间和最长持续时间的更多信息,请参阅AWS IAM Identity Center 用户指南中的配置 AWS 访问门户和 Ident IAM ity Center 集成应用程序的会话持续时间。

config文件的sso-session部分用于对用于获取SSO访问令牌的配置变量进行分组,然后可以使用这些变量来获取 AWS 凭证。有关config文件中此部分的更多详细信息,请参阅配置文件的格式

以下共享config文件示例使用配置文件配置SDK或工具,以请求 Ident dev IAM ity Center 凭证。

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access

前面的示例显示了您定义一个sso-session截面并将其与截面相关联。通常,sso_role_name必须在profile部分中设置sso_account_id和,以便SDK可以请求 AWS 证书。 sso_regionsso_start_url、和,sso_registration_scopes必须在该sso-session部分中设置。

sso_account_id并且sso_role_name不是所有SSO令牌配置场景都必需的。如果您的应用程序仅使用支持持 AWS 服务 有者身份验证的凭证,则不需要传统 AWS 凭证。持有人身份验证是一种使用称为不记名令牌的安全令牌的HTTP身份验证方案。在这种情况下,不需要 sso_account_idsso_role_name。要确定该服务是否支持不记名令牌授权,请参阅个人 AWS 服务 指南。

注册范围配置为 sso-session 的一部分。作用域是一种机制 OAuth 2.0 限制应用程序对用户帐户的访问权限。前面的示例设置sso_registration_scopes为列出账户和角色提供必要的访问权限。

以下示例显示了如何在多个配置文件中重复使用相同的sso-session配置。

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [profile prod] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole2 [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access

身份验证令牌缓存到 ~/.aws/sso/cache 目录下的磁盘上,文件名基于会话名称。

遗留的不可刷新配置

使用遗留的不可刷新配置不支持自动令牌刷新。我们建议改用 SSO令牌提供者配置

要使用传统的不可刷新配置,您必须在配置文件中指定以下设置:

  • sso_start_url

  • sso_region

  • sso_account_id

  • sso_role_name

可以使用 sso_start_urlsso_region 设置为配置文件指定用户门户。可以使用 sso_account_idsso_role_name 设置来指定权限。

以下示例设置了 config 文件中的四个必需值。

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 111122223333 sso_role_name = SSOReadOnlyRole

身份验证令牌缓存到 ~/.aws/sso/cache 目录下的磁盘上,文件名基于 sso_start_url

IAM身份中心凭证提供商设置

使用以下方法配置此功能:

sso_start_url-共享 AWS config文件设置

指向贵组织的 Ident IAM ity Center 访问门户。URL有关 Ident IAM ity Center 访问门户的更多信息,请参阅AWS IAM Identity Center 用户指南》中的使用 AWS 访问门户

要找到此值,请打开 Ident IAMity Center 控制台,查看控制面板,然后找到AWS 访问门户URL

sso_region-共享 AWS config文件设置

其中 AWS 区域 包含您的 Ident IAM ity Center 门户主机;也就是您在启用 Ident IAM ity Center 之前选择的区域。这与您的默认 AWS 区域无关,也可能有所不同。

有关 AWS 区域 及其代码的完整列表,请参阅中的区域终端节点Amazon Web Services 一般参考。要查找此值,请打开 Ident IAMity Center 控制台,查看控制面板,然后找到区域

sso_account_id-共享 AWS config文件设置

通过 AWS Organizations 服务添加 AWS 账户 的用于身份验证的数字 ID。

要查看可用账户列表,请转到IAM身份中心控制台并打开AWS 账户页面。您还可以使用AWS IAM Identity Center 门户API参考中的ListAccountsAPI方法查看可用账户列表。例如,您可以调用 “列表账户” AWS CLI 方法。

sso_role_name-共享 AWS config文件设置

作为IAM角色配置的权限集的名称,用于定义用户生成的权限。角色必须存在于 AWS 账户 指定的中sso_account_id。使用角色名称,而不是角色 Amazon 资源名称 (ARN)。

权限集附有IAM策略和自定义权限策略,并定义了用户对其分配的访问权限级别 AWS 账户。

要查看每个可用权限集的列表 AWS 账户,请转到 Ident IAMity Center 控制台并打开AWS 账户页面。选择 AWS 账户 表格中列出的正确权限集名称。您还可以使用AWS IAM Identity Center 门户API参考中的ListAccountRolesAPI方法查看可用权限集列表。例如,您可以调用 AWS CLI 方法list-account-roles

sso_registration_scopes-共享 AWS config文件设置

要为 sso-session 授权的范围的逗号分隔列表。应用程序可以请求一个或多个范围,向应用程序签发的访问令牌将仅限于授予的范围。sso:account:access必须授予的最小范围为,才能从 Ident IAM ity Center 服务中取回刷新令牌。有关可用访问范围选项的列表,请参阅AWS IAM Identity Center 用户指南中的访问范围

这些范围定义了为注册OIDC客户端请求授权的权限以及客户端检索的访问令牌。作用域授权访问IAM身份中心持有者令牌授权的端点。

此设置不适用于遗留的不可刷新配置。使用传统配置发布的令牌被隐式限制在 sso:account:access 作用域范围内。

兼容 AWS SDKs

以下内容SDKs支持本主题中描述的功能和设置。所有部分例外情况均已注明。 AWS SDK for Java 和 AWS SDK for Kotlin 唯一支持任何JVM系统属性设置。

SDK 支持 备注或更多信息
AWS CLI v2
SDK对于 C++
SDK适用于 Go V2 (1.x)
SDK适用于 Go 1.x (V1) 要使用共享 config 文件设置,必须开启从配置文件加载的功能;请参阅会话
SDK适用于 Java 2.x credentials 文件中也支持配置值。
SDK适用于 Java 1.x
SDK适用于 JavaScript 3.x
SDK适用于 JavaScript 2.x
SDK对于 Kotlin 来说
SDK对于。 NET3.x
SDK适用于 PHP 3.x
SDK适用于 Python (Boto3)
SDK适用于 Ruby 3.x
SDK对于 Rust 部分 仅限遗留的不可刷新配置。
SDK为斯威夫特
用于 PowerShell