在 Azure 受控 HSM 中設定金鑰自動輪替
概觀
注意
金鑰自動輪替需要 Azure CLI 2.42.0 版或更新版本。
受控 HSM 中的自動化金鑰輪替可讓使用者將受控 HSM 設定為以指定的頻率自動產生新的金鑰版本。 您可以設定輪替原則來設定每個個別金鑰的輪替,並視需要選擇性輪替金鑰。 建議您至少每兩年輪替一次加密金鑰,以符合密碼編譯最佳做法。 如需其他指引和建議,請參閱 NIST SP 800-57 第 1 部分。
這項功能可實現端對端的零接觸輪替,利用儲存在 Azure 受控 HSM 中的客戶自控金鑰 (CMK) 為 Azure 服務提供待用加密功能。 請參閱特定的 Azure 服務文件,以了解該服務是否包含端對端輪替功能。
定價
受控 HSM 金鑰輪替不需額外費用。 如需受控 HSM 定價的詳細資訊,請參閱 Azure Key Vault 定價頁面
警告
受控 HSM 每個金鑰的限制為 100 個版本。 在自動或手動輪替過程中建立的主要版本會計入此限制。
需要的權限
輪替金鑰或設定金鑰輪替原則需要特定金鑰管理權限。 您可以指派「受控 HSM 密碼編譯使用者」角色,以取得足夠的權限來管理輪替原則和隨選輪替。
如需如何在受控 HSM 上設定本機 RBAC 權限的詳細資訊,請參閱:受控 HSM 角色管理
注意
設定輪替原則需要「金鑰寫入」權限。 隨選輪替金鑰需要「輪替」權限。 兩者都包含在「受控 HSM 密碼編譯使用者」內建角色中
金鑰輪替原則
金鑰輪替原則可讓使用者設定輪替間隔,並設定輪替金鑰的到期間隔。 必須先設定,才能隨選輪替金鑰。
注意
受控 HSM 不支援事件方格通知
金鑰輪替原則設定:
- 到期時間:金鑰到期間隔 (至少 28 天)。 其用來在新輪替的金鑰上設定到期日 (例如輪替之後,新金鑰會設定為在 30 天內到期)。
- 輪替類型:
- 建立後於指定的時間自動更新
- 在到期前的指定時間自動更新。 必須在金鑰上設定「到期日」,才能引發此事件。
警告
自動輪替原則無法強制新的金鑰版本以比每隔 28 天建立一次更頻繁的頻率建立。 針對以建立為基礎的輪替原則,這表示 timeAfterCreate
的最小值為 P28D
。 針對以到期為基礎的輪替原則,timeBeforeExpiry
的最大值取決於 expiryTime
。 例如,如果 expiryTime
是 P56D
,則 timeBeforeExpiry
最多可以是 P28D
。
設定金鑰輪替原則
Azure CLI
寫入金鑰輪替原則,並將其儲存至檔案。 使用 ISO8601 持續時間格式來指定時間間隔。 下一節會提供一些範例原則。 使用下列命令將原則套用至金鑰。
az keyvault key rotation-policy update --hsm-name <hsm-name> --name <key-name> --value </path/to/policy.json>
範例原則
在建立之後 18 個月輪替金鑰,並將新金鑰設定為在兩年後到期。
{
"lifetimeActions": [
{
"trigger": {
"timeAfterCreate": "P18M",
"timeBeforeExpiry": null
},
"action": {
"type": "Rotate"
}
}
],
"attributes": {
"expiryTime": "P2Y"
}
}
在到期之前 28 天輪替金鑰,並將新金鑰設定為在一年後到期。
{
"lifetimeActions": [
{
"trigger": {
"timeAfterCreate": null,
"timeBeforeExpiry": "P28D"
},
"action": {
"type": "Rotate"
}
}
],
"attributes": {
"expiryTime": "P1Y"
}
}
移除金鑰輪替原則 (透過設定空白原則來完成)
{
"lifetimeActions": [],
"attributes": {}
}
隨選輪替
設定金鑰的輪替原則之後,您也可以隨選輪替金鑰。 您必須先設定金鑰輪替原則。
Azure CLI
az keyvault key rotate --hsm-name <hsm-name> --name <key-name>