使用管理 Amazon Redshift 管理員密碼 AWS Secrets Manager - Amazon Redshift

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

使用管理 Amazon Redshift 管理員密碼 AWS Secrets Manager

Amazon Redshift 可與 AWS Secrets Manager 之整合,在加密密碼內產生和管理您的管理員登入資料。使用 AWS Secrets Manager,您可以使用 API 呼叫取代管理員密碼,以便在需要時以程式設計方式擷取密碼。使用機密而非硬式編碼憑證可降低這些憑證遭到洩露或遭到入侵的風險。若要取得有關的更多資訊 AWS Secrets Manager,請參閱AWS Secrets Manager 使用者指南

您可以指定 Amazon Redshift 在執行下列其中一項操作 AWS Secrets Manager 時使用管理員密碼來管理您的管理員密碼:

  • 建立佈建叢集或無伺服器命名空間

  • 從快照還原叢集或無伺服器命名空間

當您指定 Amazon Redshift 管理中的管理員密碼時 AWS Secrets Manager,Amazon Redshift 會生成密碼並將其存儲在 Secrets Manager 中。您可以直接在中存取密碼, AWS Secrets Manager 以擷取管理員使用者的認證。或者,如果您需要從其他帳戶存取密碼,您也可以指定客 AWS 戶管理的金鑰來加密密碼。您也可以使用 AWS Secrets Manager 提供的 KMS 金鑰。

Amazon Redshift 會管理機密的設定,並依預設每 30 天輪換一次密碼。您可以隨時手動輪換機密。如果您刪除管理密碼的佈建叢集或無伺服器命名空間 AWS Secrets Manager,則密碼及其關聯的中繼資料也會一併刪除。

若要使用機密管理的憑證來連線到叢集或無伺服器命名空間,您可以使用 Secrets Manager 主控台或 GetSecretValue Secrets Manager API 呼叫從 AWS Secrets Manager 擷取機密。如需詳細資訊,請參閱《AWS Secrets Manager 使用指南》中的使用密 AWS Secrets Manager 碼中的認證從 SQL 資料庫擷取密碼 AWS Secrets Manager和 Connect 到 SQL 資料庫。

AWS Secrets Manager 整合所需的權限

使用者必須擁有必要的權限,才能執行與 AWS Secrets Manager 整合相關的作業。建立 IAM 政策,授予對其需要的指定資源執行特定 API 操作的許可。然後,將這些政策附加至需要這些許可的 IAM 許可集或角色。如需詳細資訊,請參閱 Amazon Redshift 中的身分和存取管理

指定 Amazon Redshift 管理中管理管理員密碼的使用者 AWS Secrets Manager 必須具有執行下列操作的許可:

  • secretsmanager:CreateSecret

  • secretsmanager:RotateSecret

  • secretsmanager:DescribeSecret

  • secretsmanager:UpdateSecret

  • secretsmanager:DeleteSecret

  • secretsmanager:GetRandomPassword

  • secretsmanager:TagResource

如果使用者想要在佈建叢集的 MasterPasswordSecretKmsKeyId 參數中傳遞 KMS 金鑰,或在無伺服器命名空間的 AdminPasswordSecretKmsKeyId 參數中傳遞 KMS 金鑰,除了上面所列的許可外,其還需要下列許可。

  • kms:Decrypt

  • kms:GenerateDataKey

  • kms:CreateGrant

  • kms:RetireGrant

輪換管理員密碼機密

根據預設,Amazon Redshift 會每 30 天自動輪換您的機密,以確保您的憑證不會長時間保持不變。當 Amazon Redshift 輪換管理員密碼密碼時,請 AWS Secrets Manager 更新現有密碼以包含新的管理員密碼。Amazon Redshift 會變更叢集的管理員密碼,以符合已更新之機密中的密碼。

您可以使用 AWS Secrets Manager立即輪換機密,而無需等待排程的輪換。如需旋轉密碼的詳細資訊,請參閱《AWS Secrets Manager 使用指南》中的〈旋轉 AWS Secrets Manager 密碼

在 Amazon Redshift 中擷取機密的 Amazon Resource Name (ARN)

