

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 基本設定
<a name="setup-basic-onetime-setup"></a>

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

若要成功開發 AWS 服務 使用 存取的應用程式 適用於 Kotlin 的 AWS SDK，必須符合下列要求。
+ 您必須能夠[登入 AWS 中提供的存取入口網站](#setup-awsaccount) AWS IAM Identity Center。
+ 為 SDK 設定的 [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)。
  + [Maven](https://maven.apache.org/download.cgi) 或 [Gradle](https://gradle.org/install/) 等[建置自動化工具](#setup-envtools)。
  + 使用程式碼的文字編輯器。
  + （選用，但建議使用） IDE （整合式開發環境），例如 [IntelliJ IDEA](https://www.jetbrains.com/idea/download/#section=windows) 或 [Eclipse](https://www.eclipse.org/ide/)。

    使用 IDE 時，您也可以整合 AWS 工具組以更輕鬆地使用 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 存取入口網站工作階段。您可以使用 AWS Command Line Interface [啟動 IAM Identity Center 存取入口網站的登入程序](#setup-login-sso)。 AWS 

**重要**  
此設定區段中的指示假設您或組織使用 IAM Identity Center。如果您的組織使用獨立於 IAM Identity Center 運作的外部身分提供者，請了解如何取得適用於 Kotlin 的 SDK 暫時登入資料。請依照這些指示，將臨時登入資料新增至 `~/.aws/credentials` 檔案。  
如果您的身分提供者自動將臨時登入資料新增至 `~/.aws/credentials` 檔案，請確定設定檔名稱為 ，`[default]`如此您就不需要提供設定檔名稱給 SDK 或 AWS CLI。

## AWS 存取入口網站的登入功能
<a name="setup-awsaccount"></a>

 AWS 存取入口網站是您手動登入 IAM Identity Center 的 Web 位置。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 後，軟體開發套件才能使用 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 的存取入口網站工作階段，開發套件才能使用 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 。  
選取**允許**以授權存取適用於 Kotlin 的 AWS CLI 和 SDK 的資訊。

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

您的開發環境需要下列項目：
+ JDK 8 或更新版本。 適用於 Kotlin 的 AWS SDK 適用於 [Oracle Java SE 開發套件](https://www.oracle.com/java/technologies/javase-downloads.html)和 Open Java 開發套件 (OpenJDK) 的發行版本，例如 [Amazon Corretto](https://aws.amazon.com/corretto/)、[Red Hat OpenJDK](https://developers.redhat.com/products/openjdk) 和 [AdoptOpenJDK](https://adoptopenjdk.net/)。
+ 支援 Maven Central 的建置工具或 IDE，例如 Apache Maven、Gradle 或 IntelliJ。
  + 如需如何安裝和使用 Maven 的詳細資訊，請參閱 https：//[http://maven.apache.org/](http://maven.apache.org/)。
  + 如需如何安裝和使用 Gradle 的詳細資訊，請參閱 https：//[https://gradle.org/](https://gradle.org/)。
  + 如需如何安裝和使用 IntelliJ IDEA 的資訊，請參閱 https：//[https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)。

## 使用暫時性憑證
<a name="setup-use-temporary-creds"></a>

除了設定 SDK 的 [IAM Identity Center 單一登入存取](#setup-sso-access)之外，您也可以使用暫時登入資料來設定開發環境。

**為臨時登入資料設定本機登入資料檔案**

1. [建立共用登入資料檔案](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`應該存在於您的本機開發系統上。如果未指定特定具名[設定檔，此檔案包含適用於 Kotlin 的 SDK 所使用的 【預設】](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile) 設定檔。

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** 或 ** Developer** 等名稱。

   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。