チュートリアル: Azure Cloud HSM の操作イベント ログの構成とクエリ

Azure Cloud HSM では、Log Analytics ワークスペースを介した操作イベント のログ記録がサポートされます。 この機能により、Cloud HSM リソース全体のログの一元的な収集、分析、監視が可能になります。

操作イベント ログは、ハードウェア セキュリティ モジュール (HSM) の全体的なセキュリティにとって重要です。 すべてのアクセスと操作の透過的で不変のレコードが提供され、アカウンタビリティと追跡可能性を確保するのに役立ちます。

ユーザー アクティビティ、主要な管理アクション、システム イベントなどの詳細をキャプチャすることで、操作ログを使用すると、承認されていないアクセスの検出、セキュリティ インシデントの調査、規制要件への準拠に役立ちます。 また、潜在的な侵害や構成の誤りを示す可能性のある異常を特定する上で重要な役割を果たします。 これにより、暗号化操作の整合性と機密性を維持する組織の能力が強化されます。

このチュートリアルでは、次の操作を行います。

  • ストレージ アカウントとLog Analytics ワークスペースの作成など、操作イベント ログを設定して構成します。
  • 操作イベント ログにクエリを実行して、特定の HSM 操作イベントを取得します。
  • HSM 操作イベントの包括的な一覧を取得します。

重要

セキュリティとプライバシーを維持するために、ログ記録では、キー ID、キー名、キー、ユーザー、セッションに関連するその他の識別可能な情報などの機密性の高い詳細が除外されます。 ログには、実行された HSM 操作、操作の時刻、および関連する HSM メタデータがキャプチャされます。

Azure Cloud HSM 操作イベント ログは、HSM 操作が成功したか失敗したかを判断できません。 操作が実行されたという事実のみをログに記録できます。

[前提条件]

操作イベント ログの設定と構成

次のセクションのコマンドを使用して、監視するリソースを設定します。

HSM ログを格納するストレージ アカウントを作成する

HSM ログを格納するためのストレージ アカウントを作成するには、まずリソース グループを作成する必要があります。 また、そのリソース グループ内にストレージ アカウントを作成する必要もあります。

az group create --name "<resource-group>" --location "<location>"

az storage account create \
  --name "<storage-account-name>" \
  --resource-group "<resource-group>" \
  --location "<location>" \
  --sku Standard_LRS \
  --kind StorageV2

Log Analytics ワークスペースを作成する

HSM ログを格納および分析するためのLog Analytics ワークスペースを作成するには、次のコマンドを使用します。

az monitor log-analytics workspace create \
  --resource-group "<resource-group>" \
  --workspace-name "<workspace-name>"

Azure Monitor用のLog Analytics ワークスペースの作成の詳細については、「Log Analytics ワークスペースの作成を参照してください。

診断設定を有効にする

Azure Cloud HSM 操作イベント ログの診断設定を有効にするには、次のコードを使用します。 プレースホルダーを環境に適した値に置き換えます。

resourceId="/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/<hsm-name>"

storageAccountId="/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>"

workspaceId="/subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/microsoft.operationalinsights/workspaces/<workspace-name>"

az monitor diagnostic-settings create \
  --resource $resourceId \
  --name "my-chsmAuditLogs" \
  --storage-account $storageAccountId \
  --workspace $workspaceId \
  --logs '[{"category":"HsmServiceOperations","enabled":true}]'

Cloud HSM ログの構成を確認する

診断設定を作成すると、ログのフローが 1 分から 2 分で開始されます。

Log Analytics ワークスペースを使用して、Azure ポータルから Cloud HSM 操作イベント ログに対してクエリを実行できます。

Azure Cloud HSM 操作イベント ログのスクリーンショット - Azure ポータル.

Azure CLIまたはAzure PowerShellを使用して、Cloud HSM 操作イベント ログのクエリを実行することもできます。

workspaceId=$(az monitor log-analytics workspace show \
  --resource-group "<resource-group>" \
  --workspace-name "<workspace-name>" \
  --query customerId --output tsv)

az monitor log-analytics query \
  --workspace $workspaceId \
  --analytics-query "CloudHsmServiceOperationAuditLogs | take 10"

コマンドライン インターフェイスのAzure Cloud HSM 操作イベント ログのスクリーンショット.

登録エラー

"microsoft.insights を使用するために <subscription> が登録されていません" というエラー メッセージが表示された場合、Azure サブスクリプションは Microsoft.Insights リソース プロバイダーを使用するように登録されていません。 この問題を解決するには、サブスクリプションの Microsoft.Insights プロバイダーに登録する必要があります。

az provider register --namespace Microsoft.Insights

az provider show --namespace Microsoft.Insights --query "registrationState" --output table

コマンドを実行した後、リソース プロバイダーが登録されていることを確認します。 まだ登録している場合は、しばらく待ってからもう一度確認する必要があります。

操作イベント ログのクエリ

次のコマンドを使用して、操作ログに記録された特定の HSM 操作イベントを取得できます。 すべての操作イベントを一覧表示するには、 CloudHsmServiceOperationAuditLogs実行します。

クエリ可能なその他の操作の詳細については、この記事で後述する 記録された操作の包括的な一覧 を参照してください。

ログインイベントとセッションイベント

// Find login and session events
CloudHsmServiceOperationAuditLogs
| where OperationName in ("CN_LOGIN", "CN_AUTHORIZE_SESSION")
| project OperationName, MemberId, CallerIpAddress, TimeGenerated