您可以使用 Amazon Redshift 主控台,檢視由 AWS Secrets Manager 管理之任何機密的 Amazon Resource Name (ARN)。獲得秘密的 ARN 後,您可以使 AWS Secrets Manager用查看有關秘密和秘密中的加密數據的詳細信息。如需使用 ARN 擷取機密的相關資訊,請參閱《AWS Secrets Manager 使用者指南》中的擷取機密

檢視 Amazon Redshift 佈建叢集之機密的詳細資訊

請透過下列程序,使用 Amazon Redshift 主控台檢視叢集機密的 Amazon Resource Name (ARN):

  1. 登入 AWS Management Console 並開啟 Amazon Redshift 主控台。

  2. 叢集概觀窗格中,選擇您要檢視其機密的叢集。

  3. 選擇屬性索引標籤。

  4. 管理員憑證 ARN 下檢視機密的 ARN。此 ARN 是密碼的標識符,您可以在中使用它 AWS Secrets Manager 來查看密碼的詳細信息。

檢視 Amazon Redshift Serverless 命名空間之機密的詳細資訊

請透過下列程序,使用 Amazon Redshift 主控台檢視無伺服器命名空間機密的 Amazon Resource Name (ARN):

  1. 登入 AWS Management Console 並開啟 Amazon Redshift 主控台。

  2. 佈建叢集儀表板中,選擇頁面右上角的前往無伺服器

  3. Serverless 儀表板中,捲動至命名空間/工作群組窗格,然後選擇您要檢視其機密的命名空間。

  4. 一般資訊窗格中,於管理員憑證 ARN 下檢視機密的 ARN。此 ARN 是密碼的標識符,您可以在中使用它 AWS Secrets Manager 來查看密碼的詳細信息。

建立資料庫連線認證的密碼

您可以建立 Secrets Manager 碼來儲存用於連線至 Amazon Redshift 佈建叢集或 Redshift 無伺服器命名空間和工作群組的登入資料。您也可以在 Amazon Redshift 查詢編輯器 v2 中排程查詢時使用此密碼。

