自動旋轉密鑰

您可以使用 IBM Cloud® Secrets Manager 排定秘密的自動輪換。

當您在服務實例中輪替密鑰時,便會建立該密鑰值的新版本。 透過排定定期自動輪換密鑰,您可以減少受損的可能性,並確保您的認證永不到期。

自動旋轉僅適用於由 Secrets Manager 產生的機密。 如果一開始已匯入密鑰,則您必須提供新的密鑰資料來輪替該密鑰。 如需相關資訊,請參閱 手動輪替密鑰

開始之前

開始之前,請確定您具有必要的存取層次。 若要輪換密鑰,您需要 撰寫者 服務角色或更高版本

支援的密鑰類型

專用憑證公用憑證使用者認證IAM 認證 支援自動輪換。 根據機密的類型,自動輪調會在您設定的日期和時間立即發生,或者可能需要完成一些額外的步驟才能建立新版本的機密。

描述Secrets Manager如何以機密類型評估手動輪換
類型 旋轉說明
專用憑證 現有的 certificate 值會取代為新的憑證內容。 更新憑證的存活時間 (TTL) 是根據第一次建立憑證時所選取的 憑證範本 來設定。 請注意,當私人憑證的生存時間 (TTL) 或有效期超過其簽發憑證機構的有效期後,該憑證就不能再自動輪換。
公用憑證 公用憑證會移至 作用中的旋轉擱置 狀態,以指出正在處理更新憑證的要求。Secrets Manager 會使用 DNS 驗證來驗證您是否擁有作為憑證一部分列出的網域。 此處理程序可能需要幾分鐘的時間才能完成。 如果驗證順利完成,則會發出新憑證,且其狀態會變更回 作用中。 如果驗證未順利完成,則憑證的狀態會變更為 作用中、旋轉失敗
使用者認證 現有的 password 值會取代為隨機產生的 32 個字元密碼,其中包含大寫字母、小寫字母、數字及符號。 username 值不會變更。
IAM 認證 服務 ID 的 API 金鑰值會取代為新的 API 金鑰。 前一個 API 金鑰在已定義 TTL 中的剩餘時間仍然可用。
服務認證 服務憑證秘密會被新的秘密取代。 在定義的 TTL 剩餘時間內,之前的秘密仍然可用。
自訂認證 自訂憑證秘訣會被新的憑證秘訣取代。 在定義的 TTL 剩餘時間內,之前的秘密仍然可用。

請注意,在為資料庫建立服務認證的情況下,如果除了認證之外,您還在變更所建立認證的資料庫許可權,則在輪換服務認證之後將不會同步這些認證。 當輪替「資料庫」服務認證時,這會被視為身分輪替。

在使用者介面中排程自動旋轉

您可以使用 Secrets Manager 使用者介面來排定自動輪換密鑰。

設定使用者認證的自動輪換原則

如果您偏好將密碼排定為定期自動輪換,則可以在使用者認證建立時啟用自動輪換。 您也可以透過編輯現有密鑰的詳細資料來啟用自動旋轉。

如果您需要更多地控制秘訣的旋轉頻率,您可以使用 daymonth 作為時間單位,使用 Secrets Manager API 設定自訂間隔。 如需相關資訊,請參閱 API 參考資料

  1. 如果您 新增密鑰,請啟用旋轉選項。
  2. 如果您正在編輯現有密鑰,請透過更新其詳細資料來啟用自動輪換。
    1. 密鑰 表格中,檢視現有密鑰的清單。
    2. 在您要編輯之密鑰的列中,按一下 動作 功能表 「動作」圖示 > 編輯詳細資料
    3. 使用 自動旋轉 選項來啟用或停用密鑰的自動旋轉。

當您更新密鑰的旋轉設定時,會觸發立即旋轉。

設定公用憑證的自動輪換原則

如果您希望安排您的公開 SSL / TLS 憑證自動更新,您可以在訂購憑證時啟用憑證自動輪換功能。 您也可以透過編輯現有憑證的詳細資料來啟用自動旋轉。 在憑證的下一個輪換週期中,Secrets Manager 在憑證到期日前 31 天開始嘗試重新訂購該憑證。 服務會繼續每日嘗試更新憑證,直到成功為止。

  1. 如果您 訂購公用憑證,請啟用輪替選項。

    1. 若要自動輪換憑證,請將輪換切換切換至 開啟。 您的憑證會在其到期日之前 31 天自動重新訂購。
    2. 若要在每次輪換證書時要求新的私密金鑰,請將重新鑰匙切換開啟
  2. 如果您正在編輯現有的公用憑證,請透過更新其詳細資料來排程自動輪換。

    1. 密鑰 表格中,檢視現有「公用」憑證的清單。
    2. 在您要編輯之憑證的列中,按一下 動作 功能表 「動作」圖示 > 編輯詳細資料
    3. 使用 自動旋轉 選項來新增或移除密鑰的旋轉原則。

設定專用憑證的自動輪替原則

