

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

# 建立和設定 Amazon Keyspaces 的 AWS 登入資料
<a name="access.credentials"></a>

若要使用 AWS CLI、 AWS SDK 或使用 Cassandra 用戶端驅動程式和 SigV4 外掛程式以程式設計方式存取 Amazon Keyspaces，您需要具有存取金鑰的 IAM 使用者。當您以程式設計方式使用 Amazon Keyspaces 時，您會提供 AWS 存取金鑰，讓 AWS 在程式設計呼叫中驗證您的身分。您的存取金鑰包含存取金鑰 ID （例如 AKIAIOSFODNN7EXAMPLE) 和私密存取金鑰 （例如 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)。本主題會逐步引導您完成此程序的必要步驟。

安全最佳實務建議您建立具有有限許可的 IAM 使用者，並將 IAM 角色與執行特定任務所需的許可建立關聯。然後，IAM 使用者可以暫時擔任 IAM 角色來執行所需的任務。例如，您帳戶中使用 Amazon Keyspaces 主控台的 IAM 使用者可以切換至角色，以在主控台中暫時使用角色的許可。使用者放棄其原始許可並取得指派給該角色的許可。當使用者退出角色時，將恢復其原始許可。使用者用來擔任角色的登入資料是暫時的。相反地，IAM 使用者具有長期登入資料，如果 IAM 使用者沒有直接指派給他們的許可，則存在安全風險。為了協助降低此風險，建議您只為這些使用者提供執行任務所需的許可，並在不再需要這些使用者時將其移除。如需角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[角色的常見案例：使用者、應用程式和服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios.html)。

**Topics**
+ [Cassandra 用戶端驅動程式的 AWS CLI、 AWS 開發套件或 Amazon Keyspaces SigV4 外掛程式所需的登入資料](SigV4_credentials.md)
+ [使用 IAM 角色和 SigV4 外掛程式建立臨時登入資料以連線至 Amazon Keyspaces](temporary.credentials.IAM.md)
+ [建立 IAM 使用者，以程式設計方式存取您 AWS 帳戶中的 Amazon Keyspaces](access.credentials.IAM.md)
+ [為 IAM 使用者建立新的存取金鑰](create.keypair.md)
+ [存放用於程式設計存取的存取金鑰](aws.credentials.manage.md)

# Cassandra 用戶端驅動程式的 AWS CLI、 AWS 開發套件或 Amazon Keyspaces SigV4 外掛程式所需的登入資料
<a name="SigV4_credentials"></a>

驗證 IAM 使用者或角色需要下列登入資料：

`AWS_ACCESS_KEY_ID`  
指定與 IAM 使用者或角色相關聯的 AWS 存取金鑰。  
`aws_access_key_id` 需要存取金鑰才能以程式設計方式連線至 Amazon Keyspaces。

`AWS_SECRET_ACCESS_KEY`  
指定與存取金鑰相關聯的私密金鑰。這基本上是存取金鑰的「密碼」。  
`aws_secret_access_key` 必須以程式設計方式連線至 Amazon Keyspaces。

`AWS_SESSION_TOKEN` – 選用  
指定當您直接從 AWS Security Token Service 作業擷取的暫時安全憑證時需要的工作階段字符值。如需詳細資訊，請參閱[使用 IAM 角色和 SigV4 外掛程式建立臨時登入資料以連線至 Amazon Keyspaces](temporary.credentials.IAM.md)。  
如果您要與 IAM 使用者連線，`aws_session_token`則不需要 。

# 使用 IAM 角色和 SigV4 外掛程式建立臨時登入資料以連線至 Amazon Keyspaces
<a name="temporary.credentials.IAM"></a>

以程式設計方式存取 Amazon Keyspaces 的建議方法是使用[臨時登入](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)資料來驗證 SigV4 外掛程式。在許多情況下，您不必像 IAM 使用者一樣需要永遠不會過期的長期存取金鑰。反之，您可以建立 IAM 角色並產生臨時安全登入資料。臨時安全登入資料包含存取金鑰 ID 和私密存取金鑰，但其中也包含指出登入資料何時到期的安全符記。若要進一步了解如何使用 IAM 角色而非長期存取金鑰，請參閱[切換到 IAM 角色 (AWS API)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html)。

若要開始使用臨時登入資料，您必須先建立 IAM 角色。

