Managed HSM のログ

1 つまたは複数のマネージド HSM の作成後、いつ、どのように、だれによって HSM がアクセスされるかを監視することがあります。 そうするには、ログを有効にします。これにより、指定した Azure ストレージ アカウントに情報が保存されます。 指定したストレージ アカウント用の insights-logs-auditevent という名前の新しいコンテナーが自動的に作成されます。 この同じストレージ アカウントを使用して、複数のマネージド HSM のログを収集することができます。

マネージド HSM の操作を行ってから最大 10 分後には、ログ情報にアクセスできます。 ほとんどの場合は、これよりも早く確認できます。 ストレージ アカウントでのログの管理はお客様に委ねられます。

  • 標準的な Azure アクセス制御メソッドを使用してアクセスできるユーザーを制限することで、ログをセキュリティで保護します。
  • ストレージ アカウントに保持する必要がなくなったログは削除します。

このチュートリアルを使用すると、Managed HSM のログを簡単に開始できます。 ストレージ アカウントを作成し、ログを有効にしてから、収集されたログ情報を解釈します。

Note

マネージド HSM またはキーの作成方法については、このチュートリアルに含まれていません。 この記事では、Azure CLI を使用して診断ログを更新する方法を説明します。

前提条件

この記事の手順を完了するには、次のものが必要です。

Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、以下のようにします。

オプション 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Azure Cloud Shell の [使ってみる] の例を示すスクリーンショット。
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Azure Cloud Shell を起動するボタン。
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Azure portal の [Cloud Shell] ボタンを示すスクリーンショット

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. Enter キーを選択して、コードまたはコマンドを実行します。

Azure サブスクリプションへの接続

キーのログの最初の設定手順は、ログを記録したいマネージド HSM に Azure CLI をポイントすることです。

az login

CLI を使用したログイン オプションの詳細については、「Azure CLI を使用してサインインする」を参照してください

マネージド HSM を作成するときに使用したサブスクリプションを指定することが必要な場合があります。 アカウントのサブスクリプションを確認するには、次のコマンドを入力します。

マネージド HSM およびストレージ アカウントを特定する

hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name ContosoMHSMLogs --query id -o tsv)

ログの有効化

Managed HSM のログを有効にするために、az monitor diagnostic-settings create コマンドを使用します。その際、新しいストレージ アカウントとマネージド HSM 用に作成した変数も使用します。 また、 -Enabled フラグを $true に設定し、カテゴリを AuditEvent (Managed HSM ログの唯一のカテゴリ) に設定します。

この出力を見れば、自分のマネージド HSM に対してログが有効になっていることと、ストレージ アカウントに情報が保存されることを確認できます。

必要に応じて、ログのアイテム保持ポリシーを、古いログが自動的に削除されるように設定することができます。 たとえば、 -RetentionEnabled フラグを $true に設定し、 -RetentionInDays パラメーターを 90 に設定した保持ポリシーを設定すると、90 日より前のログが自動的に削除されます。

az monitor diagnostic-settings create --name ContosoMHSM-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource

ログ記録の内容:

  • 認証されたすべての REST API 要求。これには、アクセス許可がないため、システム エラーのため、ファイアウォール ブロックのため、または不正な要求の結果として、失敗した要求が含まれます。
  • マネージド HSM リソース自体に対するマネージド プレーン操作。これには、タグなどの属性の作成、削除、および更新が含まれます。
  • 初期化とダウンロード、復旧の初期化、アップロードなど、セキュリティ ドメイン関連の操作
  • HSM の完全なバックアップと復元、および選択的復元の操作
  • ロールの割り当ての作成、表示、削除、およびカスタム ロール定義の作成、表示、削除などのロール管理操作
  • 以下のような、キーに対する操作
    • キーの作成、変更、または削除。
    • 署名、確認、暗号化、復号化、キーのラップとラップ解除、キーの一覧表示。
    • キーのバックアップ、復元、消去
    • キー リリース
  • 404 応答が返される無効なパス。

ログへのアクセス

Managed HSM ログは、自分が指定したストレージ アカウントの insights-logs-auditevent コンテナーに格納されます。 ログを表示するには、BLOB をダウンロードする必要があります。 Azure Storage の詳細については、「Azure CLI を使用して BLOB を作成、ダウンロード、一覧表示する」を参照してください。

個々の BLOB はテキストとして格納されます (JSON 形式)。 ログ エントリの例を見てみましょう。 次の例は、完全バックアップを作成する要求がマネージド HSM に送信されるときのログ エントリを示しています。

[
  {
    "TenantId": "766eaf62-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "time": "2020-08-31T19:52:39.763Z",
    "resourceId": "/SUBSCRIPTIONS/A1BA9AAA-xxxx-xxxx-xxxx-xxxxxxxxxxxx/RESOURCEGROUPS/CONTOSORESOURCEGROUP/PROVIDERS/MICROSOFT.KEYVAULT/MANAGEDHSMS/CONTOSOMHSM",
    "operationName": "BackupCreate",
    "operationVersion": "7.0",
    "category": "AuditEvent",
    "resultType": "Success",
    "properties": {
        "PoolType": "M-HSM",
        "sku_Family": "B",
        "sku_Name": "Standard_B1"
    },
    "durationMs": 488,
    "callerIpAddress": "X.X.X.X",
    "identity": "{\"claim\":{\"appid\":\"04b07795-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\"http_schemas_microsoft_com_identity\":{\"claims\":{\"objectidentifier\":\"b1c52bf0-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"}},\"http_schemas_xmlsoap_org_ws_2005_05_identity\":{\"claims\":{\"upn\":\"admin@contoso.com\"}}}}",
    "clientInfo": "azsdk-python-core/1.7.0 Python/3.8.2 (Linux-4.19.84-microsoft-standard-x86_64-with-glibc2.29) azsdk-python-azure-keyvault/7.2",
    "correlationId": "8806614c-ebc3-11ea-9e9b-00155db778ad",
    "subnetId": "(unknown)",
    "httpStatusCode": 202,
    "PoolName": "mhsmdemo",
    "requestUri": "https://ContosoMHSM.managedhsm.azure.net/backup",
    "resourceGroup": "ContosoResourceGroup",
    "resourceProvider": "MICROSOFT.KEYVAULT",
    "resource": "ContosoMHSM",
    "resourceType": "managedHSMs"
  }
]

次のステップ