AWS 使用 AWS 适用于 Ruby 的 SDK 进行身份验证 - AWS 适用于 Ruby 的 SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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 访问门户会话。

  • 共享 AWSconfig 文件,其 [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 = 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

AWS 适用于 Ruby 的 SDK 无需向您的应用程序添加额外的 gem(例如aws-sdk-ssoaws-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 中的标准化凭据提供程序