1つ以上のキー保管庫を作成した後は、次に誰が、いつどのようにキー保管庫にアクセスするかを監視したくなるでしょう。 この機能の詳細については、 Azure Key Vault のログ記録に関するページを参照してください。
ログに記録される内容:
- アクセス許可、システム エラー、または不適切な要求の結果として失敗した要求を含む、認証されたすべての REST API 要求。
- キー コンテナー自体に対する操作 (作成、削除、キー コンテナーのアクセス ポリシーの設定、タグなどのキー コンテナー属性の更新など)。
- キーの保管庫内のキーとシークレットに対する操作には、以下の操作を含みます。
- これらのキーまたはシークレットの作成、変更、または削除。
- 署名、検証、暗号化、復号、キーラップと解除、シークレットの取得、キーとシークレット(およびそのバージョン)の表示。
- 認証されていない要求が 401 応答になります。 たとえば、ベアラー トークンがない要求、形式が正しくない、有効期限が切れている、トークンが無効な要求などです。
- 次の条件に関する Azure Event Grid 通知イベント: 有効期限切れ、有効期限が近い、変更されたコンテナー アクセス ポリシー (新しいバージョンのイベントはログに記録されません)。 イベントは、キー コンテナーに作成されたイベント サブスクリプションがある場合でもログに記録されます。 詳細については、 Event Grid ソースとしての Azure Key Vault に関するページを参照してください。
[前提条件]
このチュートリアルを完了するには、Azure キー コンテナーが必要です。 次のいずれかの方法を使用して、新しいキー コンテナーを作成できます。
ログの宛先も必要です。 宛先には、既存または新規の Azure ストレージ アカウントまたは Log Analytics ワークスペースを指定できます。
次のいずれかの方法を使用して、新しい Azure ストレージ アカウントを作成できます。
- Azure CLI を使用してストレージ アカウントを作成する
- Azure PowerShell を使用してストレージ アカウントを作成する
- Azure portal を使用してストレージ アカウントを作成する
次のいずれかの方法を使用して、新しい Log Analytics ワークスペースを作成できます。
- Azure CLI を使用して Log Analytics ワークスペースを作成する
- Azure PowerShell を使用して Log Analytics ワークスペースを作成する
- Azure portal で Log Analytics ワークスペースを作成する
Key Vault サブスクリプションに接続する
キー ログを設定する最初の手順は、アカウントに複数のサブスクリプションが関連付けられている場合に、キー コンテナーを含むサブスクリプションに接続することです。
Azure CLI では、 az account list コマンドを使用して、すべてのサブスクリプションを表示できます。 次に、 az account set コマンドを使用して接続します。
az account list
az account set --subscription "<subscriptionID>"
Azure PowerShell では、まず Get-AzSubscription コマンドレットを使用してサブスクリプションを一覧表示できます。 次に、Set-AzContext コマンドレットを使用して接続を行います。
Get-AzSubscription
Set-AzContext -SubscriptionId "<subscriptionID>"
リソース ID を取得する
キー コンテナーのログ記録を有効にするには、キー コンテナーと宛先 (Azure Storage または Log Analytics アカウント) のリソース ID が必要です。
キー コンテナーの名前を思い出せない場合は、Azure CLI az keyvault list コマンドまたは Azure PowerShell Get-AzKeyVault コマンドレットを使用して検索できます。
キー コンテナーの名前を使用して、そのリソース ID を見つけます。 Azure CLI では、 az keyvault show コマンドを使用します。
az keyvault show --name "<your-unique-keyvault-name>"
Azure PowerShell では、 Get-AzKeyVault コマンドレットを使用します。
Get-AzKeyVault -VaultName "<your-unique-keyvault-name>"
キー コンテナーのリソース ID は、"/subscriptions/your-subscription-ID/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/your-unique-keyvault-name" の形式です。 次の手順に注意してください。
ログ記録を有効にする
Key Vault のログ記録を有効にするには、Azure CLI、Azure PowerShell、または Azure portal を使用します。
Azure CLI (Azure のコマンド ライン インターフェース)
次のように、Azure CLI az monitor diagnostic-settings create コマンド、ストレージ アカウント ID、およびキー コンテナー リソース ID を使用します。
az monitor diagnostic-settings create --storage-account "<storage-account-id>" --resource "<key-vault-resource-id>" --name "Key vault logs" --logs '[{"category": "AuditEvent","enabled": true}]' --metrics '[{"category": "AllMetrics","enabled": true}]'
必要に応じて、ログの保持ポリシーを設定して、指定した時間が経過すると古いログが自動的に削除されるようにすることができます。 たとえば、90 日より前のログを自動的に削除するアイテム保持ポリシーを設定できます。
Azure CLI では、 az monitor diagnostic-settings update コマンドを 使用します。
az monitor diagnostic-settings update --name "Key vault retention policy" --resource "<key-vault-resource-id>" --set retentionPolicy.days=90
ログへのアクセス
Key Vault のログは、指定したストレージ アカウントの insights-logs-auditevent コンテナーにあります。 ログを表示するには、BLOB をダウンロードする必要があります。
まず、コンテナー内のすべての BLOB を一覧表示します。 Azure CLI では、 az storage blob list コマンドを使用します。
az storage blob list --account-name "<your-unique-storage-account-name>" --container-name "insights-logs-auditevent"
Azure PowerShell では、 Get-AzStorageBlob を使用します。 このコンテナー内のすべての BLOB を一覧表示するには、次のように入力します。
Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context
Azure CLI コマンドまたは Azure PowerShell コマンドレットの出力から、BLOB の名前が次の形式になっていることがわかります: resourceId=<ARM resource ID>/y=<year>/m=<month>/d=<day of month>/h=<hour>/m=<minute>/filename.json
。 日付と時刻の値は、協定世界時を使用します。
同じストレージ アカウントを使用して複数のリソースのログを収集できるため、BLOB 名の完全なリソース ID は、必要な BLOB のみにアクセスしたりダウンロードしたりするのに役立ちます。
ただし、まず、すべての BLOB をダウンロードします。 Azure CLI では、 az storage blob download コマンドを使用し、BLOB の名前と、結果を保存するファイルへのパスを渡します。
az storage blob download --container-name "insights-logs-auditevent" --file <path-to-file> --name "<blob-name>" --account-name "<your-unique-storage-account-name>"
Azure PowerShell では、 Get-AzStorageBlob コマンドレットを使用して BLOB の一覧を取得します。 次に、その一覧を Get-AzStorageBlobContent コマンドレットにパイプして、選択したパスにログをダウンロードします。
$blobs = Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context | Get-AzStorageBlobContent -Destination "<path-to-file>"
PowerShell でこの 2 番目のコマンドレットを実行すると、BLOB 名の /
区切り記号によって、移動先フォルダーの下に完全なフォルダー構造が作成されます。 この構造を使用して、BLOB をダウンロードし、ファイルとして格納します。
BLOB を選択的にダウンロードするには、ワイルドカードを使用します。 例えば次が挙げられます。
複数のキー コンテナーがあり、CONTOSOKEYVAULT3という名前の 1 つのキー コンテナーのログのみをダウンロードする場合:
Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/VAULTS/CONTOSOKEYVAULT3
複数のリソース グループがあり、1 つのリソース グループのログをダウンロードする場合は、
-Blob '*/RESOURCEGROUPS/<resource group name>/*'
を使用します。Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/RESOURCEGROUPS/CONTOSORESOURCEGROUP3/*'
2019 年 1 月のすべてのログをダウンロードする場合は、次の
-Blob '*/year=2019/m=01/*'
使用します。Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/year=2016/m=01/*'
Azure Monitor ログの使用
Azure Monitor ログの Key Vault ソリューションを使用して、Key Vault AuditEvent
ログを確認できます。 Azure Monitor ログでは、ログ クエリを使用してデータを分析し、必要な情報を取得します。 詳細については、「 Key Vault の監視」を参照してください。
次のステップ
- Key Vault ログの解釈方法など、概念的な情報については、 Key Vault のログ記録に関する説明を参照してください。
- キー コンテナーでの Azure Monitor の使用の詳細については、「 Key Vault の監視」を参照してください。