以下の内容はhttps://blog.g-gen.co.jp/entry/aws-logs-into-google-secops-by-keyless-federationより取得しました。


Google SecOpsとAWSのログ連携をキーレス認証で実現する

記事タイトルとURLをコピーする

G-gen の武井です。当記事では、Google が提供する SIEM/SOAR 製品である Google SecOps と AWS のログ連携をキーレス認証で実現する方法について解説します。

前提知識

Google SecOps

Google Security Operations(以下 Google SecOps、旧称 Chronicle)は、Google Cloud が提供する統合セキュリティ運用プラットフォームです。

SIEM、SOAR、脅威インテリジェンス、Gemini を利用した AI による運用支援を提供します。これらにより、脅威の検知・調査・対応を一元的に行えます。結果として、セキュリティ運用の効率化と高度化を実現できます。

詳細は、以下の記事をご参照ください。

blog.g-gen.co.jp

データフィード

Google SecOps では、AWS、Azure、その他 SaaS など、Google Cloud 以外の環境のログデータを取り込む仕組みとしてデータフィード機能があります。

SecOps UI もしくは Feed Management API を用いて、ログソース(Amazon S3、Cloud Storage、Pub/Sub、Webhook など)を指定し、各種ログを SecOps に取り込む設定を行います。

ソースタイプ 概要
ストレージ Google Cloud、AWS、Azure のクラウドストレージバケットに保存されたログデータを定期的に取得
Amazon SQS S3 バケットの通知をキュー経由で受信し、ログデータを取得(リアルタイムかつ安定的に取り込み)
ストリーミング Amazon Data Firehose、Cloud Pub/Sub、Webhook などを経由し、SIEM の HTTPS エンドポイントにログデータをストリーミングでプッシュ
サードパーティ API CrowdStrike、SentinelOne、Palo Alto など、外部 SaaS から API 経由でログデータを取得

キーレス認証

データフィードで AWS のログを取り込む際のデータソースに Amazon S3 や SQS を選択した場合、従来はアクセスキーシークレットアクセスキーが必要でした。

しかし2025年5月26日のアップデートにより、AWS IAM Role for Identity Federation を選択することでキーレス認証(キーを使用しない認証)が可能となりました。

従来のキー認証方式(データフィードの設定画面より)

キーレス認証方式(データフィードの設定画面より)

これは、Google SecOps と AWS の間に信頼関係(ID フェデレーション)を結ぶことで、固定のアクセスキーを使わずに認証を行う仕組みです。

Google SecOps が発行する OIDC トークンを AWS に提示し、AWS Security Token Service(STS)の AssumeRoleWithWebIdentity という API を介して一時的なアクセス権限を取得しています。

キーの流出リスクを根本的に排除でき、管理の手間も削減できるため、一般的にはよりセキュアな認証方式といえます。

過去記事との相違

当記事では以下の構成のもと、S3 バケットに格納した CloudTrail ログを、データフィード機能を使って Google SecOps に取り込みます。

以下の記事でも同様の構成でログ取り込み検証を行っていますので、当記事ではキーレス認証への変更点のみ詳しく解説します。

# 設定項目 設定箇所 過去記事との手順差異
1 S3 バケットの設定 AWS なし
2 SQS の設定 AWS なし
3 SQS アクセスポリシーの設定 AWS なし
4 S3 イベント通知の設定 AWS なし
5 CloudTrail の設定 AWS なし
6 IAM の設定 AWS あり
7 データフィードの設定 Google SecOps あり

blog.g-gen.co.jp

AWS の設定

カスタム IAM ロール

キー認証方式ではキーを発行したマシンアカウントに紐づけていた許可ポリシーをカスタム IAM ロールに紐づけます。

そのため、今回の例ではSecOpsFederationRoleという名前で新規作成します。

# 設定項目 設定値
1 信頼されたエンティティタイプ ウェブアイデンティティ
2 アイデンティティプロバイダー Google
3 Audience サブジェクト ID

なおサブジェクト ID はデータフィードの設定画面から取得可能で、後述する信頼ポリシーや ID プロバイダーの設定でも使用します。

データフィードの設定画面からサブジェクトIDを取得

次に、S3 と SQS に関する最小権限をもつ許可ポリシー(今回の例ではsecops-s3-access)をロールに紐づけます。

# secops-s3-access
  
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ListAllowedBuckets",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": [
                "arn:aws:s3:::yutakei-secops-cloudtrail-test"
            ]
        },
        {
            "Sid": "ReadObjectsFromAllowedBuckets",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::yutakei-secops-cloudtrail-test/*"
            ]
        },
        {
            "Sid": "ReadFromSQSForCloudTrailFeed",
            "Effect": "Allow",
            "Action": [
                "sqs:ReceiveMessage",
                "sqs:DeleteMessage",
                "sqs:GetQueueAttributes",
                "sqs:GetQueueUrl"
            ],
            "Resource": [
                "arn:aws:sqs:ap-northeast-1:945008193730:yutakei-secops-cloudtrail-queue"
            ]
        }
    ]
}

カスタム IAM ロール(信頼ポリシー)

ロールを作成後、Google SecOps が OIDC トークンを用いてこのロールを一時的に引き受けられるようにするため(Assume Role するため)、信頼ポリシーを以下のように定義します。

Principal には OIDC プロバイダGoogle)を、Condition 句には サブジェクト IDaccounts.google.com:sub)を明示することで、指定した SecOps インスタンスのアクセスのみを許可します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::945008193730:oidc-provider/accounts.google.com"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "accounts.google.com:sub": "1234567890987654321"
                }
            }
        }
    ]
}

ID プロバイダー

IAM ロールの設定に加え、AWS アカウント全体の設定として ID プロバイダー(OIDC プロバイダー)の設定が必要です。

Google の認証基盤(https://accounts.google.com)を信頼済みプロバイダーとして登録し、Google SecOps のサブジェクト ID を追加します。

これにより、Google SecOps が発行するトークンを、AWS 側が正当なリクエストとして受け入れられるようになります。

# 設定項目 設定値
1 プロバイダのタイプ OpenID Connect
2 プロバイダの URL https://accounts.google.com
3 対象者 サブジェクト ID

データフィードの設定

認証方式をキーレス認証(AWS IAM Role for Identity Federation)に変更し、先ほど作成したロール ARN を入力し変更を反映させます。(サブジェクト ID は自動入力されます)

これによりキー認証によるログ取り込みからキーレス認証のログ取り込みに切り替わります。

なお、前述の ID プロバイダーの設定が未完了の場合、以下のようにエラーが発生します。

ID プロバイダー未設定による設定エラー

動作確認

キーレス認証に切り替えた後も問題なくログが取り込めていることを確認できました。

関連記事

blog.g-gen.co.jp

武井 祐介 (記事一覧)

クラウドソリューション部クラウドエンジニアリング課。

Google Cloud Partner Top Engineer 2026 選出。




以上の内容はhttps://blog.g-gen.co.jp/entry/aws-logs-into-google-secops-by-keyless-federationより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14