

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

# 使用 存取互動式開發工作的登入資料 AWS SDK for Java 2.x
<a name="credentials-temporary"></a>

為了提高安全性， AWS 建議您將適用於 Java 的 SDK 設定為[使用暫時登入](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)資料，而不是長期登入資料。暫時登入資料包含存取金鑰 （存取金鑰 ID 和私密存取金鑰） 和工作階段字符。

您可以使用數種方法來使用臨時登入資料。您使用的方法，以及您提供給 SDK 的組態，取決於您的使用案例。

當您使用 Java 開發套件進行互動式開發時，我們建議您使用 AWS 主控台登入憑證。

## 使用主控台登入憑證
<a name="using-con-login-creds"></a>

您可以使用現有的 AWS 管理主控台登入憑證，以程式設計方式存取 AWS 服務。在瀏覽器型身分驗證流程之後， AWS 會產生臨時登入資料，可用於本機開發工具，例如 AWS CLI 和適用於 Java 的 SDK 2.x。

透過此程序，您可以使用在初始帳戶設定期間建立的根登入資料、IAM 使用者或身分提供者的聯合身分進行身分驗證，而 AWS CLI 會自動為您管理臨時登入資料。這種方法無需在本機存放長期登入資料，可增強安全性。

當您執行 `aws login`命令時，您可以從作用中主控台工作階段中選取 ，或透過瀏覽器型身分驗證流程登入，這會自動產生臨時登入資料。適用於 Java 的 SDK 2.x 會自動重新整理這些登入資料長達 12 小時。

**重要**  
除了您在適用於所有專案的共用組態檔案中設定的組態之外，每個個別 Java 專案還需要 Maven `pom.xml` 檔案中的下列相依性：  

```
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>signin</artifactId>
</dependency>
```
`signin` 相依性提供的程式碼可讓適用於 Java 的 SDK 2.x 存取和使用主控台登入資料。

如需先決條件、登入和登出的詳細資訊，請參閱 *AWS SDK 和工具參考指南*中的[使用主控台登入進行 AWS 本機開發](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)。

## Single-sign-on方法
<a name="single-sign-on-approach"></a>

當您使用 Java 開發套件進行互動式開發時，您也可以使用單一登入方法。此方法需要下列設定：
+ [透過 IAM Identity Center 設定](get-started-auth.md#setup-auth)
+ [在 AWS 共用組態檔案中設定設定檔](get-started-auth.md#setup-credentials) 
+ 使用 AWS CLI 並[執行命令](get-started-auth.md#setup-login-sso)來登入和建立作用中工作階段

### IAM Identity Center 組態
<a name="credentials-temporary-idc"></a>

當您將軟體開發套件設定為使用本指南[設定概觀](setup.md#setup-overview)中所述的 IAM Identity Center 單一登入存取時，軟體開發套件會使用臨時登入資料。

SDK 使用 IAM Identity Center 存取權杖來存取 IAM 角色，該角色是以 `config` 檔案中`sso_role_name`的設定所設定。軟體開發套件會擔任此 IAM 角色，並擷取臨時登入資料以簽署 AWS 服務 請求。

如需開發套件如何從組態取得臨時登入資料的詳細資訊，請參閱 AWS SDKs和工具參考指南中的[了解 IAM Identity Center 身分驗證](https://docs.aws.amazon.com/sdkref/latest/guide/understanding-sso.html)一節。

**重要**  
除了您在適用於所有專案的共用`config`檔案中設定的組態之外，每個個別 Java 專案還需要 Maven `pom.xml` 檔案中的下列相依性：  

```
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>sso</artifactId>
</dependency>
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>ssooidc</artifactId>
</dependency>
```
`sso` 和 `ssooidc` 相依性提供的程式碼，可讓適用於 Java 的 SDK 2.x 存取暫時登入資料。

### 從 AWS 存取入口網站擷取臨時登入資料
<a name="credentials-temporary-from-portal"></a>

作為 IAM Identity Center 單一登入組態的替代方案，您可以複製並使用 AWS 存取入口網站中提供的臨時憑證。您可以在設定檔中使用臨時憑證，或用作系統屬性和環境變數的值。

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

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`應該存在於您的本機開發系統上。如果未指定特定具名[設定檔，此檔案包含適用於 Java 的 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. 針對連結指示中的步驟 2，請`Access keys`針對授予您開發需求的存取權的 IAM 角色名稱選擇 。此角色通常具有 **PowerUserAccess** 或 ** Developer** 等名稱。

   1. 在模態對話方塊中，選取您的作業系統，並將內容從**新增設定檔複製到您的 AWS 登入資料檔案**。

1. 將複製的登入資料貼到您的本機`credentials`檔案中，並移除產生的設定檔名稱。您的 檔案應該類似以下內容。

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

1. 儲存 `credentials` 檔案。

當適用於 Java 的 SDK 建立服務用戶端時，它會存取這些臨時登入資料，並將其用於每個請求。在步驟 5a 中選擇的 IAM 角色設定會決定[臨時憑證的有效時長](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)。最長持續時間為 12 小時。

臨時憑證過期後，請重複步驟 4 至 7。