IAM Identity Center 凭证提供者 - Amazon 软件开发工具包和工具
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

IAM Identity Center 凭证提供者

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

注意

在 Amazon SDK API 文档中,IAM 身份中心凭证提供商被称为 SSO 凭证提供商。

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

通过 config 文件配置 IAM Identity Center 有两种方式:

  • SSO 令牌提供程序配置(推荐)-延长会话持续时间。

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

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

要设置自定义会话持续时间,必须使用 SSO 令牌提供商配置。

以下两份指南包含有关 IAM Identity Center 的其他信息:

先决条件

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

或者,请按照本指南中的 IAM Identity Center 身份验证 说明进行操作。这些说明提供了完整的指导,从启用 IAM Identity Center 到完成以下必要的共享 config 文件配置。

SSO 令牌提供商配置

注意

要使用为您创建此配置,请参阅中的使用aws configure sso向导配置您的配置文件 Amazon CLI。 Amazon CLI

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

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

您定义一个 sso-session 部分并将其关联到配置文件。必须在 sso-session 部分内设置 sso_regionsso_start_url。通常,sso_role_name必须在profile部分中设置sso_account_id和,这样 SDK 才能请求 Amazon 凭证。

注意

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

以下示例将 SDK 配置为请求 IAM Identity 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 配置。

[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

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

注册范围配置为 sso-session 的一部分。范围是 OAuth 2.0 中的一种机制,用于限制应用程序对用户账户的申请访问。应用程序可以请求一个或多个范围,向应用程序签发的访问令牌将仅限于授予的范围。这些范围定义了为已注册的 OIDC 客户端请求授权的权限和客户端检索的访问令牌。有关支持的访问范围选项,请参阅 Amazon IAM Identity Center 用户指南 中的 访问范围。以下示例将 sso_registration_scopes 设置为提供已列出账户/角色的访问权限。

[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 Identity Center 凭证提供者设置

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

sso_start_url-共享 Amazon config文件设置

指向您所在组织的 IAM Identy Center 访问门户的 URL。有关 IAM Identity Center 访问门户的更多信息,请参阅Amazon IAM Identity Center 用户指南中的使用 Amazon 访问门户

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

sso_region-共享 Amazon config文件设置

其中 Amazon Web Services 区域 包含您的 IAM 身份中心门户主机;也就是您在启用 IAM 身份中心之前选择的区域。这与您的默认 Amazon 区域无关,也可能有所不同。

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

sso_account_id-共享 Amazon config文件设置

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

要查看可用账户列表,请前往 IAM Identity Center 控制台并打开 Amazon Web Services 账户页面。您还可以在Amazon IAM Identity Center 门户 API 参考中使用 ListAccountsAPI 方法查看可用账户列表。例如,您可以调用 “列表账户” Amazon CLI 方法。

sso_role_name-共享 Amazon config文件设置

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

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

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

sso_registration_scopes-共享 Amazon config文件设置

要为 sso-session 授权的范围的逗号分隔列表。范围授权对 IAM Identity Center 持有者令牌授权终端节点的访问。要从 IAM Identity Center 服务中取回刷新后的令牌,必须赋予 sso:account:access 最小范围。有关支持的访问范围字符串,请参阅Amazon IAM Identity Center 用户指南中的 访问范围 。此设置不适用于遗留的不可刷新配置。使用传统配置发布的令牌被隐式限制在 sso:account:access 作用域范围内。

与 Amazon SDK 的兼容性

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

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