

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

# 基本设置
<a name="setup-basic-onetime-setup"></a>

## 概述
<a name="setup-overview"></a>

要成功开发 AWS 服务 使用访问的应用程序 适用于 Kotlin 的 AWS SDK，必须满足以下要求。
+ 您必须能够[登录 AWS IAM Identity Center中提供的 AWS 访问门户](#setup-awsaccount)。
+ 为软件开发工具包配置[的 IAM 角色的权限](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html)必须允许访问您的应用程序所需的权限。 AWS 服务 与**PowerUserAccess** AWS 托管策略关联的权限足以满足大多数开发需求。
+ 包含以下元素的开发环境：
  + 通过以下方式中的至少一种方式设置的[共享配置文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)：
    + `config` 文件包含 [IAM Identity Center 单点登录设置](#setup-sso-access)，以便 SDK 可以获取 AWS 凭证。
    + `credentials` 文件包含临时凭证。
  + [安装了 Java 8 或更高版本](#setup-envtools)。
  + 一种[构建自动化工具](#setup-envtools)，例如 [Maven](https://maven.apache.org/download.cgi) 或 [Gradle](https://gradle.org/install/)。
  + 用于处理代码的文本编辑器。
  + [（可选，但建议使用）IDE（集成开发环境），例如 Intelli [J IDEA 或 Eclip](https://www.jetbrains.com/idea/download/#section=windows) se。](https://www.eclipse.org/ide/)

    使用 IDE 时，还可以集成 AWS Toolkit，以便更轻松地使用 AWS 服务。[AWS Toolkit for IntelliJ](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)和[AWS Toolkit for Eclipse](https://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/welcome.html)是您可以使用的两个工具包。
+ 准备好运行应用程序时的活动 AWS 访问门户会话。您可以使用[启动 IAM Identity Center AWS 访问门户的登录流程](#setup-login-sso)。 AWS Command Line Interface 

**重要**  
本设置部分中的说明假设您或组织使用 IAM Identity Center。如果您的组织使用独立于 IAM Identity Center 运行的外部身份提供商，请了解如何获取供 Kotlin 使用的 SDK 的临时证书。按照以下说明向`~/.aws/credentials`文件添加临时证书。  
如果您的身份提供商自动向 `~/.aws/credentials` 文件添加临时凭证，请确保配置文件名称为 `[default]`，这样您就无需向 SDK 或 AWS CLI提供配置文件名称。

## AWS 访问门户的登录能力
<a name="setup-awsaccount"></a>

 AWS 访问门户是您手动登录 IAM 身份中心的网址。URL 的格式为`d-xxxxxxxxxx.awsapps.com/start`或`your_subdomain.awsapps.com/start`。

如果您不熟悉 AWS 访问门户，请按照 AWS SDKs 和工具参考指南中 [IAM Identity Center 身份验证](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html)主题中的账户访问指南进行操作。

## 设置用于 SDK 的单点登录访问
<a name="setup-sso-access"></a>

在完成[编程访问部分](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html#idcGettingStarted)的步骤 2 以使 SDK 使用 IAM Identity Center 身份验证后，您的系统应包含以下元素。
+  AWS CLI，用于在运行应用程序之前启动[AWS 访问门户会话](#setup-login-sso)。
+ 包含[默认配置文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile)的 `~/.aws/config` 文件。适用于 Kotlin 的 SDK 使用配置文件的 SSO 令牌提供者配置来获取凭证，然后再向发送请求。 AWS`sso_role_name` 值是与 IAM Identity 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
  ```

有关 SSO 令牌提供程序配置中使用的设置的更多详细信息，请参阅 AWS SDKs 和工具参考指南中的 [SSO 令牌提供者配置](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sso-credentials.html#sso-token-config)。

如果您的开发环境未如前所示进行编程访问设置，请按照[《 SDKs 参考指南》中的步骤 2](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html#idcGettingStarted) 进行操作。

## 使用登录 AWS CLI
<a name="setup-login-sso"></a>

在运行可访问的应用程序之前 AWS 服务，您需要进行有效的 AWS 访问门户会话，这样 SDK 才能使用 IAM Identity Center 身份验证来解析证书。在中运行以下命令登录 AWS CLI AWS 访问门户。

```
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`，则无需提供凭证。  
但是，您将看到一个对话框，请求 `botocore` 访问您的信息的权限。`botocore` 是 AWS CLI 的基础。  
选择 “**允许**” 以授权访问您的信息， AWS CLI 以及适用于 Kotlin 的 SDK。

## 安装 Java 和构建工具
<a name="setup-envtools"></a>

您的开发环境需要以下组件：
+ JDK 8 或更高版本。 适用于 Kotlin 的 AWS SDK [它可与 [Oracle Java SE 开发套件](https://www.oracle.com/java/technologies/javase-downloads.html)以及[红帽](https://developers.redhat.com/products/openjdk) OpenJDK 和 JDK [Amazon Corretto](https://aws.amazon.com/corretto/)等开放 Java 开发套件 (OpenJDK) 的发行版配合使用。AdoptOpen](https://adoptopenjdk.net/)
+ 支持 Maven Central 的构建工具或 IDE，例如 Apache Maven、Gradle 或 IntelliJ。
  + 有关如何安装和使用 Maven 的信息，请访问 [http://maven.apache.org/](http://maven.apache.org/)。
  + 有关如何安装和使用 Gradle 的信息，请访问 [https://gradle.org/](https://gradle.org/)。
  + 有关如何安装和使用 IntelliJ IDEA 的信息，请参阅。[https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)

## 使用临时凭证
<a name="setup-use-temporary-creds"></a>

除了为软件开发工具包[配置 IAM Identity Center 单点登录访问权限](#setup-sso-access)之外，您还可以使用临时证书配置开发环境。

**为临时凭证设置本地凭证文件**

1. [创建共享 credentials 文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)

1. 在凭证文件中，粘贴以下占位符文本，直到粘贴有效的临时凭证：

   ```
   [default]
   aws_access_key_id=<value from AWS access portal>
   aws_secret_access_key=<value from AWS access portal>
   aws_session_token=<value from AWS access portal>
   ```

1. 保存该文件。该 `~/.aws/credentials` 文件现在应该存在于您的本地开发系统上。此文件包含 [[默认] 配置](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile)文件，如果未指定特定的命名配置文件，适用于 Kotlin 的 SDK 将使用该配置文件。

1. [登录 AWS 访问门户](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosignin.html)

1. 按照[手动刷新凭证](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials)标题下的说明从 AWS 访问门户复制 IAM 角色证书。

   1. 对于链接的说明中的步骤 4，选择可授予访问权限以满足您的开发需求的 IAM 角色名称。此角色的名称通常类似于**PowerUserAccess**或**开发人员**。

   1. 对于步骤 7，选择**将配置文件手动添加到您的 AWS 凭证文件**选项并复制内容。

1. 将复制的凭证粘贴到您的本地 `credentials` 文件中，并移除生成的配置文件名称。您的文件应类似于以下内容：

   ```
   [default]
   aws_access_key_id=AKIAIOSFODNN7EXAMPLE
   aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
   ```

1. 保存 `credentials` 文件

Kotlin 的 SDK 将在创建服务客户端时访问这些临时凭证，并将其用于每个请求。在步骤 5a 中选择的 IAM 角色的设置决定了[临时凭证的有效时间](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)。最长持续时间为 12 小时。

在临时凭证过期后，重复步骤 4 到 7。