如何創建和配置 Amazon Keyspaces 的 AWS 憑據 - Amazon Keyspaces (適用於 Apache Cassandra)

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

如何創建和配置 Amazon Keyspaces 的 AWS 憑據

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

安全性最佳實務建議您建立具有有限許可的 IAM 使用者,而是將 IAM 角色與執行特定工作所需的許可建立關聯。然後,IAM 使用者可以暫時擔任 IAM 角色來執行必要的工作。例如,您帳戶中使用 Amazon Keyspaces 主控台的 IAM 使用者可以切換到角色,以暫時使用主控台中角色的許可。使用者放棄其原始許可並取得指派給該角色的許可。當使用者退出角色時,將恢復其原始許可。使用者用來承擔角色的認證是暫時性的。相反,IAM 使用者擁有長期登入資料,如果他們沒有假設角色直接指派給他們的權限,就會帶來安全風險。為了減輕此風險,我們建議您僅向這些使用者提供執行工作所需的權限,並在不再需要這些使用者時移除這些使用者。如需有關角色的詳細資訊,請參閱 IAM 使用者指南中的角色常見案例:使用者、應用程式和服務

所需的憑據 AWS CLI, 該 AWS SDK, 或 Amazon Keyspaces Sigv4 插件卡桑德拉客戶端驅動程序

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

AWS_ACCESS_KEY_ID

指定與 IAM 使用者或角色相關聯的 AWS 存取金鑰。

需要存取金鑰aws_access_key_id才能以程式設計方式連接到 Amazon 金 Keyspaces。

AWS_SECRET_ACCESS_KEY

指定與存取金鑰相關聯的私密金鑰。這基本上是存取金鑰的「密碼」。

需要以編程方式連接到 Amazon Keyspaces。aws_secret_access_key

AWS_SESSION_TOKEN— 可選

指定當您直接從 AWS Security Token Service 作業擷取的暫時安全憑證時需要的工作階段字符值。如需詳細資訊,請參閱 使用臨時登入資料,透過 IAM 角色和 Sigv4 外掛程式連線到 Amazon Keyspaces

如果您要與 IAM 使用者連線,aws_session_token則不需要。

建立 IAM 使用者,以程式設計方式存取帳戶中的 Amazon Keyspaces AWS

若要透過 AWS SDK 或 Sigv4 外掛程式以程式設計方 AWS CLI式存取 Amazon Keyspaces 的登入資料,您需要先建立 IAM 使用者或角色。以下步驟顯示建立 IAM 使用者和設定該 IAM 使用者以程式設計方式存取 Amazon Keyspaces 的程序:

  1. 在 AWS Management Console、、、適用於視窗的 AWS CLI工具中建立使用者 PowerShell,或使用 AWS API 作業。如果您在中建立使用者 AWS Management Console,則會自動建立認證。

  2. 如果以程式設計方式建立使用者,則必須在其他步驟中為該使用者建立存取金鑰 (存取金鑰 ID 和秘密存取金鑰)。

  3. 授予用戶訪問 Amazon Keyspaces 的權限。

如需建立使用者所需許可的相關資訊,請參閱存取 IAM 資源所需的權限。

建立 IAM 使用者 (主控台)

您可以使用建 AWS Management Console 立 IAM 使用者。

