本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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_region
和 sso_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-sessionmy-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-sessionmy-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_id
和 sso_role_name
。如果您的应用程序仅使用支持持 Amazon Web Services 有者身份验证的凭证,则不需要传统 Amazon 凭证。持有者身份验证是一种 HTTP 身份验证方案,它使用称为持有者令牌的安全令牌。在这种情况下,不需要 sso_account_id
和 sso_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_url
和 sso_region
设置为配置文件指定用户门户。可以使用 sso_account_id
和 sso_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
-共享 Amazonconfig
文件设置-
指向您所在组织的 IAM Identy Center 访问门户的 URL。有关 IAM Identity Center 访问门户的更多信息,请参阅Amazon IAM Identity Center 用户指南中的使用 Amazon 访问门户。
要找到此值,请打开 IAM Identity Center 控制台
,查看控制 面板,然后找到 Amazon 访问门户 URL。 sso_region
-共享 Amazonconfig
文件设置-
其中 Amazon Web Services 区域 包含您的 IAM 身份中心门户主机;也就是您在启用 IAM 身份中心之前选择的区域。这与您的默认 Amazon 区域无关,也可能有所不同。
有关 Amazon Web Services 区域 及其代码的完整列表,请参阅中的区域终端节点Amazon Web Services 一般参考。要查找此值,请打开 IAM Identity Center 控制台
,查看控制 面板,然后查找 区域。 sso_account_id
-共享 Amazonconfig
文件设置-
通过 Amazon Organizations 服务添加 Amazon Web Services 账户 的用于身份验证的数字 ID。
要查看可用账户列表,请前往 IAM Identity Center 控制台
并打开 Amazon Web Services 账户页面。您还可以在Amazon IAM Identity Center 门户 API 参考中使用 ListAccountsAPI 方法查看可用账户列表。例如,您可以调用 “列表 账户” Amazon CLI 方法。 sso_role_name
-共享 Amazonconfig
文件设置-
以 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
-共享 Amazonconfig
文件设置-
要为
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 | 支持 |