Azure Cloud HSM では、Log Analytics ワークスペースを介した操作イベント のログ記録がサポートされます。 この機能により、Cloud HSM リソース全体のログの一元的な収集、分析、監視が可能になります。
操作イベント ログは、ハードウェア セキュリティ モジュール (HSM) の全体的なセキュリティにとって重要です。 すべてのアクセスと操作の透過的で不変のレコードが提供され、アカウンタビリティと追跡可能性を確保するのに役立ちます。
ユーザー アクティビティ、主要な管理アクション、システム イベントなどの詳細をキャプチャすることで、操作ログを使用すると、承認されていないアクセスの検出、セキュリティ インシデントの調査、規制要件への準拠に役立ちます。 また、潜在的な侵害や構成の誤りを示す可能性のある異常を特定する上で重要な役割を果たします。 これにより、暗号化操作の整合性と機密性を維持する組織の能力が強化されます。
このチュートリアルでは、次の操作を行います。
- ストレージ アカウントとLog Analytics ワークスペースの作成など、操作イベント ログを設定して構成します。
- 操作イベント ログにクエリを実行して、特定の HSM 操作イベントを取得します。
- HSM 操作イベントの包括的な一覧を取得します。
重要
セキュリティとプライバシーを維持するために、ログ記録では、キー ID、キー名、キー、ユーザー、セッションに関連するその他の識別可能な情報などの機密性の高い詳細が除外されます。 ログには、実行された HSM 操作、操作の時刻、および関連する HSM メタデータがキャプチャされます。
Azure Cloud HSM 操作イベント ログは、HSM 操作が成功したか失敗したかを判断できません。 操作が実行されたという事実のみをログに記録できます。
[前提条件]
- アクティブなサブスクリプションを持つAzure アカウント。 無料でアカウントを作成できます。
- デプロイ、初期化、および構成した Azure Cloud HSM リソース。 詳細については、Azure Cloud 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 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"
登録エラー
"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_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 |