如果您希望安排您的私人 SSL 或 TLS 憑證自動更新,您可以在建立憑證時,或透過編輯現有憑證的詳細資料,啟用憑證自動輪替功能。 憑證必須

  1. 如果您是 建立專用憑證,請啟用輪替選項。

    1. 若要自動輪換憑證,請將輪換切換切換至 開啟

    2. 選取間隔及單位,以指定排定輪替之間的天數。

      視與專用憑證相關聯的憑證範本而定,可能會套用憑證輪替間隔的部分限制。 例如,旋轉間隔不能超過範本中定義的存活時間 (TTL)。 如需相關資訊,請參閱 憑證範本

  2. 如果您正在編輯現有的專用憑證,請透過更新其詳細資料來排程自動輪替。

    1. 密鑰 表格中,檢視現有「專用」憑證的清單。
    2. 在您要編輯之憑證的列中,按一下 動作 功能表 「動作」圖示 > 編輯詳細資料
    3. 使用 自動旋轉 選項來新增或移除密鑰的旋轉原則。

設定 IAM 認證的自動輪換原則

如果您偏好將 API 金鑰排定為定期自動輪替,則可以在建立 IAM 認證時啟用自動輪替。 您也可以透過編輯現有密鑰的詳細資料來啟用自動旋轉。 請選擇 30、60 或 90 天旋轉間隔。

如果您需要更多地控制秘訣的旋轉頻率,您可以使用 daymonth 作為時間單位,使用 Secrets Manager API 設定自訂間隔。 如需相關資訊,請參閱 API 參考資料

  1. 如果您是 新增密鑰,請透過選取 30、60 或 90 天旋轉間隔來啟用旋轉選項。
  2. 如果您正在編輯現有密鑰,請透過更新其詳細資料來啟用自動輪換。
    1. 密鑰 表格中,檢視現有密鑰的清單。
    2. 在您要編輯之密鑰的列中,按一下 動作 功能表 「動作」圖示 > 編輯詳細資料
    3. 使用 自動旋轉 選項來啟用或停用密鑰的自動旋轉。

循環僅適用於重複使用金鑰設為 true 的 IAM 認證。 定義的旋轉間隔不能高於定義的存活時間 (TTL)。 您可以使用 minute 時間單位來設定密鑰的 TTL,但這些密鑰無法使用循環。

設定服務認證的自動輪換原則

如果您希望將服務憑證秘密排定為定期自動輪替,您可以在建立服務憑證時將其自動輪替啟用。 您也可以透過編輯現有密鑰的詳細資料來啟用自動旋轉。 請選擇 30、60 或 90 天旋轉間隔。

如果您需要更多地控制秘訣的旋轉頻率,您可以使用 daymonth 作為時間單位,使用 Secrets Manager API 設定自訂間隔。 如需相關資訊,請參閱 API 參考資料

  1. 如果您是 新增密鑰,請透過選取 30、60 或 90 天旋轉間隔來啟用旋轉選項。
  2. 如果您正在編輯現有密鑰,請透過更新其詳細資料來啟用自動輪換。
    1. 密鑰 表格中,檢視現有密鑰的清單。
    2. 在您要編輯之密鑰的列中,按一下 動作 功能表 「動作」圖示 > 編輯詳細資料
    3. 使用 自動旋轉 選項來啟用或停用密鑰的自動旋轉。

為「自訂憑證」設定自動輪換政策

如果您偏好排定 custom_credentials secret 定時自動輪替,您可以在建立 custom_credentials secret 時啟用自動輪替。 您也可以透過編輯現有密鑰的詳細資料來啟用自動旋轉。 請選擇 30、60 或 90 天旋轉間隔。

如果您需要更多地控制秘訣的旋轉頻率,您可以使用 daymonth 作為時間單位,使用 Secrets Manager API 設定自訂間隔。 如需相關資訊,請參閱 API 參考資料

  1. 如果您是 新增密鑰,請透過選取 30、60 或 90 天旋轉間隔來啟用旋轉選項。
  2. 如果您正在編輯現有密鑰,請透過更新其詳細資料來啟用自動輪換。
    1. 密鑰 表格中,檢視現有密鑰的清單。
    2. 在您要編輯之密鑰的列中,按一下 動作 功能表 「動作」圖示 > 編輯詳細資料
    3. 使用 自動旋轉 選項來啟用或停用密鑰的自動旋轉。

從 CLI 排定自動旋轉

您可以使用 Secrets Manager CLI 外掛程式來排定自動輪換密鑰。

設定使用者認證的自動輪換原則

使用 ibmcloud secrets-manager secret-metadata-update 來排定使用者認證的自動輪換。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

若要移除原則,請將資源區塊保留空白。

設定公用憑證的自動輪換原則

使用 ibmcloud secrets-manager secret-metadata-update 來排定公用憑證的自動輪換。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true, "rotate_keys": true}'

設定專用憑證的自動輪替原則

使用 ibmcloud secrets-manager secret-metadata-update 來排定專用憑證的自動輪換。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

設定 IAM 認證的自動輪換原則

使用 ibmcloud secrets-manager secret-metadata-update 來排定 IAM 認證的自動輪換。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

若要移除原則,請將資源區塊保留空白。

設定服務認證的自動輪換原則

