我们已宣布
使用 AWS 进行 SDK 身份验证
使用 AWS 服务进行开发时,您必须确定您的代码是如何使用 AWS 进行身份验证的。您可以通过不同的方式来配置对 AWS 资源的编程访问权限,具体取决于环境和可用的 AWS 访问权限。
要选择您的身份验证方法并针对 SDK 进行配置,请参阅 AWS SDK 和工具参考指南中的身份验证和访问。
我们建议:在本地开发且雇主未向其提供身份验证方法的新用户应设置 AWS IAM Identity Center。此方法包括安装 AWS CLI 以便于配置和定期登录 AWS 访问门户。如果选择此方法,则在完成 AWS SDK 和工具参考指南中的 IAM Identity Center 身份验证程序后,您的环境应包含以下元素:
-
AWS CLI,您可用于在运行应用程序之前启动 AWS 访问门户会话。
-
共享 AWS
config
文件,其[default]
配置文件包含一组可从 SDK 中引用的配置值。要查找此文件的位置,请参阅《AWS SDK 和工具参考指南》中的共享文件的位置。 -
共享
config
文件设置了region
设置。这将设置 SDK 用于 AWS 请求的默认值 AWS 区域。此区域用于未指定使用区域的 SDK 服务请求。 -
在向 AWS 发送请求之前,SDK 使用配置文件的 SSO 令牌提供程序配置来获取凭证。
sso_role_name
值是与 IAM Identity Center 权限集关联的 IAM 角色,允许访问应用程序中使用的 AWS 服务。以下示例
config
文件展示了使用 SSO 令牌提供程序配置来设置的默认配置文件。配置文件的sso_session
设置是指所指定的sso-session
节。sso-session
节包含启动 AWS 访问门户会话的设置。[default] sso_session = my-sso sso_account_id =
111122223333
sso_role_name =SampleRole
region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url =https://provided-domain.awsapps.com/start
sso_registration_scopes = sso:account:access
SDK for JavaScript 无需向应用程序添加其它包(例如 SSO
和 SSOOIDC
)即可使用 IAM Identity Center 身份验证。
开始 AWS 访问门户会话
在运行访问 AWS 服务 的应用程序之前,需要有活动的 AWS 访问门户会话,以便开发工具包使用 IAM Identity Center 身份验证来解析凭证。根据配置的会话时长,访问权限最终将过期,并且开发工具包将遇到身份验证错误。要登录 AWS 访问门户,请在 AWS CLI 中运行以下命令。
aws sso login
如果遵循引导并具有默认的配置文件设置,则无需使用 --profile
选项来调用该命令。如果您的 SSO 令牌提供程序配置在使用指定的配置文件,则命令为 aws sso login --profile named-profile
。
要选择性测试是否已有活动会话,请运行以下 AWS CLI 命令。
aws sts get-caller-identity
如果会话是活动的,则对此命令的响应会报告共享 config
文件中配置的 IAM Identity Center 账户和权限集。
注意
如果您已经有一个有效的 AWS 访问门户会话并且运行了 aws sso
login
,则无需提供凭证。
登录过程可能会提示您允许 AWS CLI 访问您的数据。由于 AWS CLI 基于适用于 Python 的 SDK 而构建,因此权限消息可能包含 botocore
名称的变体。
更多身份验证信息
人类用户,也称为人类身份,是应用程序的人员、管理员、开发人员、操作员和使用者。他们必须有身份才能访问您的 AWS 环境和应用程序。作为组织成员的人类用户(即您、开发人员)也称为工作人员身份。
访问 AWS 时使用临时凭证。您可以使用身份提供商来以担任角色的形式提供为人类用户对 AWS 账户的联合访问权限,这将提供临时证书。对于集中式访问权限管理,我们建议使用 AWS IAM Identity Center (IAM Identity Center) 来管理对您账户的访问权限以及这些账户中的其他权限。有关更多替代方案,请参阅以下内容:
-
有关最佳实践的更多信息,请参阅《IAM 用户指南》中的 IAM 中的安全最佳实践。
-
要创建短期 AWS 凭证,请参阅《IAM 用户指南》中的临时安全凭证。
-
要了解其它 SDK for JavaScript 凭证提供程序,请参阅《AWS SDKs and Tools Reference Guide》中的 Standardized credential providers。