全部產品
Search
文件中心

Key Management Service:輪轉通用憑據

更新時間:Jul 06, 2024

本文為您介紹輪轉通用憑據的典型情境和操作。

典型情境

憑據消費者和憑據產生者可以通過憑據管家,實現憑據相關功能。
  • 憑據管家:託管憑據。例如:Secret管理API對憑據進行託管。
  • 憑據消費者:需要使用憑據的應用。例如:業務端應用調用GetSecretValue介面擷取最新的憑據值。
  • 憑據產生者:營運系統或管理員。例如:線下IDC、Elastic Compute Service和Function ComputeFC調用CreateSecret介面建立憑據,調用PutSecretValue介面輪轉憑據。
輪轉通用憑據

前提條件

輪轉通用憑據前,請確保您已經完成以下操作:

  • 營運系統已經為憑據存入了初始版本,初始版本預設被憑據管家標記為ACSCurrent
  • 使用憑據的應用,調用GetSecretValue介面擷取所需的憑據值,用戶端僅需要指定憑據的名稱,服務端返回被標記為ACSCurrent版本的憑據值。

通過一個API輪轉通用憑據

如果目標系統中有已生效的憑據,當您需要將該憑據存入憑據管家時,可以調用一個API輪轉通用憑據。例如:常見的OAuth 2.0系統中的應用密鑰(App Secret)通常由系統產生,您可以將它們託管在憑據管家。輪轉流程如下:
  1. 管理員在OAuth 2.0應用管理系統中,產生新的App Secret。
  2. 您可以使用CLI將新的App Secret存入託管的憑據中,同時新存入的App Secret所在版本會被標記為ACSCurrentACSCurrent標記的上一個版本被自動標籤為ACSPrevious
    aliyun kms PutSecretValue \
      --SecretName MyOAuthAppSecret 
      --SecretData sample-app-secret \
      --VersionId v2
  3. 調用GetSecretValue介面返回被標記為ACSCurrent狀態的版本的憑據值,即為最新的App Secret。

通過多個API輪轉通用憑據

大多情況下,目標系統並不會自動產生憑據,例如:RDS資料庫的帳號和ECS執行個體的SSH Key。您可以將建立的新憑據儲存到憑據管家中,作為已有憑據的待定狀態的版本。然後將新的憑據值註冊到目標系統,將KMS憑據的待定版本輪轉為目前的版本。

您可以使用CLI輪轉託管在憑據管家的資料庫使用者口令,具體操作如下:
  1. 調用GetRandomPassword介面,使用輪轉程式為新的口令產生一個隨機的字串。
    aliyun kms GetRandomPassword --ExcludePunctuation true 

    KMS返回以下結果:

    {
        "RequestId": "e36ca295-6e47-4dfb-9df1-48d19df41545",
        "RandomPassword": "v2GwsgcuNylyYw9JGJNE5yBViGSi****"
    }
  2. 將資料庫的新使用者和新密碼,作為一個新的版本存入憑據中。

    執行以下命令,保持ACSCurrentACSPrevious標記的版本不變,將新建立的版本戳記為MyPendingLabel

    aliyun kms PutSecretValue \
        --SecretName db_cred 
        --SecretData "{\"uname\": \"alice\", \"pwd\": \"v2GwsgcuNylyYw9JGJNE5yBViGSiZ****"}" \
        --VersionId v2 \
        --VersionStages "[\"MyPendingLabel\"]"
  3. 在目標資料庫中,註冊上述新的使用者名稱和口令。

    憑據對象db_cred內的版本號碼為v2的憑據值,才可以用於訪問目標資料庫。

  4. 執行以下命令,將憑據對象中新存入的憑據版本設定為ACSCurrent狀態。
    aliyun kms UpdateSecretVersionStage \
        --SecretName db_cred \
        --VersionStage ACSCurrent \
        --MoveToVersion v2
  5. 調用GetSecretValue介面返回被標記為ACSCurrent狀態的版本的憑據值,即為最新的帳號口令。
說明 您也可以直接使用RDS憑據,由憑據管家幫您完成自動輪轉的任務。更多資訊,請參見動態RDS憑據概述