使用 ibmcloud secrets-manager secret-metadata-update 來排定服務認證的自動輪換。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

若要移除原則,請將資源區塊保留空白。

為「自訂憑證」設定自動輪換政策

透過使用 ibmcloud secrets-manager secret-metadata-update.

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

若要移除原則,請將資源區塊保留空白。

使用 API 排定自動旋轉

您可以使用 Secrets Manager API 來排定自動輪換密鑰。

設定使用者認證的自動輪換原則

下列範例要求會為使用者認證 (username_password) 密鑰建立自動輪換原則。 當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
            "rotation": {
               "auto_rotate": true,
               "interval": 1,
               "unit": "month"
            }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

若回應成功,系統將回傳該密鑰的 ID 值,以及其他元資料。 如需必要及選用要求參數的相關資訊,請參閱 API 參考資料

若要移除原則,請將資源區塊保留空白。

設定公用憑證的自動輪換原則

如果您偏好將憑證排定為自動更新,則可以在訂購憑證時啟用憑證自動輪替,或透過編輯現有憑證的詳細資料來啟用憑證自動輪替。 在憑證的下一個循環週期中,Secrets Manager 會在憑證到期日之前 31 天重新訂購憑證。

訂購自動更新的公用憑證

下列範例要求會訂購已啟用自動輪換的憑證。 當您呼叫 API 時,請將 auto_rotate 內容設為 true。 您可以選擇性地將 rotate_keys 設為 true,以在每次輪替時要求憑證的新私密金鑰。

curl -X POST
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -d '{
         "custom_metadata": {
            "metadata_custom_key": "metadata_custom_value"
         },
         "rotation": {
            "auto_rotate": true,
            "rotate_keys": true
         },
         "version_custom_metadata": {
            "custom_version_key": "custom_version_value"
         }
      }' \
   "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

若回應成功,則會回傳該憑證的 ID 值,以及其他元資料。 如需必要及選用要求參數的相關資訊,請參閱 API 參考資料

設定 IAM 認證的自動輪換原則

下列範例要求會針對 IAM 認證 (iam_credentials) 密鑰建立自動輪換原則。 當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
          "rotation": {
            "auto_rotate": true,
            "interval": 30,
            "unit": "day"
          }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

若要移除原則,請將資源區塊保留空白。

若回應成功,系統將回傳該密鑰的 ID 值,以及其他元資料。 如需必要及選用要求參數的相關資訊,請參閱 API 參考資料

定義的旋轉間隔不能高於定義的存活時間。 循環僅適用於「重複使用金鑰」設為 true 的 IAM 認證。 您可以使用 minute 時間單位來設定密鑰的 TTL,但這些密鑰無法使用循環。

設定服務認證的自動輪換原則

下列範例要求會建立服務認證 (service_credentials) 密鑰的自動輪換原則。 當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
          "rotation": {
            "auto_rotate": true,
            "interval": 30,
            "unit": "day"
          }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

若要移除原則,請將資源區塊保留空白。

若回應成功,系統將回傳該密鑰的 ID 值,以及其他元資料。 如需必要及選用要求參數的相關資訊,請參閱 API 參考資料

定義的旋轉間隔不能高於定義的存活時間。

為「自訂憑證」設定自動輪換政策

以下範例請求為 custom_credentials secret 建立自動輪替政策。 當您呼叫 API 時,請將 ID 變數及 IAM 記號取代為 Secrets Manager 實例特定的值。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
          "rotation": {
            "auto_rotate": true,
            "interval": 30,
            "unit": "day"
          }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

若要移除原則,請將資源區塊保留空白。

若回應成功,系統將回傳該密鑰的 ID 值,以及其他元資料。 如需必要及選用要求參數的相關資訊,請參閱 API 參考資料

定義的旋轉間隔不能高於定義的存活時間。

更新自動旋轉間隔

當機密項的自動輪替間隔更新時,Secrets Manager 會驗證當前機密版本的有效性,確保其有效期將持續至下次預定的輪替為止。

此驗證適用於採用 TTL 過期機制的密鑰類型:

如果當前版本在下次預定輪替之前過期,則會拒絕自動輪替間隔的更新,以避免密鑰在尚未完成輪替前便已過期的情況發生。 若驗證失敗,Secrets Manager 會傳回錯誤代碼 Error02009,這表示當前的密鑰版本將在下次預定輪替之前過期。

舉例來說,如果當前版本將於 3 天後過期,而您將自動輪替間隔設定為 60 天,則系統會拒絕此更新,因為該版本會在下次輪替之前就已過期。

在此情況下,由於現行版本將在下次輪替發生之前過期,因此不允許進行更新。

解決自動輪替間隔更新衝突

要解決此問題,請確保當前的密鑰版本在下次預定輪替日期之後仍保持有效。 根據您的祕密類型和設定,您可以:

  • 輪替密鑰,以建立一個到期日較晚的新版本。
  • 更新密鑰的 TTL(如有需要),並輪替密鑰,以確保當前有效的版本在下次預定輪替日期之後仍保持有效。

當當前版本的到期日期超過下一次預定輪替日期後,即可成功更新自動輪替間隔。