

的版本 5 (V5) AWS Tools for PowerShell 已经发布！

有关重大更改和迁移应用程序的信息，请参阅[迁移主题](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)。

 [https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)

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

# 使用 AWS CLI 进行门户登录
<a name="creds-idc-cli"></a>

从 4.1.538 版本的工具开始 PowerShell，配置 SSO 凭据和启动 AWS 访问门户会话的推荐方法是使用[https://docs.aws.amazon.com/powershell/v5/reference/index.html?page=Initialize-AWSSSOConfiguration.html&tocid=Initialize-AWSSSOConfiguration](https://docs.aws.amazon.com/powershell/v5/reference/index.html?page=Initialize-AWSSSOConfiguration.html&tocid=Initialize-AWSSSOConfiguration)和 [https://docs.aws.amazon.com/powershell/v5/reference/index.html?page=Invoke-AWSSSOLogin.html&tocid=Invoke-AWSSSOLogin](https://docs.aws.amazon.com/powershell/v5/reference/index.html?page=Invoke-AWSSSOLogin.html&tocid=Invoke-AWSSSOLogin)cmdlet，如中所述。[使用进行身份验证 AWS Tools for PowerShell AWS](creds-idc.md)如果您无法访问该版本的 PowerShell （或更高版本）的工具，或者无法使用这些 cmdlet，则仍然可以使用来执行这些任务。 AWS CLI

## 通过配置工具 PowerShell 以使用 IAM 身份中心 AWS CLI。
<a name="idc-config-sdk-cli"></a>

如果您尚未这样做，请务必先[启用并配置 IAM 身份中心](creds-idc.md#idc-config-sso)，然后再继续。

有关如何通过配置工具 PowerShell 以使用 IAM Identity Cen AWS CLI ter 的信息，请参阅*AWS SDKs 和工具参考指南*中 [IAM 身份中心身份验证](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html)主题的**步骤 2**。完成此配置后，您的系统应包含以下元素：
+  AWS CLI，用于在运行应用程序之前启动 AWS 访问门户会话。
+ 该共享 AWS `config`文件包含一个配置文件，该[`[default]`配置](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile)文件具有一组配置值，可从的工具中引用这些值 PowerShell。要查找此文件的位置，请参阅*AWS SDKs 和工具参考指南*中的[共享文件的位置](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)。在向发送请求之前，工具 PowerShell 使用配置文件的 SSO 令牌提供者来获取凭证。 AWS该`sso_role_name`值是与 IAM Identity Center 权限集关联的 IAM 角色，应允许访问您的应用程序中 AWS 服务 使用的权限。

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

**重要**  
您的 PowerShell 会话必须安装并导入以下模块，这样 SSO 才能解析：  
`AWS.Tools.SSO`
`AWS.Tools.SSOOIDC`
如果您使用的是旧版本的工具，但没有这些模块，则会收到类似于以下内容的错误：“找不到 Assem AWSSDK bly .SSOOIDC...”。 PowerShell 

## 启动 AWS 访问门户会话
<a name="idc-start-portal-cli"></a>

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

```
aws sso login
```

由于您使用的是`[default]`配置文件，因此无需调用带`--profile`选项的命令。如果您的 SSO 令牌提供程序配置使用的是命名配置文件，则命令将`aws sso login --profile named-profile`改为使用命名配置文件。有关命名配置文件的更多信息，请参阅《*AWS SDKs 和工具参考指南》*中的 “[配置文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile)” 部分。

要测试您是否已有活动会话，请运行以下 AWS CLI 命令（对命名配置文件同样考虑）：

```
aws sts get-caller-identity
```

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

**注意**  
如果您已经有一个有效的 AWS 访问门户会话并且`aws sso login`正在运行，则无需提供凭据。  
登录过程可能会提示您允许 AWS CLI 访问您的数据。由于 AWS CLI 是在适用于 Python 的 SDK 之上构建的，因此权限消息可能包含`botocore`名称的变体。

## 示例
<a name="idc-short-example-cli"></a>

以下是如何将 IAM 身份中心与工具配合使用的示例 PowerShell。该示例假定以下内容：
+ 您已启用 IAM IAM Identity Center，并按照本主题前面所述对其进行了配置。SSO 属性位于 `[default]` 配置文件中。
+ 当您使用登录时`aws sso login`，该 AWS 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`。有关命名配置文件的更多信息，请参阅《*AWS SDKs 和工具参考指南》*中的 “[配置文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile)” 部分。

## 其他信息
<a name="idc-additional-info-cli"></a>
+ 有关工具身份验证的更多选项 PowerShell，例如配置文件和环境变量的使用，请参阅《*AWS SDKs 和工具参考指南*》中的[配置](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html)章节。
+ 有些命令需要指定 AWS 区域。有多种方法可以执行此操作，包括 `-Region` cmdlet 选项、`[default]`配置文件和`AWS_REGION`环境变量。有关更多信息，请参阅本指南[为... 指定 AWS 区域 AWS Tools for PowerShell](pstools-installing-specifying-region.md)中的 “[AWS 区域](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html)” *AWS SDKs 和 “工具参考指南*”。
+ 有关最佳实践的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。
+ 要创建短期 AWS 证书，请参阅 *IAM 用户指南*中的[临时安全证书](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)。
+ 要了解其他凭证提供商，请参阅《*工具参考*指南》AWS SDKs 中的[标准化凭证提供商](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)。