Azure Managed HSM でキーの自動ローテーションを構成する
概要
注意
キーの自動ローテーションには、Azure CLI バージョン 2.42.0 以降が必要です。
Managed HSM の自動キー ローテーションを使用すると、ユーザーは Managed HSM を構成して、指定した頻度で新しいキー バージョンを自動的に生成できます。 ローテーション ポリシーを設定して、個々のキーのローテーションを構成し、必要に応じて必要に応じてキーをローテーションできます。 暗号化のベスト プラクティスを満たすために、少なくとも 2 年ごとに暗号化キーをローテーションすることをお勧めします。 その他のガイダンスとレコメンデーションについては、 NIST SP 800-57 パート 1 を参照してください。
この機能により、カスタマー マネージド キー (CMK) が Azure Managed HSM に格納された Azure サービスに対して、保存時の暗号化のエンドツーエンドのゼロタッチ ローテーションが有効になります。 Azure サービスに関する特定のドキュメントを参照して、そのサービスでエンドツーエンドのローテーションに対応しているかどうかを確認してください。
価格
マネージド HSM キーのローテーションは、追加料金なしで提供されます。 Managed HSM の価格の詳細については、「Azure Key Vault の価格」ページを参照してください
警告
マネージド HSM には、キーあたり 100 バージョンの制限があります。 自動ローテーションまたは手動ローテーションの一部として作成されたキー バージョンは、この制限に対してカウントされます。
必要なアクセス許可
キーのローテーションまたはキー ローテーション ポリシーの設定には、特定のキー管理アクセス許可が必要です。 "Managed HSM Crypto User" ロールを割り当てて、ローテーション ポリシーとオンデマンド ローテーションを管理するための十分なアクセス許可を取得できます。
Managed HSM でローカル RBAC アクセス許可を構成する方法の詳細については、「Managed HSM ロール管理」を参照してください
Note
ローテーション ポリシーを設定するには、"キーの書き込み" アクセス許可が必要です。 キーをオンデマンドでローテーションするには、"ローテーション" 権限が必要です。 どちらも "Managed HSM Crypto User" 組み込みロールに含まれています
キー ローテーション ポリシー
キー ローテーション ポリシーを使用すると、ユーザーはローテーション サイクル間隔を構成し、ローテーconfigureションされたキーの有効期限サイクル間隔を設定できます。 キーをオンデマンドでローテーションするには、その前に設定する必要があります。
Note
Managed HSM は Event Grid 通知をサポートしていません
キー ローテーション ポリシーの設定:
- 有効期限: キーの有効期限サイクル間隔 (最小 28 日)。 新しくローテーションされたキーに有効期限を設定するために使用されます (たとえば、ローテーション後、新しいキーは 30 日以内に期限切れに設定されます)。
- ローテーションの種類:
- Automatically renew at a given time after creation(作成後指定された時間が経過したら、自動的に更新する)
- [Automatically renew at a given time before expiry](有効期限の残りが指定された日数になったら、自動的に更新する)。 このイベントを発生させるには、キーに '有効期限' を設定する必要があります。
警告
自動ローテーション ポリシーでは、28 日に 1 回より頻繁に新しいキー バージョンを作成するように要求することはできません。 作成ベースのローテーション ポリシーの場合、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 か月後にキーをローテーションし、新しいキーを 2 年後に期限切れに設定します。
{
"lifetimeActions": [
{
"trigger": {
"timeAfterCreate": "P18M",
"timeBeforeExpiry": null
},
"action": {
"type": "Rotate"
}
}
],
"attributes": {
"expiryTime": "P2Y"
}
}
有効期限の 28 日前にキーをローテーションし、新しいキーを 1 年後に期限切れに設定します。
{
"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>