**建立授予 Amazon Keyspaces 唯讀存取權的 IAM 角色**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**角色**，然後選擇**建立角色**。

1. 在**建立角色**頁面的**選取信任實體類型**下，選擇**AWS 服務**。在**選擇使用案例**下，選擇 **Amazon EC2**，然後選擇**下一步**。

1. 在**新增許可**頁面的**許可政策**下，從政策清單中選擇 **Amazon Keyspaces 唯讀存取**，然後選擇**下一步**。

1. 在**名稱、檢閱和建立**頁面上，輸入角色的名稱，然後檢閱**選取信任的實體**和**新增許可**區段。您也可以在此頁面上為角色新增選用標籤。完成後，請選取**建立角色**。請記住此名稱，因為您在啟動 Amazon EC2 執行個體時需要此名稱。

若要在程式碼中使用臨時安全登入資料，請以程式設計方式呼叫類似 的 AWS Security Token Service API，`AssumeRole`並從您在上一個步驟中建立的 IAM 角色擷取產生的登入資料和工作階段字符。然後，您可以將這些值用作後續呼叫的登入資料 AWS。下列範例顯示如何使用臨時安全登入資料的虛擬程式碼：

```
assumeRoleResult = AssumeRole(role-arn);
tempCredentials = new SessionAWSCredentials(
   assumeRoleResult.AccessKeyId, 
   assumeRoleResult.SecretAccessKey, 
   assumeRoleResult.SessionToken);
cassandraRequest = CreateAmazoncassandraClient(tempCredentials);
```

