自動旋轉密鑰
您可以使用 IBM Cloud® Secrets Manager 排定秘密的自動輪換。
當您在服務實例中輪替密鑰時,便會建立該密鑰值的新版本。 透過排定定期自動輪換密鑰,您可以減少受損的可能性,並確保您的認證永不到期。
自動旋轉僅適用於由 Secrets Manager 產生的機密。 如果一開始已匯入密鑰,則您必須提供新的密鑰資料來輪替該密鑰。 如需相關資訊,請參閱 手動輪替密鑰。
開始之前
開始之前,請確定您具有必要的存取層次。 若要輪換密鑰,您需要 撰寫者 服務角色或更高版本。
支援的密鑰類型
專用憑證、公用憑證、使用者認證 及 IAM 認證 支援自動輪換。 根據機密的類型,自動輪調會在您設定的日期和時間立即發生,或者可能需要完成一些額外的步驟才能建立新版本的機密。
| 類型 | 旋轉說明 |
|---|---|
| 專用憑證 | 現有的 certificate 值會取代為新的憑證內容。 更新憑證的存活時間 (TTL) 是根據第一次建立憑證時所選取的 憑證範本 來設定。 請注意,當私人憑證的生存時間 (TTL) 或有效期超過其簽發憑證機構的有效期後,該憑證就不能再自動輪換。 |
| 公用憑證 | 公用憑證會移至 作用中的旋轉擱置 狀態,以指出正在處理更新憑證的要求。Secrets Manager 會使用 DNS 驗證來驗證您是否擁有作為憑證一部分列出的網域。 此處理程序可能需要幾分鐘的時間才能完成。 如果驗證順利完成,則會發出新憑證,且其狀態會變更回 作用中。 如果驗證未順利完成,則憑證的狀態會變更為 作用中、旋轉失敗。 |
| 使用者認證 | 現有的 password 值會取代為隨機產生的 32 個字元密碼,其中包含大寫字母、小寫字母、數字及符號。 username 值不會變更。 |
| IAM 認證 | 服務 ID 的 API 金鑰值會取代為新的 API 金鑰。 前一個 API 金鑰在已定義 TTL 中的剩餘時間仍然可用。 |
| 服務認證 | 服務憑證秘密會被新的秘密取代。 在定義的 TTL 剩餘時間內,之前的秘密仍然可用。 |
| 自訂認證 | 自訂憑證秘訣會被新的憑證秘訣取代。 在定義的 TTL 剩餘時間內,之前的秘密仍然可用。 |
請注意,在為資料庫建立服務認證的情況下,如果除了認證之外,您還在變更所建立認證的資料庫許可權,則在輪換服務認證之後將不會同步這些認證。 當輪替「資料庫」服務認證時,這會被視為身分輪替。
在使用者介面中排程自動旋轉
您可以使用 Secrets Manager 使用者介面來排定自動輪換密鑰。
設定使用者認證的自動輪換原則
如果您偏好將密碼排定為定期自動輪換,則可以在使用者認證建立時啟用自動輪換。 您也可以透過編輯現有密鑰的詳細資料來啟用自動旋轉。
如果您需要更多地控制秘訣的旋轉頻率,您可以使用 day 或 month 作為時間單位,使用 Secrets Manager API 設定自訂間隔。 如需相關資訊,請參閱 API 參考資料。
- 如果您 新增密鑰,請啟用旋轉選項。
- 如果您正在編輯現有密鑰,請透過更新其詳細資料來啟用自動輪換。
- 在 密鑰 表格中,檢視現有密鑰的清單。
- 在您要編輯之密鑰的列中,按一下 動作 功能表
> 編輯詳細資料。
- 使用 自動旋轉 選項來啟用或停用密鑰的自動旋轉。
當您更新密鑰的旋轉設定時,會觸發立即旋轉。
設定公用憑證的自動輪換原則
如果您希望安排您的公開 SSL / TLS 憑證自動更新,您可以在訂購憑證時啟用憑證自動輪換功能。 您也可以透過編輯現有憑證的詳細資料來啟用自動旋轉。 在憑證的下一個輪換週期中,Secrets Manager 在憑證到期日前 31 天開始嘗試重新訂購該憑證。 服務會繼續每日嘗試更新憑證,直到成功為止。
-
如果您 訂購公用憑證,請啟用輪替選項。
- 若要自動輪換憑證,請將輪換切換切換至 開啟。 您的憑證會在其到期日之前 31 天自動重新訂購。
- 若要在每次輪換證書時要求新的私密金鑰,請將重新鑰匙切換開啟。
-
如果您正在編輯現有的公用憑證,請透過更新其詳細資料來排程自動輪換。
- 在 密鑰 表格中,檢視現有「公用」憑證的清單。
- 在您要編輯之憑證的列中,按一下 動作 功能表
> 編輯詳細資料。
- 使用 自動旋轉 選項來新增或移除密鑰的旋轉原則。
設定專用憑證的自動輪替原則
如果您希望安排您的私人 SSL 或 TLS 憑證自動更新,您可以在建立憑證時,或透過編輯現有憑證的詳細資料,啟用憑證自動輪替功能。 憑證必須
設定 IAM 認證的自動輪換原則
如果您偏好將 API 金鑰排定為定期自動輪替,則可以在建立 IAM 認證時啟用自動輪替。 您也可以透過編輯現有密鑰的詳細資料來啟用自動旋轉。 請選擇 30、60 或 90 天旋轉間隔。
如果您需要更多地控制秘訣的旋轉頻率,您可以使用 day 或 month 作為時間單位,使用 Secrets Manager API 設定自訂間隔。 如需相關資訊,請參閱 API 參考資料。
- 如果您是 新增密鑰,請透過選取 30、60 或 90 天旋轉間隔來啟用旋轉選項。
- 如果您正在編輯現有密鑰,請透過更新其詳細資料來啟用自動輪換。
- 在 密鑰 表格中,檢視現有密鑰的清單。
- 在您要編輯之密鑰的列中,按一下 動作 功能表
> 編輯詳細資料。
- 使用 自動旋轉 選項來啟用或停用密鑰的自動旋轉。
循環僅適用於重複使用金鑰設為 true 的 IAM 認證。 定義的旋轉間隔不能高於定義的存活時間 (TTL)。 您可以使用 minute 時間單位來設定密鑰的 TTL,但這些密鑰無法使用循環。
設定服務認證的自動輪換原則
如果您希望將服務憑證秘密排定為定期自動輪替,您可以在建立服務憑證時將其自動輪替啟用。 您也可以透過編輯現有密鑰的詳細資料來啟用自動旋轉。 請選擇 30、60 或 90 天旋轉間隔。
如果您需要更多地控制秘訣的旋轉頻率,您可以使用 day 或 month 作為時間單位,使用 Secrets Manager API 設定自訂間隔。 如需相關資訊,請參閱 API 參考資料。
- 如果您是 新增密鑰,請透過選取 30、60 或 90 天旋轉間隔來啟用旋轉選項。
- 如果您正在編輯現有密鑰,請透過更新其詳細資料來啟用自動輪換。
- 在 密鑰 表格中,檢視現有密鑰的清單。
- 在您要編輯之密鑰的列中,按一下 動作 功能表
> 編輯詳細資料。
- 使用 自動旋轉 選項來啟用或停用密鑰的自動旋轉。
為「自訂憑證」設定自動輪換政策
如果您偏好排定 custom_credentials secret 定時自動輪替,您可以在建立 custom_credentials secret 時啟用自動輪替。 您也可以透過編輯現有密鑰的詳細資料來啟用自動旋轉。 請選擇 30、60 或 90 天旋轉間隔。
如果您需要更多地控制秘訣的旋轉頻率,您可以使用 day 或 month 作為時間單位,使用 Secrets Manager API 設定自訂間隔。 如需相關資訊,請參閱 API 參考資料。
- 如果您是 新增密鑰,請透過選取 30、60 或 90 天旋轉間隔來啟用旋轉選項。
- 如果您正在編輯現有密鑰,請透過更新其詳細資料來啟用自動輪換。
- 在 密鑰 表格中,檢視現有密鑰的清單。
- 在您要編輯之密鑰的列中,按一下 動作 功能表
> 編輯詳細資料。
- 使用 自動旋轉 選項來啟用或停用密鑰的自動旋轉。
從 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(如有需要),並輪替密鑰,以確保當前有效的版本在下次預定輪替日期之後仍保持有效。
當當前版本的到期日期超過下一次預定輪替日期後,即可成功更新自動輪替間隔。