使用秘密管理員主控台為 Amazon Redshift 佈建叢集中的資料庫建立密碼
  1. 開啟 Secrets Manager 主控台 (https://console.aws.amazon.com/secretsmanager/)。

  2. 瀏覽至碼清單,然後選擇 [儲存新密碼]。

  3. 選擇 Amazon Redshift 資料倉儲的登入資料。在建立密碼的步驟中輸入您的資訊,如下所示:

    • 使用者名稱認證中,輸入資料倉儲的管理使用者名稱。

    • 密碼認證中,輸入使用者名稱的密碼。

    • 對於加密金鑰,請選擇您的加密金鑰。

    • 對於資料倉儲,請選擇包含您資料的 Amazon Redshift 佈建叢集。

    • 密碼名稱中,輸入密碼的名稱。

    • 說明中,輸入密碼的說明。

    • 在「」中,輸入含有文字的標籤鍵Redshift。當您嘗試使用 Amazon Redshift 查詢編輯器 v2 連線到資料倉儲時,需要此標籤金鑰才能列出機密。

  4. 透過數個步驟繼續輸入密碼的相關資訊,直到您在「檢閱」步驟中儲存變更為止。

    認證、引擎、主機、連接埠和叢集識別碼的特定值會儲存在機密中。此外,秘密還使用標籤鍵標記Redshift

使用 Redshift 無伺服器主控台為 Redshift 無伺服器命名空間中的資料庫建立密碼
  1. 登入 AWS Management Console 並開啟 Amazon Redshift 主控台,網址為 https://console.aws.amazon.com/redshiftv2/

  2. 選擇 Redshift 無伺服器並瀏覽至命名空間組態。

  3. 選擇要為其建立秘密證明資料的命名空間。

  4. 打開操作編輯管理員憑據

  5. 對於管理員密碼,請在中選擇管理員認證 AWS Secrets Manager

  6. 選擇儲存變更,以儲存您所做的變更。

確認出現密碼已成功變更的訊息。您也可以在 Secret 管理員主控台中檢視密碼。您可以使用此密碼,使用連線方法連線至 Redshift 無伺服器主控台和 Amazon Redshift 查詢編輯器 v2 中工作群組中的 AWS Secrets Manager 資料庫。密碼必須具有以字串「Redshift」開頭的標籤金鑰,密碼才能在查詢編輯器 v2 Web 應用程式上列出。

使用秘密管理員主控台為 Redshift 無伺服器命名空間中的資料庫建立密碼
  1. 開啟 Secrets Manager 主控台 (https://console.aws.amazon.com/secretsmanager/)。

  2. 瀏覽至碼清單,然後選擇 [儲存新密碼]。

  3. 選擇 Amazon Redshift 資料倉儲的登入資料。在建立密碼的步驟中輸入您的資訊,如下所示:

    • 使用者名稱認證中,輸入資料倉儲的管理使用者名稱。

    • 密碼認證中,輸入使用者名稱的密碼。

    • 對於加密金鑰,請選擇您的加密金鑰。

    • 對於資料倉儲,請選擇包含資料的 Redshift 無伺服器命名空間。

    • 密碼名稱中,輸入密碼的名稱。

    • 說明中,輸入密碼的說明。

    • 在「」中,輸入含有文字的標籤鍵Redshift。當您嘗試使用 Amazon Redshift 查詢編輯器 v2 連線到資料倉儲時,需要此標籤金鑰才能列出機密。

  4. 透過數個步驟繼續輸入密碼的相關資訊,直到您在「檢閱」步驟中儲存變更為止。

    您的認證、資料庫名稱、主機、連接埠、命名空間和引擎的特定值會儲存在機密中。此外,秘密還使用標籤鍵標記Redshift

若要在 Redshift 無伺服器命名空間中建立資料庫密碼,請使用 AWS CLI

您可以使 AWS CLI 用建立密碼。一種方法是使用 AWS CloudShell 如下運行 Secrets Manager AWS CLI 命令。您必須擁有適當的權限才能執行下列程序中顯示的 AWS CLI 命令。

  1. 在 AWS 主控台上,開啟 AWS CloudShell 命令提示字元。若要取得有關的更多資訊 AWS CloudShell,請參閱《AWS CloudShell 使用指南》 AWS CloudShell中的內

  2. 例如,對於密碼,MyTestSecret請輸入 Secrets Manager 命令來儲存用於連線到資料庫或排程 Amazon Redshift 查詢編輯器 v2 查詢的密碼。將指令中的下列值取代為您環境的值:

    • admin 是資料倉儲的管理員使用者名稱。

    • 碼是管理員的密碼。

    • dev 是數據倉庫中的初始數據庫名稱。

    • 區域是包 AWS 區域 含數據倉庫。例如:us-east-1

    • 1234567 89012 是一個. AWS 帳戶

    • 名空間-id 是類似於的命名空間標識符。c3928f0e-c889-4d2b-97a5-5738324d5d3e您可以在無伺服器命名空間的 Amazon Redshift 主控台詳細資訊頁面上找到此識別碼。

    aws secretsmanager create-secret \ --name MyTestSecret \ --description "My test secret created with the CLI." \ --secret-string "{\"username\":\"admin\",\"password\":\"passw0rd\",\"dbname\":\"dev\",\"engine\":\"redshift\"}" \ --tags "[{\"Key\":\"redshift-serverless:namespaceArn\",\"Value\":\"arn:aws:redshift-serverless:region:123456789012:namespace/namespace-id\"}]"

使用 Amazon Redshift AWS Secrets Manager 的注意事項

使用 AWS Secrets Manager 來管理佈建的叢集或無伺服器命名空間的管理員認證時,請考慮下列事項:

  • 當您暫停其管理認證由其管理員認證的叢集時 AWS Secrets Manager,不會刪除叢集的密碼,並繼續向您收取該密碼的費用。只有刪除叢集時才會刪除機密。

  • 如果您的叢集在 Amazon Redshift 嘗試輪換其附加的機密時暫停了,輪換會失敗。在這種情況下,即使您繼續叢集,Amazon Redshift 還是會停止自動輪換,而且不會嘗試再次輪換。您必須使用 secretsmanager:RotateSecret API 呼叫重新啟動自動輪換排程,才能繼續 AWS Secrets Manager 自動輪替密碼。

  • 如果在 Amazon Redshift 嘗試輪換其附加的機密時,您的無伺服器命名空間沒有相關聯的工作群組,則輪換會失敗,且不會嘗試再次輪換,即使在您附加工作群組之後也是如此。您必須使用 secretsmanager:RotateSecret API 呼叫重新啟動自動輪換排程,才能繼續 AWS Secrets Manager 自動輪替密碼。