概要
Key Vault での暗号化キーの自動ローテーションを使用すると、ユーザーは、指定された頻度で新しいキー バージョンを自動的に生成するように Key Vault を構成できます。 ローテーションを構成するには、個別のキーごとに定義できるキー ローテーション ポリシーを使用できます。
暗号化のベスト プラクティスを満たすために、少なくとも 2 年ごとに暗号化キーをローテーションすることをお勧めします。
Key Vault のオブジェクトのバージョン管理方法の詳細については、「 Key Vault オブジェクト、識別子、およびバージョン管理」を参照してください。 Azure Key Vault のさまざまな資産の種類にわたる自動ローテーションの概念の包括的な理解については、「Azure Key Vault の自動ローテーションについて」を参照してください。
Azure サービスとの統合
この機能により、カスタマー マネージド キー (CMK) が Azure Key Vault に格納された Azure サービスに対して、保存時の暗号化のエンドツーエンドのゼロタッチ ローテーションが有効になります。 Azure サービスに関する特定のドキュメントを参照して、そのサービスでエンドツーエンドのローテーションに対応しているかどうかを確認してください。
Azure のデータ暗号化の詳細については、次を参照してください。
価格設定
スケジュールされているキー ローテーションごとに追加のコストが発生します。 詳細については、Azure Key Vault の価格に関するページを参照してください
権限が必要です
Key Vault のキー ローテーション機能を使用するには、キー管理のアクセス許可が必要です。 "Key Vault Crypto Officer" ロールを割り当て、ローテーション ポリシーとオンデマンド ローテーションを管理できます。
Key Vault RBAC アクセス許可モデルを使用して Azure ロールを割り当てる方法の詳細については、「Azure RBAC を使用してキー、証明書、シークレットへのアクセスを制御する」を参照してください。
注
アクセス ポリシーのアクセス許可モデルを使用する場合は、キーのローテーション ポリシーを管理するために、"回転"、"ローテーション ポリシーの設定"、および "ローテーション ポリシーの取得" キーのアクセス許可を設定する必要があります。
キー ローテーション ポリシー
キー ローテーション ポリシーを使用すると、ユーザーはローテーション通知と Event Grid 通知を有効期限に近いスケジュールで設定できます。
キー ローテーション ポリシーの設定:
- [有効期限]: キーの有効期限。 新しくローテーションされたキーに有効期限を設定するために使用されます。 現在のキーには影響しません。
- [有効]/[無効]: キーのローテーションを有効または無効にするフラグ
- ローテーションの種類:
- [Automatically renew at a given time after creation (default)](作成後指定された時間が経過したら、自動的に更新する (既定値))
- [Automatically renew at a given time before expiry](有効期限の残りが指定された日数になったら、自動的に更新する)。 ローテーション ポリシーに [有効期限] が設定されており、キーに [有効期限日] が設定されている必要があります。
- [ローテーション時間]: キーのローテーション間隔。最小値は作成から 7 日、有効期限から 7 日です
- [通知時間]: イベント グリッド通知のキーの有効期限が近いことを知らせるイベントの間隔。 ローテーション ポリシーに [有効期限] が設定されており、キーに [有効期限日] が設定されている必要があります。
Von Bedeutung
キー ローテーションでは、新しいキー マテリアルを持つ既存のキーの新しいキー バージョンが生成されます。 ターゲット サービスでは、最新バージョンのキーに自動的に更新するために、バージョンレス キー URI を使用する必要があります。 データ暗号化ソリューションでは、サービスの中断を回避するために、バージョンありのキー URI を保存し、それと共に、暗号化/ラップ操作に使用された同じキー マテリアルを指すデータを暗号化解除/ラップ解除用として保存する必要があります。 現在、すべての Azure サービスはそのパターンに従ってデータを暗号化しています。
キー ローテーション ポリシーを構成する
キーの作成時にキーローテーション ポリシーを構成します。
既存のキーに対してローテーション ポリシーを構成します。
Azure CLI(Azure コマンドライン インターフェイス)
キー ローテーション ポリシーをファイルに保存します。 キー ローテーション ポリシーの例:
{
"lifetimeActions": [
{
"trigger": {
"timeAfterCreate": "P18M",
"timeBeforeExpiry": null
},
"action": {
"type": "Rotate"
}
},
{
"trigger": {
"timeBeforeExpiry": "P30D"
},
"action": {
"type": "Notify"
}
}
],
"attributes": {
"expiryTime": "P2Y"
}
}
Azure CLI az keyvault key rotation-policy update コマンドを使用して、以前に保存したファイルを渡すキーにローテーション ポリシーを設定します。
az keyvault key rotation-policy update --vault-name <vault-name> --name <key-name> --value </path/to/policy.json>
Azure PowerShell
Azure Powershell Set-AzKeyVaultKeyRotationPolicy コマンドレットを使用してローテーション ポリシーを設定します。
Set-AzKeyVaultKeyRotationPolicy -VaultName <vault-name> -KeyName <key-name> -ExpiresIn (New-TimeSpan -Days 720) -KeyRotationLifetimeAction @{Action="Rotate";TimeAfterCreate= (New-TimeSpan -Days 540)}
オンデマンドでのローテーション
キー ローテーションは手動で呼び出すことができます。
ポータル
ローテーションを呼び出すには、[Rotate Now](今すぐローテーション) をクリックします。
Azure CLI(Azure コマンドライン インターフェイス)
Azure CLI az keyvault key rotate コマンドを使用してキーをローテーションします。
az keyvault key rotate --vault-name <vault-name> --name <key-name>
Azure PowerShell
Azure PowerShell Invoke-AzKeyVaultKeyRotation コマンドレットを 使用します。
Invoke-AzKeyVaultKeyRotation -VaultName <vault-name> -Name <key-name>
キーの有効期限が近いことを知らせる通知を構成する
イベント グリッドのキーの有効期限が近いことを知らせるイベントの有効期限通知の構成。 ローカル HSM からキーをインポートする場合など、自動ローテーションを使用できない場合、キーの有効期限が近いことを知らせる通知を手動ローテーションのリマインダーとして、または Event Grid との統合によるカスタム自動ローテーションのトリガーとして構成できます。 有効期限の何日前、何か月前、何年前に有効期限が近いことを知らせるイベントをトリガーするかを構成できます。
Key Vault での Event Grid 通知の詳細については、「Event Grid ソースとしての Azure Key Vault」を参照してください。
ARM テンプレートを使用してキーローテーションを構成する
キー ローテーション ポリシーは、ARM テンプレートを使用して構成することもできます。
注
コントロール プレーンを使用してキーをデプロイするには、Azure RBAC で構成された Key Vault に対する "Key Vault 共同作成者" ロールが必要です。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vaultName": {
"type": "String",
"metadata": {
"description": "The name of the key vault to be created."
}
},
"keyName": {
"type": "String",
"metadata": {
"description": "The name of the key to be created."
}
},
"rotatationTimeAfterCreate": {
"defaultValue": "P18M",
"type": "String",
"metadata": {
"description": "Time duration to trigger key rotation. i.e. P30D, P1M, P2Y"
}
},
"expiryTime": {
"defaultValue": "P2Y",
"type": "String",
"metadata": {
"description": "The expiry time for new key version. i.e. P90D, P2M, P3Y"
}
},
"notifyTime": {
"defaultValue": "P30D",
"type": "String",
"metadata": {
"description": "Near expiry Event Grid notification. i.e. P30D"
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2021-06-01-preview",
"name": "[concat(parameters('vaultName'), '/', parameters('keyName'))]",
"___location": "[resourceGroup().___location]",
"properties": {
"vaultName": "[parameters('vaultName')]",
"kty": "RSA",
"rotationPolicy": {
"lifetimeActions": [
{
"trigger": {
"timeAfterCreate": "[parameters('rotatationTimeAfterCreate')]",
"timeBeforeExpiry": ""
},
"action": {
"type": "Rotate"
}
},
{
"trigger": {
"timeBeforeExpiry": "[parameters('notifyTime')]"
},
"action": {
"type": "Notify"
}
}
],
"attributes": {
"expiryTime": "[parameters('expiryTime')]"
}
}
}
}
]
}
キー ローテーション ポリシーのガバナンスを設定する
Azure Policy サービスを使用すると、キーのライフサイクルを管理し、すべてのキーが指定した日数内にローテーションするように構成されていることを確認できます。
ポリシー定義を作成して割り当てる
- Policy リソースに移動します
- Azure Policy ページの左側にある [作成] の下の [割り当て] を選択します。
- ページの上部にある [Assign policy](ポリシーを割り当てる) を選択します。 このボタンをクリックすると [ポリシーの割り当て] ページが開きます。
- 次の情報を入力します。
- ポリシーを適用するサブスクリプションとリソース グループを選択して、ポリシーのスコープを定義します。 [範囲] フィールドの 3 点ボタンをクリックして選択します。
- ポリシー定義の名前を選択します。"キーにはローテーション ポリシーが必要です。作成後、指定した日数以内にローテーションがスケジュールされていることを確認します。
- ページの上部にある [パラメーター ] タブに移動します。
- [ 回転する最大日数 ] パラメーターを目的の日数 (例: 730) に設定します。
- ポリシーの目的の効果 ([監査] または [無効]) を定義します。
- その他のフィールドに入力します。 ページの下部にある [前へ] ボタンと [次へ] ボタンをクリックしてタブ内を移動します。
- [確認と作成] を選択します
- を選択し を作成する
組み込みポリシーを割り当てると、スキャンが完了するまで最大 24 時間かかる場合があります。 スキャンが完了すると、次のようなコンプライアンス結果を確認できます。