AWS Elastic MapReduce ログを収集する

以下でサポートされています。

このドキュメントでは、AWS Elastic MapReduce(EMR)ログを Google Security Operations に取り込む方法について説明します。AWS EMR は、大量のデータを迅速に処理するクラウドネイティブのビッグデータ プラットフォームです。EMR ログを Google SecOps に統合すると、クラスタ アクティビティを分析して、潜在的なセキュリティ上の脅威を検出できます。

始める前に

次の前提条件を満たしていることを確認します。

  • Google SecOps インスタンス
  • AWS への特権アクセス

Amazon S3 バケットを構成する

  1. バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
  2. 後で使用するために、バケットの名前リージョンを保存します。
  3. IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
  4. 作成した [ユーザー] を選択します。
  5. [セキュリティ認証情報] タブを選択します。
  6. [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
  7. [ユースケース] として [サードパーティ サービス] を選択します。
  8. [次へ] をクリックします。
  9. 省略可: 説明タグを追加します。
  10. [アクセスキーを作成] をクリックします。
  11. [CSV ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存し、後で使用できるようにします。
  12. [完了] をクリックします。
  13. [権限] タブを選択します。
  14. [権限ポリシー] セクションで、[権限を追加] をクリックします。
  15. [権限を追加] を選択します。
  16. [ポリシーを直接アタッチする] を選択します。
  17. AmazonS3FullAccess ポリシーと CloudWatchLogsFullAccess ポリシーを検索して選択します。
  18. [次へ] をクリックします。
  19. [権限を追加] をクリックします。

ログを転送するように AWS EMR を構成する方法

  1. AWS Management Console にログインします。
  2. 検索バーに「EMR」と入力し、サービスリストから [Amazon EMR] を選択します。
  3. [クラスタ] をクリックします。
  4. ロギングを有効にする EMR クラスタを見つけて選択します。
  5. [クラスタの詳細] ページで、[編集] をクリックします。
  6. [クラスタの編集] 画面で、[ロギング] セクションに移動します。
  7. [ロギングを有効にする] を選択します。
  8. ログが保存される S3 バケットを指定します。
  9. S3 URIs3://your-bucket-name/ の形式で指定します(これにより、すべての EMR ログがバケットのルートに保存されます)。
  10. 次のログタイプを選択します。
    • Step logs
    • Application logs
    • YARN logs
    • System logs
    • HDFS Logs(Hadoop を使用している場合)
  11. [保存] をクリックします。

フィードを設定する

Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。

  • [SIEM 設定] > [フィード]
  • [Content Hub] > [Content Packs]

[SIEM 設定] > [フィード] でフィードを設定する

このプロダクト ファミリー内で異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。

1 つのフィードを設定する手順は次のとおりです。

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで、[単一フィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: AWS EMR Logs)。
  5. [ソースタイプ] として [Amazon S3] を選択します。
  6. [ログタイプ] として [AWS EMR] を選択します。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    • リージョン: Amazon S3 バケットが配置されているリージョン。
    • S3 URI: バケット URI。
      • s3://your-log-bucket-name/
        • your-log-bucket-name は、実際の S3 バケットの名前に置き換えます。
    • URI is a: バケット構造に応じて、[ディレクトリ] または [サブディレクトリを含むディレクトリ] を選択します。
    • Source deletion options: 取り込みの設定に応じて削除オプションを選択します。

    • アクセスキー ID: S3 バケットから読み取る権限を持つユーザーのアクセスキー。

    • シークレット アクセスキー: S3 バケットから読み取る権限を持つユーザーのシークレット キー。

    • アセットの名前空間: アセットの名前空間

    • Ingestion labels: このフィードのイベントに適用されるラベル。

  9. [次へ] をクリックします。

  10. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

コンテンツ ハブからフィードを設定する

次のフィールドに値を指定します。

  • リージョン: 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 マッピング ロジック
app_id additional.fields[].key 値「APP」はパーサーによって割り当てられます
app_id additional.fields[].value.string_value 未加工ログの APP フィールドから直接マッピングされます。
app_name additional.fields[].key 値「APPNAME」はパーサーによって割り当てられます
app_name additional.fields[].value.string_value 未加工ログの APPNAME フィールドから直接マッピングされます。
blockid additional.fields[].key 値「blockid」はパーサーによって割り当てられます
blockid additional.fields[].value.string_value 未加工ログの blockid フィールドから直接マッピングされます。
bytes network.received_bytes 未加工ログの bytes フィールドから直接マッピングされ、符号なし整数に変換されます。
cliID additional.fields[].key 値「cliID」はパーサーによって割り当てられます
cliID additional.fields[].value.string_value 未加工ログの cliID フィールドから直接マッピングされます。
cmd target.process.command_line 未加工ログの cmd フィールドから直接マッピングされます。
comp_name additional.fields[].key 値「COMP」はパーサーによって割り当てられます
comp_name additional.fields[].value.string_value 未加工ログの COMP フィールドから直接マッピングされます。
configuration_version additional.fields[].key 値「configuration_version」はパーサーによって割り当てられます
configuration_version additional.fields[].value.string_value 未加工ログの configuration_version フィールドから直接マッピングされ、文字列に変換されます。
containerID additional.fields[].key 値「containerID」はパーサーによって割り当てられます
containerID additional.fields[].value.string_value 未加工ログの CONTAINERID フィールドから直接マッピングされます。
description security_result.description 未加工ログの description フィールドから直接マッピングされます。
dfs.FSNamesystem.* additional.fields[].key キーは、「dfs.FSNamesystem.」と JSON データのキーを連結して生成されます。
dfs.FSNamesystem.* additional.fields[].value.string_value 値は dfs.FSNamesystem JSON オブジェクトの対応する値から直接マッピングされ、文字列に変換されます。
duration additional.fields[].key 値「duration」はパーサーによって割り当てられます
duration additional.fields[].value.string_value 未加工ログの duration フィールドから直接マッピングされます。
duration network.session_duration.seconds 未加工ログの duration フィールドから直接マッピングされ、整数に変換されます。
environment additional.fields[].key 値「environment」はパーサーによって割り当てられます
environment additional.fields[].value.string_value 未加工ログの environment フィールドから直接マッピングされます。Grok と文字列操作を使用して ip_port フィールドから抽出されます。grok と文字列操作を使用して ip_port フィールドから抽出され、整数に変換されます。
event_type metadata.event_type principaltarget の情報の有無に基づいてパーサー ロジックによって決定されます。NETWORK_CONNECTIONUSER_RESOURCE_ACCESSSTATUS_UPDATEGENERIC_EVENT のいずれかです。
file_path target.file.full_path 未加工ログの file_path フィールドから直接マッピングされます。
host principal.hostname 未加工ログの host フィールドから直接マッピングされます。
host target.hostname 未加工ログの host フィールドから直接マッピングされます。
host_ip principal.ip 未加工ログの host_ip フィールドから直接マッピングされます。
host_port principal.port 未加工ログの host_port フィールドから直接マッピングされ、整数に変換されます。
http_url target.url 未加工ログの http_url フィールドから直接マッピングされます。
index additional.fields[].key 値「index」はパーサーによって割り当てられます
index additional.fields[].value.string_value 未加工ログの index フィールドから直接マッピングされます。
kind metadata.product_event_type 未加工ログの kind フィールドから直接マッピングされます。値「AWS_EMR」はパーサーによって割り当てられます。値「AWS EMR」はパーサーによって割り当てられます。値「AMAZON」はパーサーによって割り当てられます。
offset additional.fields[].key 値「offset」はパーサーによって割り当てられます
offset additional.fields[].value.string_value 未加工ログの offset フィールドから直接マッピングされます。
op metadata.product_event_type 未加工ログの op フィールドまたは OPERATION フィールドから直接マッピングされます。
proto network.application_protocol grok を使用して http_url フィールドから抽出され、大文字に変換されます。
puppet_version additional.fields[].key 値「puppet_version」はパーサーによって割り当てられます
puppet_version additional.fields[].value.string_value 未加工ログの puppet_version フィールドから直接マッピングされます。
queue_name additional.fields[].key 値「queue_name」はパーサーによって割り当てられます
queue_name additional.fields[].value.string_value 未加工ログの queue_name フィールドから直接マッピングされます。
report_format additional.fields[].key 値「report_format」はパーサーによって割り当てられます
report_format additional.fields[].value.string_value 未加工ログの report_format フィールドから直接マッピングされ、文字列に変換されます。
resource additional.fields[].key 値「resource」はパーサーによって割り当てられます
resource additional.fields[].value.string_value 未加工ログの resource フィールドから直接マッピングされます。
result security_result.action_details 未加工ログの RESULT フィールドから直接マッピングされます。
security_id additional.fields[].key 値「security_id」はパーサーによって割り当てられます
security_id additional.fields[].value.string_value 未加工ログの security_id フィールドから直接マッピングされます。
severity security_result.severity 未加工ログの severity フィールドからマッピングされます。INFOINFORMATIONAL にマッピングされ、WARNMEDIUM にマッピングされます。
srvID additional.fields[].key 値「srvID」はパーサーによって割り当てられます
srvID additional.fields[].value.string_value 未加工ログの srvID フィールドから直接マッピングされます。
status additional.fields[].key 値「status」はパーサーによって割り当てられます
status additional.fields[].value.string_value 未加工ログの status フィールドから直接マッピングされます。
summary security_result.summary 未加工ログの summary フィールドから直接マッピングされます。
target_app target.application 未加工ログの TARGET フィールドから直接マッピングされます。
target_ip target.ip 未加工ログの target_ip フィールドまたは IP フィールドから直接マッピングされます。
target_port target.port 未加工ログの target_port フィールドから直接マッピングされ、整数に変換されます。
timestamp metadata.event_timestamp 未加工ログの timestamp フィールドから直接マッピングされ、ISO8601 タイムスタンプとして解析されます。
timestamp event.timestamp 未加工ログの timestamp フィールドから直接マッピングされ、ISO8601 タイムスタンプとして解析されます。
trade_date additional.fields[].key 値「trade_date」はパーサーによって割り当てられます
trade_date additional.fields[].value.string_value 未加工ログの trade_date フィールドから直接マッピングされます。
transaction_uuid additional.fields[].key 値「transaction_uuid」はパーサーによって割り当てられます
transaction_uuid additional.fields[].value.string_value 未加工ログの transaction_uuid フィールドから直接マッピングされます。
type additional.fields[].key 値「type」はパーサーによって割り当てられます
type additional.fields[].value.string_value 未加工ログの type フィールドから直接マッピングされます。
user target.user.userid 未加工ログの USER フィールドまたは ugi フィールドから直接マッピングされます。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。