ユーザーを作成および削除するためのイベント

// Find user creation and deletion events 
CloudHsmServiceOperationAuditLogs
| where OperationName in ("CN_CREATE_USER", "CN_DELETE_USER")
| project OperationName, MemberId, CallerIpAddress, TimeGenerated

キー作成のイベント

// Find key creation events
CloudHsmServiceOperationAuditLogs
| where OperationName in ("CN_GENERATE_KEY", "CN_GENERATE_KEY_PAIR")
| project OperationName, MemberId, CallerIpAddress, TimeGenerated

キー削除のイベント

// Find key deletion events
CloudHsmServiceOperationAuditLogs
| where OperationName == "CN_TOMBSTONE_OBJECT"
| project OperationName, MemberId, CallerIpAddress, TimeGenerated

操作の用語集

HSM 操作イベントに関連する名前を次に示します。

azcloudhsm_util

操作名 コマンド名 説明
CN_LOGIN loginHSM HSM にログインします。
CN_LOGOUT logoutHSM HSM からログアウトします。
CN_GENERATE_KEY genSymKey 対称キーを生成します。
CN_GENERATE_KEY_PAIR genRSAKeyPair RSA キー ペアを生成します。
CN_GENERATE_KEY_PAIR genECCKeyPair ECC キー ペアを生成します。
CN_SHARE_OBJECT shareKey 既存のキーを他のユーザーと共有/共有解除します。
CN_TOMBSTONE_OBJECT deleteKey キーを削除します。
CN_FIND_OBJECTS_FROM_INDEX findSingleKey 1 つのキーを検索します。
CN_FIND_OBJECTS_USING_COUNT findKey キーを検索します。
CN_GET_OBJECT_INFO getKeyInfo 共有ユーザー/セッションに関する重要な情報を取得します。
HASH_SINGLE_CALL sign 署名 (ME_PKCS_PKCS1v15_CRT_ENCRYPT) を生成します。
HASH_SINGLE_CALL verify 署名 (ME_PKCS_PKCS1v15_DECRYPT) を検証します。
CN_LIST_TOKENS listTokens 現在のパーティション内のすべてのトークンを一覧表示します。
CN_GET_TOKEN getToken トークンを取得します。
CN_CREATE_USER createUser ユーザーを作成します。
CN_DELETE_USER deleteUser ユーザーを削除します。
CN_LIST_USERS listUsers ユーザーを一覧表示します。
CN_CHANGE_PSWD changePswd パスワードを変更します。
CN_MODIFY_OBJECT setAttribute オブジェクトの属性を設定します。
CN_GET_ATTRIBUTE_VALUE
CN_GET_ALL_ATTRIBUTE_VALUE
CN_GET_ATTRIBUTE_SIZE
CN_GET_ALL_ATTRIBUTE_SIZE
getAttribute オブジェクトの属性を取得します。
CN_TOKEN_INFO getHSMInfo HSM 情報を取得します。
CN_PARTITION_INFO getPartitionInfo パーティション情報を取得します。
--- getClusterInfo 記録されません。
--- server 記録されません。

azcloudhsm_mgmt

操作名 コマンド名 説明
CN_LOGIN loginHSM HSM にログインします。
CN_LOGOUT logoutHSM HSM からログアウトします。
CN_GENERATE_KEY genSymKey 対称キーを生成します。
CN_GENERATE_KEY_PAIR genRSAKeyPair RSA キー ペアを生成します。
CN_GENERATE_KEY_PAIR genECCKeyPair ECC キー ペアを生成します。
CN_SHARE_OBJECT shareKey 既存のキーを他のユーザーと共有/共有解除します。
CN_TOMBSTONE_OBJECT deleteKey キーを削除します。
CN_FIND_OBJECTS_FROM_INDEX findSingleKey 1 つのキーを検索します。
CN_FIND_OBJECTS_USING_COUNT findKey キーを検索します。
CN_GET_OBJECT_INFO getKeyInfo 共有ユーザー/セッションに関する重要な情報を取得します。
HASH_SINGLE_CALL sign 署名 (ME_PKCS_PKCS1v15_CRT_ENCRYPT) を生成します。
HASH_SINGLE_CALL verify 署名 (ME_PKCS_PKCS1v15_DECRYPT) を検証します。
CN_LIST_TOKENS listTokens 現在のパーティション内のすべてのトークンを一覧表示します。
CN_GET_TOKEN getToken トークンを取得します。
CN_CREATE_USER createUser ユーザーを作成します。
CN_DELETE_USER deleteUser ユーザーを削除します。
CN_LIST_USERS listUsers ユーザーを一覧表示します。
CN_CHANGE_PSWD changePswd パスワードを変更します。
CN_MODIFY_OBJECT setAttribute オブジェクトの属性を設定します。
CN_GET_ATTRIBUTE_VALUE
CN_GET_ALL_ATTRIBUTE_VALUE
CN_GET_ATTRIBUTE_SIZE
CN_GET_ALL_ATTRIBUTE_SIZE
getAttribute オブジェクトの属性を取得します。
CN_TOKEN_INFO getHSMInfo HSM 情報を取得します。
CN_PARTITION_INFO getPartitionInfo パーティション情報を取得します。
--- getClusterInfo 記録されません。
--- server 記録されません。

バックアップと復元

操作名 コマンド名 説明
/backup
/restore