AWS Key Management Service のログを収集する
このドキュメントでは、AWS Key Management Service(KMS)のログを Google Security Operations に取り込む方法について説明します。AWS KMS は、データの暗号化に使用する暗号鍵を作成、管理できるフルマネージド サービスです。この統合は、暗号鍵の使用状況のモニタリングと監査に役立ちます。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- AWS への特権アクセス
Amazon S3 と IAM を構成する
- バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
- バケットの名前とリージョンを保存して、後で使用できるようにします。
- IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
- 作成したユーザーを選択します。
- [セキュリティ認証情報] タブを選択します。
- [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
- [ユースケース] として [サードパーティ サービス] を選択します。
- [次へ] をクリックします。
- 省略可: 説明タグを追加します。
- [アクセスキーを作成] をクリックします。
- [CSV ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存して、後で使用できるようにします。
- [完了] をクリックします。
- [権限] タブを選択します。
- [権限ポリシー] セクションで [権限を追加] をクリックします。
- [権限を追加] を選択します。
- [ポリシーを直接アタッチする] を選択します。
- AmazonS3FullAccess ポリシーを検索して選択します。
- [次へ] をクリックします。
- [権限を追加] をクリックします。
AWS KMS 用に CloudTrail を構成する方法
- AWS Management Console にログインします。
- 検索バーに「CloudTrail」と入力し、サービスリストから CloudTrail を選択します。
- [Create trail] をクリックします。
- トレイル名を指定します(例: KMS-Activity-Trail)。
- [組織内のすべてのアカウントで有効にする] チェックボックスをオンにします。
- 前に作成した S3 バケット URI(形式は
s3://your-log-bucket-name/
にする必要があります)を入力するか、新しい S3 バケットを作成します。 - SSE-KMS が有効になっている場合は、[AWS KMS Alias] の名前を指定するか、[既存の AWS KMS Key] を選択します。
- その他の設定はデフォルトのままにします。
- [次へ] をクリックします。
- [イベントタイプ] で [管理イベント] と [データイベント] を選択します。
- [次へ] をクリックします。
- [Review and create] で設定を確認します。
- [Create trail] をクリックします。
- 省略可: 新しいバケットを作成した場合は、次の手順に進みます。
- [S3] に移動します。
- 新しく作成したログバケットを特定して選択します。
- フォルダ AWSLogs を選択します。
- [Copy S3 URI] をクリックして保存します。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [コンテンツ ハブ] > [コンテンツ パック]
[SIEM 設定] > [フィード] でフィードを設定します。
このプロダクト ファミリー内の異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。
1 つのフィードを設定する手順は次のとおりです。
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: AWS KMS Logs)。
- [ソースタイプ] として [Amazon S3] を選択します。
- [Log type] として [AWS KMS] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- リージョン: Amazon S3 バケットが配置されているリージョン。
- S3 URI: バケットの URI。
s3://your-log-bucket-name/
your-log-bucket-name
は、S3 バケットの実際の名前に置き換えます。
- URI is a: バケット構造に応じて、[ディレクトリ] または [サブディレクトリを含むディレクトリ] を選択します。
Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
アクセスキー ID: S3 バケットからの読み取り権限を持つユーザーのアクセスキー。
シークレット アクセスキー: S3 バケットからの読み取り権限を持つユーザーのシークレット キー。
Asset namespace: アセットの名前空間。
Ingestion labels: このフィードのイベントに適用されるラベル。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
Content Hub からフィードを設定する
次のフィールドに値を指定します。
- リージョン: Amazon S3 バケットが配置されているリージョン。
- S3 URI: バケットの URI。
s3://your-log-bucket-name/
your-log-bucket-name
は、S3 バケットの実際の名前に置き換えます。
- URI is a: バケット構造に応じて、[ディレクトリ] または [サブディレクトリを含むディレクトリ] を選択します。
- Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
アクセスキー ID: S3 バケットからの読み取り権限を持つユーザーのアクセスキー。
シークレット アクセスキー: S3 バケットからの読み取り権限を持つユーザーのシークレット キー。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- ソースタイプ: Google SecOps にログを収集するために使用される方法。
- Asset Namespace: フィードに関連付けられている名前空間。
- Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
data.detail.awsRegion | principal.location.country_or_region | 未加工ログの data.detail.awsRegion フィールドから直接マッピングされます。 |
data.detail.eventCategory | security_result.category_details | 未加工ログの data.detail.eventCategory フィールドから直接マッピングされます。 |
data.detail.eventName | metadata.product_event_type | 未加工ログの data.detail.eventName フィールドから直接マッピングされます。このフィールドは、eventName が「Decrypt」または「Encrypt」の場合、event_type が「USER_RESOURCE_ACCESS」、eventName が「GenerateDataKey」の場合、event_type が「USER_RESOURCE_CREATION」、それ以外の場合、event_type が「GENERIC_EVENT」となるロジックに基づいて metadata.event_type 値を決定します。 |
data.detail.requestID | additional.fields.key | 値は、パーサーコードで「requestID」にハードコードされています。 |
data.detail.requestID | additional.fields.value.string_value | 未加工ログの data.detail.requestID フィールドから直接マッピングされます。 |
data.detail.requestParameters.encryptionAlgorithm | security_result.detection_fields.key | 値は、パーサーコードで「encryptionAlgorithm」にハードコードされています。 |
data.detail.requestParameters.encryptionAlgorithm | security_result.detection_fields.value | 未加工ログの data.detail.requestParameters.encryptionAlgorithm フィールドから直接マッピングされます。 |
data.detail.resources.ARN | target.resource.id | 未加工ログの data.detail.resources.ARN フィールドから直接マッピングされます。 |
data.detail.resources.type | target.resource.resource_subtype | 未加工ログの data.detail.resources.type フィールドから直接マッピングされます。 |
data.detail.userIdentity.sessionContext.attributes.mfaAuthenticated | principal.user.attribute.labels.key | 値は、パーサーコードで「mfaAuthenticated」にハードコードされています。 |
data.detail.userIdentity.sessionContext.attributes.mfaAuthenticated | principal.user.attribute.labels.value | 未加工ログの data.detail.userIdentity.sessionContext.attributes.mfaAuthenticated フィールドから直接マッピングされます。 |
data.detail.userIdentity.sessionContext.sessionIssuer.principalId | principal.user.userid | 未加工ログの data.detail.userIdentity.sessionContext.sessionIssuer.principalId フィールドから直接マッピングされます。 |
data.detail.userIdentity.sessionContext.sessionIssuer.userName | principal.user.user_display_name | 未加工ログの data.detail.userIdentity.sessionContext.sessionIssuer.userName フィールドから直接マッピングされます。 |
data.detail.userIdentity.type | principal.user.attribute.roles.name | 未加工ログの data.detail.userIdentity.type フィールドから直接マッピングされます。 |
data.id | metadata.product_log_id | 未加工ログの data.id フィールドから直接マッピングされます。 |
data.time | metadata.event_timestamp.seconds | 未加工ログの data.time フィールドからパースされたタイムスタンプの秒単位の値。 |
なし | metadata.event_type | このフィールドは、data.detail.eventName の値に基づいてパーサー ロジックによって導出されます。eventName が「Decrypt」または「Encrypt」の場合、event_type は「USER_RESOURCE_ACCESS」です。eventName が「GenerateDataKey」の場合、event_type は「USER_RESOURCE_CREATION」です。それ以外の場合、event_type は「GENERIC_EVENT」です。 |
なし | metadata.log_type | 値は、パーサーコードで「AWS_KMS」にハードコードされています。 |
なし | metadata.product_name | 値は、パーサーコードで「AWS Key Management Service」にハードコードされています。 |
なし | metadata.vendor_name | 値は、パーサーコードで「AMAZON」にハードコードされています。 |
なし | principal.asset.attribute.cloud.environment | 値は、パーサーコードで「AMAZON_WEB_SERVICES」にハードコードされています。 |
変更点
2022-05-27
- 機能強化:
- metadata.product_name に保存されている値を「AWS Key Management Service」に変更しました。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。