建立具有程式設計存取權的 IAM 使用者 (主控台)
  1. 登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/

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

  3. 為新使用者輸入使用者名稱。這是的登入名稱 AWS。

    注意

    使用者名稱可以是長達 64 個字母、數字以及這些字元的組合:加號 (+)、等號 (=)、逗號 (,)、句號 (.)、@ 符號、底線 (_) 以及連字號 (-)。名稱在帳戶中必須是唯一的。它們無法透過大小寫進行區分。例如,您不可以建立兩個名為 TESTUSERtestuser 的使用者。

  4. 取 [存取金鑰-程式設計存取],為新使用者建立存取金鑰。進入最終頁面時,您可以查看或下載訪問密鑰。

    選擇下一步:許可

  5. 在 [設定權限] 頁面上,選擇 [直接連結現有原則],將權限指派給新使用者。

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

    對於 Amazon Keyspaces,可用的受管政策為AmazonKeyspacesFullAccessAmazonKeyspacesReadOnlyAccess。如需每個策略的詳細資訊,請參閱AWS亞馬遜 Keyspaces 的受管政策

    為了測試目的並遵循連線教學課程,請選取新 IAM 使用者的AmazonKeyspacesReadOnlyAccess政策。附註:最佳作法是,我們建議您遵循最低權限原則,並建立自訂原則,以限制對特定資源的存取,而且只允許執行必要動作。如需 IAM 政策的詳細資訊,並檢視 Amazon Keyspaces 的範例政策,請參閱Amazon Keyspaces 基於身份的政策。建立自訂權限原則之後,請將原則附加至角色,然後讓使用者暫時擔任適當的角色。

    選擇下一步:標籤

  6. 在「新增標記 (選用)」頁面上,您可以為使用者新增標籤,或選擇「下一步:檢閱」。

  7. 在「複查」頁面上,您可以看到目前為止所做的所有選擇。當您準備好繼續時,請選擇 [建立使用者]。

  8. 若要檢視使用者的存取金鑰 (存取金鑰 ID 和私密存取金鑰),請選擇密碼和存取金鑰旁的 Show (顯示)。若要儲存取金鑰,請選擇 Download .csv (下載 .csv),然後將檔案儲存到安全的位置。

    重要

    這是您查看或下載秘密訪問密鑰的唯一機會,您需要這些信息才能使用 Sigv4 插件。請將使用者的新存取金鑰 ID 和私密存取金鑰存放在安全處。在此步驟之後,您將無法再存取該私密金鑰。

建立 IAM 使用者 (AWS CLI)

您可以使用 AWS CLI 建立 IAM 使用者。

若要建立具有程式設計存取權的 IAM 使用者 ()AWS CLI
  1. 使用下面的 AWS CLI 代碼創建一個用戶。

  2. 為使用者提供程式設計存取權限。這需要訪問密鑰,可以通過以下方式生成。

    • AWS CLI: aws iam create-access-key

    • 視窗工具 PowerShell:New-IAMAccessKey

    • IAM API:CreateAccessKey

      重要

      這是您查看或下載秘密訪問密鑰的唯一機會,您需要這些信息才能使用 Sigv4 插件。請將使用者的新存取金鑰 ID 和私密存取金鑰存放在安全處。在此步驟之後,您將無法再存取該私密金鑰。

  3. AmazonKeyspacesReadOnlyAccess原則附加至定義使用者權限的使用者。附註:最佳作法是,建議您將使用者新增至群組並將原則附加至群組,而不是直接附加至使用者,以管理使用者權限。

為 IAM 使用者建立新的存取金鑰

如果您已有 IAM 使用者,則可以隨時建立新的存取金鑰。如需金鑰管理的詳細資訊,例如如何更新存取金鑰,請參閱管理 IAM 使用者的存取金鑰

建立 IAM 使用者 (主控台) 的存取金鑰
  1. 登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇使用者

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

  4. 在使用者的 [摘要] 頁面上,選擇 [安全性認證] 索引標籤。

  5. Access keys (存取金鑰) 區段中,選擇 Create access key (建立存取金鑰)

    若要查看新的存取金鑰,請選擇 Show (顯示)。您的憑證看起來如下:

    • 存取金鑰 ID:AKIAIOSFODNN7EXAMPLE

    • 私密存取金鑰:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

    注意

    在關閉此對話方塊後,您將無法再次存取該私密存取金鑰。

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

  7. 下載 .csv 檔案後,請選擇 Close (關閉)

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

如何管理 IAM 使用者的存取金鑰

最佳做法是,建議您不要將存取金鑰直接嵌入程式碼中。 AWS SDK 和 AWS 命令行工具使您可以將訪問密鑰放在已知位置,以便您不必將它們保留在代碼中。將存取金鑰放入以下其中一個位置:

  • 環境變數 — 在多租戶系統上,選擇使用者環境變數,而非系統環境變數。

  • CLI 憑證檔案 – 當您執行命令 aws configure 時,會更新 credentialsconfig 檔案。該credentials文件位~/.aws/credentials於 Linux,macOS 或 Unix,或在視窗C:\Users\USERNAME\.aws\credentials上。此檔案可包含 default 描述檔和任何具名描述檔的憑證詳細資訊。

  • CLI 組態檔 – 當您執行命令 aws configure 時,會更新 credentialsconfig 檔案。該config文件位~/.aws/config於 Linux,macOS 或 Unix,或在視窗C:\Users\USERNAME\.aws\config上。此檔案包含預設描述檔和任何具名描述檔的組態設定。

