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