Azure Cloud HSM プレビューでは、Log Analytics ワークスペースを使用した操作イベント ログがサポートされます。 この機能により、Cloud HSM リソース全体のログの一元的な収集、分析、監視が可能になります。
操作イベント ログは、ハードウェア セキュリティ モジュール (HSM) の全体的なセキュリティにとって重要です。 すべてのアクセスと操作の透過的で不変のレコードが提供され、アカウンタビリティと追跡可能性を確保するのに役立ちます。
ユーザー アクティビティ、主要な管理アクション、システム イベントなどの詳細をキャプチャすることで、操作ログを使用すると、承認されていないアクセスの検出、セキュリティ インシデントの調査、規制要件への準拠に役立ちます。 また、潜在的な侵害や構成の誤りを示す可能性のある異常を特定する上で重要な役割を果たします。 これにより、暗号化操作の整合性と機密性を維持する組織の能力が強化されます。
このチュートリアルでは、次の操作を行います。
- ストレージ アカウントと Log Analytics ワークスペースの作成など、操作イベント ログを設定して構成します。
- 操作イベント ログにクエリを実行して、特定の HSM 操作イベントを取得します。
- HSM 操作イベントの包括的な一覧を取得します。
重要
セキュリティとプライバシーを維持するために、ログ記録では、キー ID、キー名、キー、ユーザー、セッションに関連するその他の識別可能な情報などの機密性の高い詳細が除外されます。 ログには、実行された HSM 操作、操作の時刻、および関連する HSM メタデータがキャプチャされます。
Azure Cloud HSM 操作イベント ログは、HSM 操作が成功したか失敗したかを判断できません。 操作が実行されたという事実のみをログに記録できます。 HSM 操作は内部 TLS チャネル内で行われるため、この制限はサービスのプレビュー中に存在します。これは、その境界外には公開されません。
[前提条件]
- アクティブなサブスクリプションを持つ Azure アカウント。 無料でアカウントを作成できます。
- デプロイ、初期化、および構成した Azure Cloud HSM リソース。 詳細については、 Azure Cloud HSM オンボード ガイドを参照してください。
操作イベント ログの設定と構成
次のセクションのコマンドを使用して、監視するリソースを設定します。
HSM ログを格納するストレージ アカウントを作成する
HSM ログを格納するためのストレージ アカウントを作成するには、まずリソース グループを作成する必要があります。 また、そのリソース グループ内にストレージ アカウントを作成する必要もあります。 次のコマンドを使用して、これらすべての項目を作成します。
az group create --name <ResourceGroupName> --location <RegionName>
az storage account create --name <StorageAccountName> --resource-group <ResourceGroupName> --location <RegionName> --sku Standard_LRS --kind StorageV2
Log Analytics ワークスペースを作成する
HSM ログを格納および分析するための Log Analytics ワークスペースを作成するには、次のコマンドを使用します。
az monitor log-analytics workspace create --resource-group <ResourceGroupName> --workspace-name <WorkspaceName>
Azure Monitor 用の Log Analytics ワークスペースの作成の詳細については、「 Log Analytics ワークスペースの作成」を参照してください。
Azure CLI または Azure PowerShell を使用して診断設定を有効にする
変数を設定し、コマンドを実行して Azure Cloud HSM 操作イベント ログの診断設定を有効にするには、次のコードを使用します。 SubscriptionId、ResourceGroupName、HSMName、StorageAccountName、WorkspaceNameのプレースホルダーを、実際の環境に適した値に置き換えます。
Azure CLI(Azure コマンドライン インターフェイス)
$resourceId = "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/<HSMName>"
$storageAccountId = "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<StorageAccountName>"
$workspaceId = "/subscriptions/<SubscriptionId>/resourcegroups/<ResourceGroupName>/providers/microsoft.operationalinsights/workspaces/<WorkspaceName>"
az monitor diagnostic-settings create --resource $resourceId -n "my-chsmAuditLogs" --storage-account $storageAccountId --logs "[{category:HsmServiceOperations,enabled:true}]" --workspace $workspaceId
Azure PowerShell
$resourceId = "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HardwareSecurityModules/cloudHsmClusters/<HSMName>"
$storageAccountId = "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<StorageAccountName>"
$workspaceId = "/subscriptions/<SubscriptionId>/resourcegroups/<ResourceGroupName>/providers/microsoft.operationalinsights/workspaces/<WorkspaceName>"
New-AzDiagnosticSetting -ResourceId $resourceId -Name "my-chsmAuditLogs" -StorageAccountId $storageAccountId -WorkspaceId $workspaceId -Enabled $true -Category "HsmServiceOperations"
Cloud HSM ログの構成を確認する
診断設定を作成すると、ログのフローが 1 分から 2 分で開始されます。
Log Analytics ワークスペースを使用して、Azure portal から Cloud HSM 操作イベント ログに対してクエリを実行できます。
Azure CLI と Azure PowerShell を使用して、Cloud HSM 操作イベント ログのクエリを実行することもできます。 この例では、 ResourceGroupName と WorkspaceNameを更新します。
$workspaceId = az monitor log-analytics workspace show --resource-group <ResourceGroupName> --workspace-name <WorkspaceName> --query customerId -o tsv
az monitor log-analytics query -w $workspaceId --analytics-query "CloudHsmServiceOperationAuditLogs | take 10"
登録エラー
"<Subscription> は microsoft.insights を使用するように登録されていません" というエラー メッセージが表示された場合、azure サブスクリプションは、 Microsoft.Insights リソース プロバイダーを使用するように登録されていません。 この問題を解決するには、サブスクリプションの Microsoft.Insights プロバイダーに登録する必要があります。
Azure CLI を使用して Microsoft.Insights を登録するには、次のコマンドを実行します。
az provider register --namespace Microsoft.Insights
az provider show --namespace Microsoft.Insights --query "registrationState" --output table
Azure PowerShell を使用して Microsoft.Insights を登録するには、次のコマンドを実行します。
Register-AzResourceProvider -ProviderNamespace Microsoft.Insights
Get-AzResourceProvider -ProviderNamespace Microsoft.Insights | Select-Object ProviderNamespace, > RegistrationState
コマンドを実行した後、リソース プロバイダーが登録されていることを確認します。 まだ登録している場合は、しばらく待ってからもう一度確認する必要があります。
操作イベント ログのクエリ
次のコマンドを使用して、操作ログに記録された特定の 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_VALUECN_GET_ALL_ATTRIBUTE_VALUECN_GET_ATTRIBUTE_SIZECN_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_VALUECN_GET_ALL_ATTRIBUTE_VALUECN_GET_ATTRIBUTE_SIZECN_GET_ALL_ATTRIBUTE_SIZE |
getAttribute |
オブジェクトの属性を取得します。 |
CN_TOKEN_INFO |
getHSMInfo |
HSM 情報を取得します。 |
CN_PARTITION_INFO |
getPartitionInfo |
パーティション情報を取得します。 |
| --- | getClusterInfo |
記録されません。 |
| --- | server |
記録されません。 |
バックアップと復元
| 操作名 | コマンド名 | 説明 |
|---|---|---|
/backup |
||
/restore |

