使用 Amazon CLI 进行门户登录 - Amazon Tools for PowerShell
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon CLI 进行门户登录

从 4.1.538 版本的工具开始 PowerShell,配置 SSO 凭据和启动 Amazon 访问门户会话的推荐方法是使用Initialize-AWSSSOConfigurationInvoke-AWSSSOLogincmdlet,如中所述。使用配置工具身份验证 Amazon如果您无法访问该版本的 PowerShell (或更高版本)的工具,或者无法使用这些 cmdlet,则仍然可以使用来执行这些任务。 Amazon CLI

通过配置工具 PowerShell 以使用 IAM 身份中心 Amazon CLI。

如果您尚未这样做,请务必先启用并配置 IAM 身份中心,然后再继续。

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

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

  • 该共享 Amazon config文件包含一个配置文件,该[default]配置文件具有一组配置值,可从的工具中引用这些值 PowerShell。要查找此文件的位置,请参阅《Amazon SDK 和工具参考指南》中的共享文件的位置。Tools for PowerShell 使用配置文件的 SSO 令牌提供者在向发送请求之前获取凭证。 Amazon该sso_role_name值是与 IAM Identity Center 权限集关联的 IAM 角色,应允许访问您的应用程序中 Amazon Web Services 使用的权限。

    以下示例config文件显示了使用 SSO 令牌提供程序设置的[default]配置文件。配置文件的 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
重要

您的 PowerShell 会话必须安装并导入以下模块,这样 SSO 才能解析:

  • AWS.Tools.SSO

  • AWS.Tools.SSOOIDC

如果您使用的是旧版本的工具,但没有这些模块,则会收到类似于以下内容的错误:“找不到 Assem AWSSDK bly .SSOOIDC...”。 PowerShell

启动 Amazon 访问门户会话

在运行访问命令之前 Amazon Web Services,您需要一个有效的 Amazon 访问门户会话,这样 Windows 工具 PowerShell 才能使用 IAM Identity Center 身份验证来解析证书。根据您配置的会话时长,您的访问权限最终将过期,Windows 工具 PowerShell 将遇到身份验证错误。要登录 Amazon 访问门户,请在中运行以下命令 Amazon CLI。

aws sso login

由于您使用的是[default]配置文件,因此无需调用带--profile选项的命令。如果您的 SSO 令牌提供程序配置使用的是命名配置文件,则命令将aws sso login --profile named-profile改为使用命名配置文件。有关命名配置文件的更多信息,请参阅《软件开发工具包和Amazon 工具参考指南》中的 “配置文件” 部分。

要测试您是否已有活动会话,请运行以下 Amazon CLI 命令(对命名配置文件同样考虑):

aws sts get-caller-identity

对此命令的响应应该报告共享 config 文件中配置的 IAM Identity Center 账户和权限集。

注意

如果您已经有一个有效的 Amazon 访问门户会话并且aws sso login正在运行,则无需提供凭据。

登录过程可能会提示您允许 Amazon CLI 访问您的数据。由于 Amazon CLI 是在适用于 Python 的 SDK 之上构建的,因此权限消息可能包含botocore名称的变体。

示例

以下是如何将 IAM 身份中心与工具配合使用的示例 PowerShell。该示例假定以下内容:

  • 您已启用 IAM IAM Identity Center,并按照本主题前面所述对其进行了配置。SSO 属性位于 [default] 配置文件中。

  • 当您使用登录时aws sso login,该 Amazon CLI 用户至少具有 Amazon S3 的只读权限。

  • 某些 S3 存储桶可供该用户查看。

使用以下 PowerShell 命令显示 S3 存储桶列表:

Install-Module AWS.Tools.Installer Install-AWSToolsModule S3 # And if using an older version of the AWS Tools for PowerShell: Install-AWSToolsModule SSO, SSOOIDC # In older versions of the AWS Tools for PowerShell, we're not invoking a cmdlet from these modules directly, # so we must import them explicitly: Import-Module AWS.Tools.SSO Import-Module AWS.Tools.SSOOIDC # Older versions of the AWS Tools for PowerShell don't support the SSO login flow, so login with the CLI aws sso login # Now we can invoke cmdlets using the SSO profile Get-S3Bucket

如上所述,由于您使用的是[default]配置文件,因此无需使用该选项调用 Get-S3Bucket cmdlet。-ProfileName如果您的 SSO 令牌提供程序配置在使用指定的配置文件,则命令为 Get-S3Bucket -ProfileName named-profile。有关命名配置文件的更多信息,请参阅《软件开发工具包和Amazon 工具参考指南》中的 “配置文件” 部分。

其他信息

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

  • 有些命令需要指定 Amazon 区域。有多种方法可以执行此操作,包括 -Region cmdlet 选项、[default]配置文件和AWS_REGION环境变量。有关更多信息,请参阅本指南指定 Amazon 区域中的,以及软件开发工具包和Amazon 工具参考指南中的Amazon 区域

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

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

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