

Amazon Tools for PowerShell V4 已进入维护模式。

我们建议您迁移到 [Amazon Tools for PowerShell V5](https://docs.amazonaws.cn/powershell/v5/userguide/)。有关如何迁移的更多详细信息和信息，请参阅我们的[维护模式公告](https://www.amazonaws.cn/blogs/developer/aws-tools-for-powershell-v4-maintenance-mode-announcement/)。

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

# 使用 Amazon 配置工具身份验证
<a name="creds-idc"></a>

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

要查看适用于 PowerShell 的工具的各种身份验证方法，请参阅《Amazon 开发工具包和工具参考指南》**中的[身份验证和访问](https://docs.amazonaws.cn/sdkref/latest/guide/access.html)。

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

配置此环境需要几个步骤，总结如下：

1. [启用和配置 IAM Identity Center](#idc-config-sso)

1. [将适用于 PowerShell 的工具配置为使用 IAM Identity Center。](#idc-config-sdk)

1. [开始 Amazon 访问门户会话](#idc-start-portal)

## 启用和配置 IAM Identity Center
<a name="idc-config-sso"></a>

要使用 Amazon IAM Identity Center，必须先启用和配置它。要详细了解如何为 PowerShell 执行此操作，请查看《Amazon 开发工具包和工具参考指南》**中 [IAM Identity Center 身份验证](https://docs.amazonaws.cn/sdkref/latest/guide/access-sso.html)主题内的**步骤 1**。具体而言，请按照**我没有通过 IAM Identity Center 确立访问权限**下的所有必要说明进行操作。

## 将适用于 PowerShell 的工具配置为使用 IAM Identity Center。
<a name="idc-config-sdk"></a>

**注意**  
从 Tools for PowerShell 的 4.1.538 版本开始，配置 SSO 凭证并启动 Amazon 访问门户会话的推荐方法是使用 [https://docs.amazonaws.cn/powershell/v4/reference/index.html?page=Initialize-AWSSSOConfiguration.html&tocid=Initialize-AWSSSOConfiguration](https://docs.amazonaws.cn/powershell/v4/reference/index.html?page=Initialize-AWSSSOConfiguration.html&tocid=Initialize-AWSSSOConfiguration) 和 [https://docs.amazonaws.cn/powershell/v4/reference/index.html?page=Invoke-AWSSSOLogin.html&tocid=Invoke-AWSSSOLogin](https://docs.amazonaws.cn/powershell/v4/reference/index.html?page=Invoke-AWSSSOLogin.html&tocid=Invoke-AWSSSOLogin) cmdlet，如本主题所述。如果您无法访问该版本（或更高版本）的 Tools for PowerShell 或无法使用这些 cmdlet，您仍然可以通过使用 Amazon CLI 来执行这些任务。要了解操作方法，请参阅 [使用 Amazon CLI 进行门户登录](creds-idc-cli.md)。

以下过程使用 SSO 信息更新共享的 Amazon `config` 文件，Tools for PowerShell 使用该信息获取临时凭证。此过程的结果是，同时会启动一个 Amazon 访问门户会话。如果共享的 `config` 文件已包含 SSO 信息，并且您只想了解如何使用 Tools for PowerShell 启动访问门户会话，请参阅本主题的下一部分 [开始 Amazon 访问门户会话](#idc-start-portal)。

1. 如果尚未完成，请打开 PowerShell 并根据您的操作系统和环境安装 Amazon Tools for PowerShell，包括通用 cmdlet。有关如何执行此操作的信息，请参阅 [安装 Amazon Tools for PowerShell](pstools-getting-set-up.md)。

   例如，如果在 Windows 上安装模块化版本的 Tools for PowerShell，您很可能会运行类似于以下内容的命令：

   ```
   Install-Module -Name AWS.Tools.Installer
   Install-AWSToolsModule AWS.Tools.Common
   ```

1. 运行以下命令。将示例属性值替换为来自您的 IAM Identity Center 配置的值。有关这些属性及其查找方法的信息，请参阅*《Amazon SDK 和工具参考指南》*中的 [IAM Identity Center 凭证提供程序设置](https://docs.amazonaws.cn/sdkref/latest/guide/feature-sso-credentials.html#feature-sso-credentials-profile)。

   ```
   $params = @{
     ProfileName = 'my-sso-profile'
     AccountId = '111122223333'
     RoleName = 'SamplePermissionSet'
     SessionName = 'my-sso-session'
     StartUrl = 'https://provided-domain.awsapps.com/start'
     SSORegion = 'us-west-2'
     RegistrationScopes = 'sso:account:access'
   };
   Initialize-AWSSSOConfiguration @params
   ```

   或者，您可以单独使用 cmdlet `Initialize-AWSSSOConfiguration`，Tools for PowerShell 将提示您输入属性值。

   某些属性值的注意事项：
   + 如果您仅按照[启用并配置 IAM Identity Center](#idc-config-sso) 的说明操作，则 `-RoleName` 的值可能为 `PowerUserAccess`。但如果您专门为 PowerShell 工作创建了 IAM Identity Center 权限集，请改用该权限集。
   + 请确保使用您已配置 IAM Identity Center 的 Amazon Web Services 区域。

1. 此时，共享的 Amazon `config` 文件包含一个名为 `my-sso-profile` 的配置文件，其中包含一组可以从 Tools for PowerShell 引用的配置值。要查找此文件的位置，请参阅《Amazon 开发工具包和工具参考指南》**中的[共享文件的位置](https://docs.amazonaws.cn/sdkref/latest/guide/file-location.html)。

   适用于 PowerShell 的工具在向 Amazon 发送请求之前，使用配置文件的 SSO 令牌提供程序获取凭证。`sso_role_name` 值是与 IAM Identity Center 权限集关联的 IAM 角色，应允许访问您的应用程序中使用的 Amazon Web Services 服务。

   以下示例显示了使用上述命令创建的配置文件。您实际配置文件中的某些属性值及其顺序可能有所不同。配置文件的 `sso-session` 属性引用名为 `my-sso-session` 的部分，该部分包含用于启动 Amazon 访问门户会话的设置。

   ```
   [profile my-sso-profile]
   sso_account_id=111122223333
   sso_role_name=SamplePermissionSet
   sso_session=my-sso-session
   
   [sso-session my-sso-session]
   sso_region=us-west-2
   sso_registration_scopes=sso:account:access
   sso_start_url=https://provided-domain.awsapps.com/start/
   ```

1. 如果您已有活动的 Amazon 访问门户会话，Tools for PowerShell 会通知您已登录。

   如果情况并非如此，Tools for PowerShell 会尝试在您的默认 Web 浏览器中自动打开 SSO 授权页面。按照浏览器中的提示操作，其中可能包括 SSO 授权码、用户名和密码以及访问 Amazon IAM Identity Center 账户和权限集的权限。

   Tools for PowerShell 会通知您 SSO 登录成功。

## 开始 Amazon 访问门户会话
<a name="idc-start-portal"></a>

在运行访问 Amazon Web Services 服务 的命令之前，您需要有一个活动的 Amazon 访问门户会话，以便 Tools for PowerShell 可以使用 IAM Identity Center 身份验证来解析凭证。要登录到 Amazon 访问门户，请在 PowerShell 中运行以下命令，其中 `-ProfileName my-sso-profile` 是您按照本主题前一节中的过程操作时在共享 `config` 文件中创建的配置文件的名称。

```
Invoke-AWSSSOLogin -ProfileName my-sso-profile
```

如果您已有活动的 Amazon 访问门户会话，Tools for PowerShell 会通知您已登录。

如果情况并非如此，Tools for PowerShell 会尝试在您的默认 Web 浏览器中自动打开 SSO 授权页面。按照浏览器中的提示操作，其中可能包括 SSO 授权码、用户名和密码以及访问 Amazon IAM Identity Center 账户和权限集的权限。

Tools for PowerShell 会通知您 SSO 登录成功。

要测试您是否已拥有活动会话，请在安装或导入 `AWS.Tools.SecurityToken` 模块后运行以下命令。

```
Get-STSCallerIdentity -ProfileName my-sso-profile
```

对 `Get-STSCallerIdentity` cmdlet 的响应报告了在共享 `config` 文件中配置的 IAM Identity Center 账户和权限集。

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

以下示例说明如何将 IAM Identity Center 与适用于 PowerShell 的工具一起使用。该示例假定以下内容：
+ 您已启用 IAM IAM Identity Center，并按照本主题前面所述对其进行了配置。SSO 属性位于 `my-sso-profile` 配置文件中，该文件在本主题前面部分已配置。
+ 当您通过 `Initialize-AWSSSOConfiguration` 或 `Invoke-AWSSSOLogin` cmdlet 登录时，用户至少拥有对 Amazon S3 的只读权限。
+ 某些 S3 存储桶可供该用户查看。

根据需要安装或导入 `AWS.Tools.S3` 模块，然后使用以下 PowerShell 命令显示 S3 存储桶列表。

```
Get-S3Bucket -ProfileName my-sso-profile
```

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

**Topics**
+ [启用和配置 IAM Identity Center](#idc-config-sso)
+ [将适用于 PowerShell 的工具配置为使用 IAM Identity Center。](#idc-config-sdk)
+ [开始 Amazon 访问门户会话](#idc-start-portal)
+ [示例](#idc-short-example)
+ [其他信息](#idc-additional-info)
+ [使用 Amazon CLI](creds-idc-cli.md)