將存取金鑰儲存為環境變數是. S tep-by-step 教程連接到 Amazon Keyspaces 使用 4.x DataStax Java 驅動程序阿帕奇卡桑德拉和 SIGv4 身份驗證插件 用戶端會使用預設認證提供者鏈結來搜尋認證,而儲存為環境變數的存取金鑰會先於所有其他位置,例如組態檔案。如需詳細資訊,請參閱組態設定和優先順序

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

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>

設定環境變數會變更使用的數值,直到 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>

使用 set 設定環境變數會變更使用的數值,直到目前命令提示工作階段結束或直到您將該變數設為其他數值。使用 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>"

如果您在 PowerShell 提示中設定環境變數 (如前面範例所示),則只會儲存目前工作階段持續時間的值。若要讓環境變數設定在所有 PowerShell 和 [命令提示字元] 工作階段中持續存放,請使用 [控制台] 中的系統應用程式來儲存。或者,您可以將變量添加到您的個 PowerShell 人資料中,為所有 future 的 PowerShell 會話設置該變量。如需有關儲存環境變數或在工作階段中保留環境變數的詳細資訊,請參閱PowerShell 文件。

使用臨時登入資料,透過 IAM 角色和 Sigv4 外掛程式連線到 Amazon Keyspaces

為了增強安全性,您可以使用臨時憑據與 Sigv4 插件進行身份驗證。在許多情況下,您不必像 IAM 使用者一樣需要永遠不會過期的長期存取金鑰。相反地,您可以建立 IAM 角色並產生臨時安全登入資料。臨時安全登入資料包含存取金鑰 ID 和私密存取金鑰,但其中也包含指出登入資料何時到期的安全符記。若要進一步了解如何使用 IAM 角色而非長期存取金鑰,請參閱切換至 IAM 角色 (AWS API)

若要開始使用臨時登入資料,您首先需要建立 IAM 角色。

建立 IAM 角色,以授予 Amazon 金 Keyspaces 的唯讀存取權
  1. 登入 AWS Management Console 並開啟身分與存取權管理主控台,網址為 https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇角色,然後選擇建立角色。

  3. 在 [建立角色] 頁面的 [選取信任實體的類型] 下,選擇 [AWS 服務]。在 [選擇使用案例] 下方,選擇 [Amazon EC2],然後選擇 [下步]。

  4. 在「新增許可」頁面的「權限政策」下,從政策清單中選擇「Amazon Keyspaces 唯讀存取」,然後選擇「下步」。

  5. 在 [名稱、檢閱和建立] 頁面上,輸入角色的名稱,然後檢閱 [選取信任的實體] 和 [新增權限] 區段。您也可以在此頁面上新增角色的選擇性標籤。完成後,請選取 [建立角色]。請記住此名稱,因為啟動 Amazon EC2 執行個體時會需要這個名稱。

若要在程式碼中使用臨時安全登入資料,您可以透過程式設計方式呼叫類似AssumeRole的 AWS Security Token Service API,並從您在上一步中建立的 IAM 角色擷取產生的認證和工作階段權杖。然後,您可以使用這些值作為後續呼叫的認證 AWS。下列範例顯示如何使用臨時安全性登入資料的虛擬程式碼:

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

如需使用 Python 驅動程式實作臨時登入資料以存取 Amazon Keyspaces 的範例,請參閱Connect 到 Amazon Keyspaces 使用 DataStax Python 驅動程序阿帕奇卡桑德拉和 SIGv4 身份驗證插件

如需如何呼叫 AssumeRoleGetFederationToken 以及其他 API 操作的詳細資訊,請參閱 AWS Security Token Service API 參考。有關從結果取得臨時安全憑證和工作階段權杖的詳細資訊,請參閱您正在使用的軟體開發套件的說明文件。您可以在主要文件頁面的 AWS SDK 和工具組區段中找到所有 SDK 的AWS 文件