本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用配置SDK身份验证 AWS
使用开发 AWS 时,您必须确定您的代码是如何进行身份验证的。 AWS 服务您可以通过不同的方式配置对 AWS 资源的编程访问权限,具体取决于环境和可用的 AWS 访问权限。
要查看的各种身份验证方法SDK,请参阅《工具参考指南》和《工具参考指南》中的身份验证AWS SDKs和访问权限。
本主题假设新用户正在本地开发,雇主未向其提供身份验证方法,并将使用该用户 AWS IAM Identity Center 来获取临时证书。如果您的环境与这些假设不符,则本主题中的某些信息可能不适用于您,或者某些信息可能已经提供给您。
配置此环境需要几个步骤,总结如下:
启用和配置IAM身份中心
要使用 I IAM dentity Center,必须先启用并配置它。要查看有关如何执行此操作的详细信息SDK,请查看AWS SDKs和工具参考指南中 Identity Cent er IAM 身份验证主题中的步骤 1。具体而言,请按照 “我尚未通过IAM身份中心建立访问权限” 中的所有必要说明进行操作。
配置SDK为使用IAM身份中心。
有关如何配置为使用 Ident IAM ity Center 的信息,请参阅《AWS SDKs和工具参考指南》中IAM身份中心身份验证主题的步骤 2。SDK完成此配置后,您的系统应包含以下元素:
-
AWS CLI,用于在运行应用程序之前启动 AWS 访问门户会话。
-
该共享 AWS
config
文件包含一个配置文件,该[default]
配置文件具有一组配置值,可以从中引用SDK。要查找此文件的位置,请参阅AWS SDKs和工具参考指南中的共享文件的位置。在向发送请求之前, AWS SDK for .NET 使用配置文件的SSO令牌提供者获取凭证 AWS。该sso_role_name
值是与 Ident IAM ity 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
重要
如果您使用 AWS IAM Identity Center 进行身份验证,则您的应用程序必须引用以下 NuGet软件包才能进行SSO解析:
-
AWSSDK.SSO
-
AWSSDK.SSOOIDC
未能引用这些程序包将导致运行时系统异常。
启动 AWS 访问门户会话
在运行可访问的应用程序之前 AWS 服务,您需要一个有效的 AWS 访问门户会话才能使用 Identity Center IAM 身份验证来解析凭据。SDK根据您配置的会话时长,您的访问权限最终将过期,并且SDK会遇到身份验证错误。要登录 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 是在SDK适用于 Python 的基础上构建的,因此权限消息可能包含botocore
名称的变体。