Azure Key Vault のログ記録
1 つまたは複数のキー コンテナーを作成したら、いつ、どのように、誰によってキー コンテナーがアクセスされるのかを監視するのが一般的です。 Azure Key Vault のログ記録を有効にすることで、指定した Azure Storage アカウントに情報が保存されます。 詳しい手順については、「Key Vault のログ記録を有効にする方法」を参照してください。
キー コンテナーの操作を行ってから最大 10 分後には、ログ情報にアクセスできます。 ほとんどの場合は、より早く確認できます。 ストレージ アカウントでのログの管理はお客様に委ねられます。
- ストレージ アカウントに標準的な Azure アクセス制御方法を使用し、ログにアクセスできるユーザーを制限することでログのセキュリティを保護します。
- ストレージ アカウントに保持する必要がなくなったログは削除します。
Key Vault の概要については、「Azure Key Vault とは」を参照してください。 Key Vault が使用可能な場所については、価格に関するページをご覧ください。 Azure Monitor for Key Vault の使用に関する詳細です。
Key Vault のログを解釈する
ログ記録を有効にすると、指定したストレージ アカウント用の insights-logs-auditevent という名前の新しいコンテナーが自動的に作成されます。 このストレージ アカウントを使用して複数のキー コンテナーのログを収集することができます。
個々の BLOB はテキストとして格納されます (JSON BLOB 形式)。 ログ エントリの例を見てみましょう。
{
"records":
[
{
"time": "2016-01-05T01:32:01.2691226Z",
"resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/CONTOSOGROUP/PROVIDERS/MICROSOFT.KEYVAULT/VAULTS/CONTOSOKEYVAULT",
"operationName": "VaultGet",
"operationVersion": "2015-06-01",
"category": "AuditEvent",
"resultType": "Success",
"resultSignature": "OK",
"resultDescription": "",
"durationMs": "78",
"callerIpAddress": "104.40.82.76",
"correlationId": "",
"identity": {"claim":{"http://schemas.microsoft.com/identity/claims/objectidentifier":"d9da5048-2737-4770-bd64-XXXXXXXXXXXX","http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn":"live.com#username@outlook.com","appid":"00001111-aaaa-2222-bbbb-3333cccc4444"}},
"properties": {"clientInfo":"azure-resource-manager/2.0","requestUri":"https://control-prod-wus.vaultcore.azure.net/subscriptions/361da5d4-a47a-4c79-afdd-XXXXXXXXXXXX/resourcegroups/contosoresourcegroup/providers/Microsoft.KeyVault/vaults/contosokeyvault?api-version=2015-06-01","id":"https://contosokeyvault.vault.azure.net/","httpStatusCode":200}
}
]
}
次の表にフィールド名と説明を示します。
フィールド名 | 説明 |
---|---|
time | 日付と時刻 (UTC)。 |
resourceId | Azure Resource Manager リソース ID。 Key Vault のログの場合は、常に Key Vault リソース ID となります。 |
operationName | 次の表に示すような操作の名前です。 |
operationVersion | クライアントによって要求された REST API バージョン。 |
category | 結果の種類。 Key Vault のログの場合、AuditEvent は使用可能な唯一の値です。 |
resultType | REST API 要求の結果です。 |
resultSignature | HTTP の状態です。 |
resultDescription | 結果に関する追加の説明です (使用可能な場合)。 |
durationMs | REST API 要求を処理するのにかかった時間 (ミリ秒単位) です。 時間にはネットワーク待機時間は含まれません。従って、クライアント側で測定する時間はこの時間と一致しない場合があります。 |
callerIpAddress | 要求を行ったクライアントの IP アドレスです。 |
correlationId | オプションの GUID であり、クライアント側のログとサービス側の (Key Vault) ログを対応付ける場合に渡します。 |
identity | REST API 要求に提示されたトークンからの ID です。 通常、要求が Azure PowerShell コマンドレットから送信された場合など、"ユーザー"、"サービス プリンシパル"、または "user+appId" の組み合わせです。 |
properties | 操作によって異なる情報です (operationName)。 ほとんどの場合、このフィールドには、クライアント情報 (クライアントから渡されたユーザー エージェント文字列)、正確な REST API 要求 URI、および HTTP 状態コードが含まれます。 さらに、要求 (KeyCreate や VaultGet など) を行った結果としてオブジェクトが返される場合、キーの URI (id として)、コンテナーの URI、またはシークレットの URI も含まれます。 |
operationName フィールドの値は、ObjectVerb 形式となります。 次に例を示します。
- キー コンテナーに関するすべての操作は、
Vault<action>
形式となります (VaultGet
やVaultCreate
など)。 - キーに関するすべての操作は、
Key<action>
形式となります (KeySign
やKeyList
など)。 - シークレットに関するすべての操作は、
Secret<action>
形式となります (SecretGet
やSecretListVersions
など)。
次の表に、operationName の値と、対応する REST API コマンドを示します。
操作名の表
operationName | REST API コマンド |
---|---|
認証 | Microsoft Entra エンドポイント経由で認証する |
VaultGet | キー コンテナーに関する情報を取得します |
VaultPut | キー コンテナーを作成または更新します |
VaultDelete | キー コンテナーを削除します |
VaultPatch | Key Vault を更新します |
VaultList | リソース グループ内のすべてのキー コンテナーを一覧表示します |
VaultPurge | 削除されたコンテナーを消去します |
VaultRecover | 削除されたコンテナーを復旧します |
VaultGetDeleted | 削除されたコンテナーを取得します |
VaultListDeleted | 削除されたコンテナーを一覧表示します |
VaultAccessPolicyChangedEventGridNotification | コンテナーのアクセス ポリシーの変更イベントが発行されました。 Event Grid サブスクリプションが存在するかどうかに関係なく、ログに記録されます。 |
Azure Monitor ログの使用
Azure Monitor ログの Key Vault ソリューションを使用して、Key Vault の AuditEvent
ログを調査することができます。 Azure Monitor ログでは、ログ クエリを使用してデータを分析し、必要な情報を取得します。
設定方法などの詳細については、Azure Monitor の Azure Key Vault に関するページをご覧ください。
ログを分析する方法については、Kusto ログ クエリのサンプルに関するページを参照してください
次の手順
- Key Vault のログ記録を有効にする方法
- Azure モニター
- .NET Web アプリケーションでの Azure Key Vault の使用方法に関するチュートリアルについては、「Web アプリケーションからの Azure Key Vault の使用」を参照してください。
- プログラミング リファレンスについては、「 Azure Key Vault 開発者ガイド」を参照してください。
- Azure Key Vault の Azure PowerShell 1.0 のコマンドレットの一覧については、Azure Key Vault コマンドレットに関するページを参照してください。