本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS 使用 AWS 适用于 Ruby 的 SDK 进行身份验证
使用开发 AWS 时,您必须确定您的代码是如何进行身份验证的。 AWS 服务您可以根据环境和可用的访问权限以不同的方式配置对 AWS 资源的编程 AWS 访问权限。
要选择您的身份验证方法并针对 SDK 进行配置,请参阅和工具参考指南中的身份验证AWS SDKs 和访问。
使用控制台凭证
对于本地开发,我们建议新用户使用其现有的 AWS 管理控制台登录凭证以编程方式访问 AWS 服务。基于浏览器的身份验证后, AWS 生成可与 AWS 命令行界面 (CL AWS I) 和 AWS SDK for Ruby 等本地开发工具配合使用的临时证书。
如果您选择此方法,请按照说明使用 AWS CLI 使用控制台凭据登录进行 AWS 本地开发。
AWS 适用于 Ruby 的 SDK 无需向应用程序中添加额外的 gem(例如aws-sdk-signin)即可使用控制台凭据登录。
使用 IAM 身份中心身份验证
如果您选择此方法,请完成AWS SDKs 和工具参考指南中的 IAM Identity Center 身份验证程序。此后,您的环境应包含以下元素:
-
AWS CLI,用于在运行应用程序之前启动 AWS 访问门户会话。
-
共享 AWS
config文件,其[default]配置文件包含一组可从 SDK 中引用的配置值。要查找此文件的位置,请参阅AWS SDKs 和工具参考指南中的共享文件的位置。 -
共享
config文件设置了region设置。这将设置 SDK 用于 AWS 请求的默认值 AWS 区域 。此区域用于未指定使用区域的 SDK 服务请求。 -
在向 AWS发送请求之前,SDK 使用配置文件的 SSO 令牌提供程序配置来获取凭证。该
sso_role_name值是与 IAM 身份中心权限集关联的 IAM 角色,允许访问您的应用程序中的用户。 AWS 服务以下示例
config文件展示了使用 SSO 令牌提供程序配置来设置的默认配置文件。配置文件的sso_session设置是指所指定的sso-session节。该sso-session部分包含启动 AWS 访问门户会话的设置。[default] sso_session = my-sso sso_account_id =111122223333sso_role_name =SampleRoleregion = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url =https://provided-domain.awsapps.com/startsso_registration_scopes = sso:account:access
AWS 适用于 Ruby 的 SDK 无需向您的应用程序添加额外的 gem(例如aws-sdk-sso和aws-sdk-ssooidc)即可使用 IAM 身份中心身份验证。
启动 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 用户指南中的临时安全证书。
-
要了解 AWS SDK for Ruby 凭证提供程序链,以及 SDK 如何按顺序自动尝试不同的身份验证方法,请参阅凭证提供程序链。
-
有关 AWS SDK 凭据提供商的配置设置,请参阅《工具参考指南》AWS SDKs 中的标准化凭据提供程序。