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