使用 Amazon 配置软件开发工具包身份验证 - Amazon SDK for .NET
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon 配置软件开发工具包身份验证

使用 Amazon Web Services进行开发时,您必须确定您的代码是如何使用 Amazon 进行身份验证的。您可以通过不同的方式对 Amazon 资源的编程访问权限进行配置,具体取决于环境和您可用的 Amazon 访问权限。

要查看适用于开发工具包的各种身份验证方法,请参阅《Amazon 开发工具包和工具参考指南》中的身份验证和访问

本主题假设新用户正在本地进行开发工作,雇主未向其提供身份验证方法,新用户将使用 Amazon IAM Identity Center 来获取临时凭证。如果您的环境与这些假设不符,则本主题中的某些信息可能不适用于您,或者某些信息可能已经提供给您。

配置此环境需要几个步骤,总结如下:

启用和配置 IAM Identity Center

要使用 IAM Identity Center,必须先启用并进行配置。要详细了解如何为开发工具包执行此操作,请查看《Amazon 开发工具包和工具参考指南》IAM Identity Center 身份验证主题内的步骤 1。具体而言,请按照我没有通过 IAM Identity Center 确立访问权限下的所有必要说明进行操作。

将开发工具包配置为使用 IAM Identity Center。

有关如何将开发工具包配置为使用 IAM Identity Center 的信息,请参阅《Amazon 开发工具包和工具参考指南》IAM Identity Center 身份验证主题内的步骤 2。完成此配置后,您的系统应包含以下元素:

  • Amazon CLI,您可用于在运行应用程序之前启动 Amazon 访问门户会话。

  • 该共享 Amazon config 文件包含一个 [default] 配置文件,在该配置文件中包含一组配置值,可以从开发工具包中引用这些配置值。要查找此文件的位置,请参阅《Amazon 开发工具包和工具参考指南》中的共享文件的位置。在向 Amazon Web Services 发送请求之前,Amazon SDK for .NET使用配置文件的 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
重要

如果您使用 Amazon IAM Identity Center 进行身份验证,您的应用程序必须引用以下 NuGet 程序包,这样 SSO 解析才能生效:

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

未能引用这些程序包将导致运行时系统异常。

开始 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 基于适用于 Python 的 SDK 而构建,因此权限消息可能包含 botocore 名称的变体。

其他信息

  • 有关在开发环境中使用 IAM Identity Center 和 SSO 的更多信息,请参阅高级身份验证部分中的单点登录。此信息包括替代方法和更高级的方法,以及向您展示如何使用这些方法的教程。

  • 有关适用于软件开发工具包身份验证的更多选项,例如配置文件和环境变量的使用,请参阅《Amazon 开发工具包和工具参考指南》中的配置章节。

  • 有关最佳实践的更多信息,请参阅《IAM 用户指南》中的 IAM 中的安全最佳实践

  • 要创建短期 Amazon 凭证,请参阅《IAM 用户指南》中的临时安全凭证

  • 要了解其他凭证提供程序,请参阅《Amazon 开发工具包和工具参考指南》中的标准化凭证提供程序