本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
IAM身份中心凭证提供商
此身份验证机制 Amazon IAM Identity Center 用于获取您的代码的单点登录 (SSO) 访问 Amazon Web Services 服务 权限。
注意
在 Amazon SDKAPI文档中,IAM身份中心凭据提供者被称为凭SSO证提供者。
启用 IAM Identity Center 后,您可以在共享 Amazon
config
文件中为其设置定义配置文件。此配置文件用于连接到IAM身份中心访问门户。当用户成功通过 Identity Center 进行IAM身份验证后,门户会返回与该用户关联的IAM角色的短期证书。要了解如何从配置中SDK获取临时证书并将其用于 Amazon Web Services 服务 请求,请参阅了解 IAM Identity Center 身份验证。
通过该config
文件配置IAM身份中心有两种方法:
-
(推荐)SSO令牌提供者配置-延长会话持续时间。包括对自定义会话持续时间的支持。
-
传统不可刷新的配置-使用固定的八小时会话。
在这两种配置中,您都需要在会话到期后重新登录。
以下两份指南包含有关IAM身份中心的其他信息:
要深入了解SDKs和工具如何使用和使用此配置刷新凭据,请参阅了解 IAM Identity Center 身份验证。
先决条件
您必须先启用 “IAM身份中心”。有关启用 Ident IAM ity Center 身份验证的详细信息,请参阅Amazon IAM Identity Center 用户指南 Amazon IAM Identity Center中的启用。
注意
或者,有关本页详细介绍的完整先决条件和必要的共享config
文件配置,请参阅设置指导说明IAM您的SDK或工具的身份中心身份验证。
SSO令牌提供者配置
当您使用SSO令牌提供程序配置时,您的 Amazon SDK或工具会自动刷新您的会话,直到延长的会话时段为止。有关会话持续时间和最长持续时间的更多信息,请参阅Amazon IAM Identity Center 用户指南中的配置 Amazon 访问门户和 Ident IAM ity Center 集成应用程序的会话持续时间。
该config
文件的sso-session
部分用于对用于获取SSO访问令牌的配置变量进行分组,然后可以使用这些变量来获取 Amazon 凭证。有关config
文件中此部分的更多详细信息,请参阅配置文件的格式。
以下共享config
文件示例使用配置文件配置SDK或工具,以请求 Ident dev
IAM ity 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
截面并将其与截面相关联。通常,sso_role_name
必须在profile
部分中设置sso_account_id
和,以便SDK可以请求 Amazon 证书。 sso_region
sso_start_url
、和,sso_registration_scopes
必须在该sso-session
部分中设置。
sso_account_id
并且sso_role_name
不是所有SSO令牌配置场景都必需的。如果您的应用程序仅使用支持持 Amazon Web Services 服务 有者身份验证的凭证,则不需要传统 Amazon 凭证。持有人身份验证是一种使用称为不记名令牌的安全令牌的HTTP身份验证方案。在这种情况下,不需要 sso_account_id
和 sso_role_name
。要确定该服务是否支持不记名令牌授权,请参阅个人 Amazon Web Services 服务 指南。
注册范围配置为 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-sessionmy-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身份中心凭证提供商设置
使用以下方法配置此功能:
sso_start_url
-共享 Amazonconfig
文件设置-
指向贵组织的 Ident IAM ity Center 颁发者URL或访问门户URL的。URL有关更多信息,请参阅《Amazon IAM Identity Center 用户指南》中的使用 Amazon 访问门户。
要找到此值,请打开 Ident IAMity Center 控制台
,查看控制面板,找到Amazon 访问门户URL。 -
或者,从的 2.22.0 版本开始 Amazon CLI,您可以改用发行者的值。Amazon URL
-
sso_region
-共享 Amazonconfig
文件设置-
其中 Amazon Web Services 区域 包含您的IAM身份中心门户主机;也就是您在启用 Ident IAM ity Center 之前选择的区域。这与您的默认 Amazon 区域无关,也可能有所不同。
有关 Amazon Web Services 区域 及其代码的完整列表,请参阅中的区域终端节点Amazon Web Services 一般参考。要查找此值,请打开 Ident IAMity Center 控制台
,查看控制面板,然后找到区域。 sso_account_id
-共享 Amazonconfig
文件设置-
通过 Amazon Organizations 服务添加 Amazon Web Services 账户 的用于身份验证的数字 ID。
要查看可用账户列表,请转到IAM身份中心控制台
并打开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策略和自定义权限策略,并定义了用户对其分配的访问权限级别 Amazon Web Services 账户。
要查看每个可用权限集的列表 Amazon Web Services 账户,请转到 Ident IAMity Center 控制台
并打开Amazon Web Services 账户页面。选择 Amazon Web Services 账户 表格中列出的正确权限集名称。您还可以使用Amazon IAM Identity Center 门户API参考中的ListAccountRolesAPI方法查看可用权限集列表。例如,您可以调用 Amazon CLI 方法list-account-roles 。 sso_registration_scopes
-共享 Amazonconfig
文件设置-
要为
sso-session
授权的范围的逗号分隔列表。应用程序可以请求一个或多个范围,向应用程序签发的访问令牌将仅限于授予的范围。要从 Ident IAM ity Center 服务取回刷新令牌,sso:account:access
必须授予最小范围。有关可用访问范围选项的列表,请参阅Amazon IAM Identity Center 用户指南中的访问范围。这些范围定义了为注册OIDC客户端请求授权的权限以及客户端检索的访问令牌。作用域授权访问IAM身份中心持有者令牌授权的端点。
此设置不适用于遗留的不可刷新配置。使用传统配置发布的令牌被隐式限制在
sso:account:access
作用域范围内。
兼容 Amazon SDKs
以下内容SDKs支持本主题中描述的功能和设置。所有部分例外情况均已注明。 Amazon SDK for Java 和 Amazon SDK for Kotlin 唯一支持任何JVM系统属性设置。
SDK | 支持 | 备注或更多信息 |
---|---|---|
Amazon 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 | 是 |