如需使用 Python 驅動程式來存取 Amazon Keyspaces 實作臨時登入資料的範例，請參閱 [使用適用於 Apache Cassandra 的 DataStax Python 驅動程式和 SigV4 身分驗證外掛程式連線至 Amazon Keyspaces](using_python_driver.md#python_SigV4)。

如需如何呼叫 `AssumeRole`、`GetFederationToken` 以及其他 API 操作的詳細資訊，請參閱 [AWS Security Token Service API 參考](https://docs.aws.amazon.com/STS/latest/APIReference/)。有關從結果取得臨時安全憑證和工作階段權杖的詳細資訊，請參閱您正在使用的軟體開發套件的說明文件。您可以在 SDK **SDKs 和工具組**區段的主要文件頁面上找到所有 AWS SDKs 的文件。 [AWS](https://aws.amazon.com/documentation)

# 建立 IAM 使用者，以程式設計方式存取您 AWS 帳戶中的 Amazon Keyspaces
<a name="access.credentials.IAM"></a>

若要取得使用 AWS CLI、 AWS SDK 或 SigV4 外掛程式以程式設計方式存取 Amazon Keyspaces 的登入資料，您必須先建立 IAM 使用者或角色。下列步驟顯示建立 IAM 使用者並設定該 IAM 使用者以程式設計方式存取 Amazon Keyspaces 的程序：

1. 在 AWS 管理主控台、 AWS CLI、Tools for Windows PowerShell 或使用 AWS API 操作建立使用者。如果您在 中建立使用者 AWS 管理主控台，則會自動建立登入資料。

1. 如果您以程式設計方式建立使用者，則必須在其他步驟中為該使用者建立存取金鑰 （存取金鑰 ID 和私密存取金鑰）。

1. 授予使用者存取 Amazon Keyspaces 的許可。

如需建立 IAM 使用者所需的許可資訊，請參閱[存取 IAM 資源所需的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_permissions-required.html)。

------
#### [ Console ]

**建立具有程式設計存取的 IAM 使用者 （主控台）**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在導覽窗格中，選擇 **Users** (使用者)，然後選擇 **Add users** (新增使用者)。

1. 為新使用者輸入使用者名稱。這是 的登入名稱 AWS。
**注意**  
使用者名稱可以是長達 64 個字母、數字以及這些字元的組合：加號 (\$1)、等號 (=)、逗號 (,)、句號 (.)、@ 符號、底線 (\$1) 以及連字號 (-)。名稱在帳戶中必須是唯一的。它們無法透過大小寫進行區分。例如，您不可以建立兩個名為 *TESTUSER* 和 *testuser* 的使用者。

1. 選取**存取金鑰 - 程式設計存取**，為新使用者建立存取金鑰。您可以在前往**最終**頁面時檢視或下載存取金鑰。

   選擇**下一步：許可**。

1. 在**設定許可**頁面上，選擇**直接連接現有政策**，將許可指派給新使用者。

   此選項會顯示您帳戶中可用的 AWS 受管和客戶受管政策清單。您可以在搜尋欄位中輸入 `keyspaces` ，以僅顯示與 Amazon Keyspaces 相關的政策。

   對於 Amazon Keyspaces，可用的受管政策為 `AmazonKeyspacesFullAccess`和 `AmazonKeyspacesReadOnlyAccess`。如需每個政策的詳細資訊，請參閱 [AWS Amazon Keyspaces 的 受管政策](security-iam-awsmanpol.md)。

   為了測試目的和遵循連線教學課程，請選取新 IAM 使用者`AmazonKeyspacesReadOnlyAccess`的政策。**注意：**最佳實務是，建議您遵循最低權限原則，並建立自訂政策來限制對特定資源的存取，並僅允許必要的動作。如需 IAM 政策和檢視 Amazon Keyspaces 範例政策的詳細資訊，請參閱 [Amazon Keyspaces 身分型政策](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies)。建立自訂許可政策之後，請將政策連接至角色，然後讓使用者暫時擔任適當的角色。

   選擇下**一步：標籤**。

1. 在**新增標籤 （選用）** 頁面上，您可以為使用者新增標籤，或選擇**下一步：檢閱**。

1. 在**檢閱**頁面上，您可以看到到目前為止所做的所有選擇。當您準備好繼續時，請選擇**建立使用者**。

1. 若要檢視使用者的存取金鑰 (存取金鑰 ID 和私密存取金鑰)，請選擇密碼和存取金鑰旁的 **Show (顯示)**。若要儲存取金鑰，請選擇 **Download .csv (下載 .csv)**，然後將檔案儲存到安全的位置。
**重要**  
這是您檢視或下載私密存取金鑰的唯一機會，您需要此資訊才能使用 SigV4 外掛程式。請將使用者的新存取金鑰 ID 和私密存取金鑰存放在安全處。在此步驟之後，您將無法再存取該私密金鑰。

------
#### [ CLI ]

**建立具有程式設計存取的 IAM 使用者 (AWS CLI)**

1. 使用下列 AWS CLI 程式碼建立使用者。
   + [https://docs.aws.amazon.com/cli/latest/reference/iam/create-user.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-user.html)

1. 提供使用者程式設計存取權。這需要存取金鑰，可透過下列方式產生。
   + AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html)
   + Tools for Windows PowerShell：[https://docs.aws.amazon.com/powershell/latest/reference/items/New-IAMAccessKey.html](https://docs.aws.amazon.com/powershell/latest/reference/items/New-IAMAccessKey.html)
   + IAM API： [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html)
**重要**  
這是您檢視或下載私密存取金鑰的唯一機會，您需要此資訊才能使用 SigV4 外掛程式。請將使用者的新存取金鑰 ID 和私密存取金鑰存放在安全處。在此步驟之後，您將無法再存取該私密金鑰。

1. 將`AmazonKeyspacesReadOnlyAccess`政策連接至定義使用者許可的使用者。**注意：**最佳實務是，建議您將使用者新增至群組並將政策連接至群組，而不是直接連接至使用者，以管理使用者許可。
   + AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html)

------

# 為 IAM 使用者建立新的存取金鑰
<a name="create.keypair"></a>

如果您已有 IAM 使用者，您可以隨時建立新的存取金鑰。如需金鑰管理的詳細資訊，例如如何更新存取金鑰，請參閱[管理 IAM 使用者的存取金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)。

**為 IAM 使用者建立存取金鑰 （主控台）**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在導覽窗格中，選擇**使用者** 。

1. 選擇您要建立其存取金鑰的使用者名稱。

1. 在使用者的**摘要**頁面上，選擇**安全登入**資料索引標籤。

1. 在**存取金鑰****最佳實務和替代方案下的存取金鑰**區段中，選擇使用案例**其他**。按一下**下一步**，視需要輸入選用資訊，然後選擇**建立存取金鑰**。

   若要查看新的存取金鑰，請選擇 **Show (顯示)**。您的憑證看起來如下：
   + 存取金鑰 ID：AKIAIOSFODNN7EXAMPLE
   + 私密存取金鑰：wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
**注意**  
在關閉此對話方塊後，您將無法再次存取該私密存取金鑰。

   請考慮下列您已建立之金鑰對的最佳實務。
   + 切勿將您的存取金鑰以純文字、程式碼儲存庫或程式碼形式存放。
   + 不再需要時，停用或刪除存取金鑰。
   + 啟用最低權限許可。
   + 定期輪換存取金鑰。

1. 若要下載金鑰對，請選擇 **Download .csv file** (下載 .csv 檔案)。請將金鑰存放在安全位置。

1. 下載 .csv 檔案後，請選擇 **Close (關閉)**。

當您建立存取金鑰時，在預設情況下，該金鑰對是作用中的，且您可以立即使用該金鑰對。

# 存放用於程式設計存取的存取金鑰
<a name="aws.credentials.manage"></a>

最佳實務是，建議您不要將存取金鑰直接嵌入程式碼。「 AWS SDKs」和「 AWS 命令列工具」可讓您將存取金鑰放在已知位置，讓您不必將其保留在程式碼中。將存取金鑰放入以下其中一個位置：
+ **環境變數 **– 在多租戶系統上，選擇使用者環境變數，而非系統環境變數。
+ **CLI 憑證檔案** – 當您執行命令 `aws configure` 時，會更新 `credentials` 和 `config` 檔案。`credentials` 檔案位於 Linux、macOS 或 Unix `~/.aws/credentials`上的 ，或 Windows `C:\Users\USERNAME\.aws\credentials`上的 。此檔案可包含 `default` 描述檔和任何具名描述檔的憑證詳細資訊。
+ **CLI 組態檔** – 當您執行命令 `aws configure` 時，會更新 `credentials` 和 `config` 檔案。`config` 檔案位於 Linux、macOS 或 Unix `~/.aws/config`上的 ，或 Windows `C:\Users\USERNAME\.aws\config`上的 。此檔案包含預設描述檔和任何具名描述檔的組態設定。

將存取金鑰儲存為環境變數是 的先決條件[使用適用於 Apache Cassandra 的 4.x DataStax Java 驅動程式和 SigV4 身分驗證外掛程式連線至 Amazon Keyspaces 的Step-by-step教學課程](using_java_driver.md#java_tutorial.SigV4)。請注意，這包含預設值 AWS 區域。用戶端會使用預設登入資料提供者鏈結搜尋登入資料，而存放為環境變數的存取金鑰會優先於所有其他位置，例如組態檔案。如需詳細資訊，請參閱[組態設定和優先順序](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-precedence)。

下列範例說明如何為預設使用者設定環境變數。

------
#### [ Linux, macOS, or Unix ]

```
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of security token>
$ export AWS_DEFAULT_REGION=us-east-1
```

設定環境變數會變更使用的數值，直到 Shell 工作階段結束或直到您將該變數設為其他數值。您可以在 Shell 的啟動指令碼中設定變數，讓它們跨未來的工作階段持續生效。

------
#### [ Windows Command Prompt ]

```
C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE
C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
C:\> setx AWS_SESSION_TOKEN AQoDYXdzEJr...<remainder of security token>
C:\> setx AWS_DEFAULT_REGION us-east-1
```

使用 `[set](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` 設定環境變數會變更使用的數值，直到目前命令提示工作階段結束或直到您將該變數設為其他數值。使用 [https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx) 設定環境變數時，將會變更在目前命令提示工作階段及您在執行命令後建立的所有命令提示工作階段中使用的數值。***不會***影響您執行命令當時已執行的其他命令 Shell。

------
#### [ PowerShell ]

```
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
PS C:\> $Env:AWS_SESSION_TOKEN="AQoDYXdzEJr...<remainder of security token>"
PS C:\> $Env:AWS_DEFAULT_REGION="us-east-1"
```

如果您在 PowerShell 提示字元中設定環境變數 (如前一個範例所示)，它只會在目前的工作階段儲存該數值。若要讓環境變數設定在所有 PowerShell 和命令提示字元工作階段中持續存在，請使用 **Control Panel** (控制面板) 中的 **System** (系統) 應用程式。或者，您也可以將變數新增到 PowerShell 設定檔，為所有未來 PowerShell 工作階段設定變數。如需有關存放環境變數或跨工作階段持續存放的詳細資訊，請參閱 [PowerShell 文件](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_environment_variables)。

------