リモート エージェント認証インフラストラクチャを移行する
このドキュメントでは、 Google Cloud サービス アカウントを使用してリモート エージェント インフラストラクチャを移行する方法について説明します。今回の移行は認証インフラストラクチャのみを対象としています。リモート エージェントのインスタンスやホストを移行または交換する必要はありません。
始める前に
以下のものが揃っていることを確認してください。
- Google Cloudでサービス アカウントを作成するために必要な権限。
- サービス アカウント キーの作成に必要なロール。
- リモート エージェントの最小要件はバージョン 2.6.2 以降です。
ネットワークと Private Service Connect の要件
認証インフラストラクチャを移行すると、リモート エージェントは以前の *.siemplify-soar.com エンドポイントではなく、標準の Google API を介して Chronicle API と通信します。
アウトバウンド エンドポイントの許可リスト
ファイアウォールで、リモート エージェント ホストから次のエンドポイントへの TCP ポート 443 でのアウトバウンド HTTPS トラフィックが許可されていることを確認します。
- Google Security Operations Chronicle API のロケーション エンドポイント(
<var>REGION</var>-chronicle.googleapis.com、ONE_PLATFORM_URL_DOMAINで構成、asia-southeast1-chronicle.googleapis.comなど)とテナント パブリッシャーのホスト名(SERVER_API_ROOT)へのアウトバウンド HTTPS トラフィックを許可します。 - Google Cloud 認証エンドポイントへのアウトバウンド HTTPS トラフィックを許可します。
oauth2.googleapis.com(サービス アカウント トークン交換用)、sts.googleapis.com、iamcredentials.googleapis.com(Workload Identity 連携を使用したキーレス認証用)。 - Podman または Docker のデプロイに使用されるコンテナ レジストリ(
*.pkg.dev(us-docker.pkg.devを含む)、Artifact Registry のgcr.io、docker.ioなど)へのアウトバウンド HTTPS トラフィックを許可します。
詳細については、ネットワークとファイアウォールの要件をご覧ください。
Private Service Connect の構成
リモート エージェントが Google API にプライベートに接続する場合(オンプレミス ネットワーク、Amazon Web Services(AWS)、Microsoft Azure から Cloud Interconnect または Cloud VPN 経由で接続する場合など)、次の構成を完了します。
- Virtual Private Cloud に Google API 用の Private Service Connect エンドポイント(
all-apisバンドルまたはvpc-scバンドルを使用)を作成します。手順については、Google API 用の Private Service Connect を構成するをご覧ください。 - 必要なエンドポイントが Private Service Connect エンドポイントの IP アドレスに解決されるように、プライベート DNS を構成します。 Google Cloudで、
googleapis.comの Cloud DNS 限定公開ゾーンを構成します。Google Cloudの外部では、条件付き DNS 転送またはプライベート ホストゾーン(AWS Route 53 など)を使用します。 - すべてのリモート エージェントの移行が完了するまで、以前の SOAR Private Service Connect 接続(
<var>TENANT</var>.siemplify-soar.comのプロデューサー サービス アタッチメント)を有効なままにします。
サービス アカウントを作成する
サービス アカウントは、アプリケーションが承認済みの API 呼び出しを行うために使用する特別なタイプの Google アカウントです。
サービス アカウントを作成するには、次の操作を行います。
- Google Cloud コンソールで、[サービス アカウント] ページに移動します。 [サービス アカウント] に移動
- [サービス アカウントを作成] をクリックします。
- [サービス アカウントの詳細] セクションで、次の操作を行います。
- サービス アカウントの名前を入力します。
- サービス アカウントの説明を入力します。
- [作成して続行] をクリックします。
- [権限] セクションで、次の操作を行います。
- [ロールを選択] リストで、[Chronicle SOAR リモート エージェント] ロールを選択します。
- [続行] をクリックします。
- [ユーザーにこのサービス アカウントへのアクセスを許可] セクションで、[完了] をクリックします。
サービス アカウント キーを作成する
リモート エージェントを認証するには、サービス アカウント キーが必要です。この鍵を作成する手順は次のとおりです。
- Google Cloud コンソールで、[サービス アカウント] ページに移動します。 [サービス アカウント] に移動
- 作成したサービス アカウントの名前をクリックします。
- [キー] タブをクリックします。
- [鍵を追加] > [新しい鍵を作成] の順にクリックします。
- 鍵のタイプとして [JSON] を選択し、[作成] をクリックします。
A JSON file containing the key is downloaded to your computer. - [閉じる] をクリックします。
鍵ファイルを安全に保管する
サービス アカウント キーをダウンロードしたら、リモート エージェントが実行されるホストマシンに移動する必要があります。
Podman
- ダウンロードした JSON ファイルをパソコンで見つけます。
- エージェント プロセスがアクセスできるホストマシン上の安全な場所にファイルを保存します。
-
ホストマシン上のエージェントのサービス アカウント キーのフルパスを入力します。
AGENT_SERVICE_ACCOUNT_PATH
Docker
- ダウンロードした JSON ファイルをパソコンで見つけます。
- エージェント プロセスがアクセスできるホストマシン上の安全な場所にファイルを保存します。
-
ホストマシン上のエージェントのサービス アカウント キーのフルパスを入力します。
AGENT_SERVICE_ACCOUNT_PATH
インストーラ
- ダウンロードした JSON ファイルをパソコンで見つけます。
- ファイルを次の場所に保存します。
AGENT_SERVICE_ACCOUNT_PATH
- このファイルのフルパスは、リモート エージェントを構成するときに必要になるため、メモしておきます。
リモート エージェントのサービス アカウントをマッピングする
リモート エージェントのサービス アカウントを作成したら、プラットフォーム内でサービス アカウントを認可して、Google SecOps と正常に通信できるようにする必要があります。
Google SecOps へのサービス アカウント アクセスまたは Workload Identity 連携アクセスを付与するには、ID をプラットフォームのアクセス制御パラメータにマッピングする必要があります。このマッピングは、自動タスクや API オペレーションの実行に必要な SOC ロールと環境へのアクセス権を ID に付与するために必要なステップです。
- [設定] > [アクセス管理] > [グループ マッピング] に移動します。
- [追加] 追加 をクリックします。
[マッピングを追加] ダイアログのフィールドに値を入力して、ID をプラットフォームのアクセス制御パラメータにマッピングします。
- [IdP / ユーザー グループ] フィールドに、次のいずれかを入力します。
- Cloud Identity を使用して ID が設定されている場合は、サービス アカウントの完全なメールアドレス。
- Workload Identity プリンシパル文字列(Workforce Identity 連携を使用して ID が設定されている場合)。
次のアクセス制御フィールドを構成します。
フィールド 説明 権限グループ 権限グループを選択して、ID がアクセスできるモジュールとサブモジュールを定義します。 SOC ロール SOC ロールを選択して、ID のロール(Tier 1 など)を定義します。 環境 ID がアクセスできる環境または環境グループ([すべての環境] など)を選択します。 グループ メンバー 必要に応じて、必要なユーザーのメールアドレスを入力します。メールアドレスを追加するごとに Enter キーを押します。 制限される操作 制限付きアクションを選択して、モジュール内の特定の操作を制限します。
- [IdP / ユーザー グループ] フィールドに、次のいずれかを入力します。
[追加] をクリックします。
Google Cloudへのリモート エージェント認証を構成する
Podman
新しいエージェントをデプロイする場合は、Podman を使用してエージェントをデプロイするをご覧ください。
エージェントをアップグレードする場合は、Podman を使用してエージェントをアップグレードするをご覧ください。
Docker
新しいエージェントをデプロイする場合は、Docker を使用してエージェントをデプロイするをご覧ください。
エージェントをアップグレードする場合は、Docker を使用してエージェントをアップグレードするをご覧ください。
インストーラ
新しいエージェントをデプロイする場合は、CentOS でエージェントをデプロイする または RHEL でエージェントをデプロイするをご覧ください。
エージェントをアップグレードする場合は、CentOS でエージェントをアップグレードするまたは RHEL でエージェントをアップグレードする をご覧ください。
既存のエージェントの環境変数を移行する
[SOAR Settings] > [Advanced] > [Remote Agents] に移動し、必要なリモート エージェントの [View More] をクリックします。
[Docker コマンド] フィールドから次の値をコピーして、次のコマンドに貼り付けます。
これらは移行手順で使用します。
-
ONE PLATFORM URL DOMAINONE_PLATFORM_URL_DOMAIN
-
ONE PLATFORM URL PROJECTONE_PLATFORM_URL_PROJECT
-
ONE PLATFORM URL LOCATIONONE_PLATFORM_URL_LOCATION
-
ONE PLATFORM URL INSTANCEONE_PLATFORM_URL_INSTANCE
Podman
リモート エージェントの環境変数を移行する手順は次のとおりです。
-
実行中の Podman コンテナを一覧表示します。
podman ps -
エージェントのコンテナ ID を入力します。
CONTAINER_ID
-
前の手順の次の環境変数を貼り付けて、このコマンドを実行します。
podman exec CONTAINER_ID sh -c 'printf "export ONE_PLATFORM_URL_DOMAIN=ONE_PLATFORM_URL_DOMAIN\nexport ONE_PLATFORM_URL_PROJECT=ONE_PLATFORM_URL_PROJECT\nexport ONE_PLATFORM_URL_LOCATION=ONE_PLATFORM_URL_LOCATION\nexport ONE_PLATFORM_URL_INSTANCE=ONE_PLATFORM_URL_INSTANCE\nexport GOOGLE_APPLICATION_CREDENTIALS=/opt/SiemplifyAgent/agent-key.json" >> /home/siemplify_agent/.bash_profile'
Docker
リモート エージェントの環境変数を移行する手順は次のとおりです。
-
実行中の Docker コンテナを一覧表示します。
docker ps -
エージェントのコンテナ ID を入力します。
CONTAINER_ID
-
前の手順の次の環境変数を貼り付けて、このコマンドを実行します。
docker exec CONTAINER_ID sh -c 'printf "export ONE_PLATFORM_URL_DOMAIN=ONE_PLATFORM_URL_DOMAIN\nexport ONE_PLATFORM_URL_PROJECT=ONE_PLATFORM_URL_PROJECT\nexport ONE_PLATFORM_URL_LOCATION=ONE_PLATFORM_URL_LOCATION\nexport ONE_PLATFORM_URL_INSTANCE=ONE_PLATFORM_URL_INSTANCE\nexport GOOGLE_APPLICATION_CREDENTIALS=/opt/SiemplifyAgent/agent-key.json" >> /home/siemplify_agent/.bash_profile'
インストーラ
リモート エージェントの環境変数を移行する手順は次のとおりです。
前の手順の次の環境変数を貼り付けて、このコマンドを実行します。
cat << EOF >> /home/siemplify_agent/.bash_profile export ONE_PLATFORM_URL_DOMAIN=ONE_PLATFORM_URL_DOMAIN export ONE_PLATFORM_URL_PROJECT=ONE_PLATFORM_URL_PROJECT export ONE_PLATFORM_URL_LOCATION=ONE_PLATFORM_URL_LOCATION export ONE_PLATFORM_URL_INSTANCE=ONE_PLATFORM_URL_INSTANCE export GOOGLE_APPLICATION_CREDENTIALS=/opt/SiemplifyAgent/agent-key.json EOF
サービス アカウントをリモート エージェントに移行する
この手順が完了し、すべての環境変数がリモート エージェントに存在すると、移行が完了し、リモート エージェントは Google Cloud を介して通信します。
Podman
リモート エージェント認証インフラストラクチャを移行する手順は次のとおりです。
-
実行中の Podman コンテナを一覧表示します。
podman ps -
エージェントのコンテナ ID を入力します。
CONTAINER_ID
-
次のコマンドを使用して、サービス アカウント キーをコンテナ内の専用パスにコピーします。
podman cp AGENT_SERVICE_ACCOUNT_PATH CONTAINER_ID:/opt/SiemplifyAgent/agent-key.json
次のコマンドを使用して、コンテナ内のサービス アカウント キーの所有者を変更します。
podman exec -u 0 CONTAINER_ID chown siemplify_agent:siemplify_agent /opt/SiemplifyAgent/agent-key.json
-
次のコマンドを実行して変更を適用します。
podman restart CONTAINER_ID
Docker
リモート エージェント認証インフラストラクチャを移行する手順は次のとおりです。
-
実行中の Docker コンテナを一覧表示します。
docker ps -
エージェントのコンテナ ID を入力します。
CONTAINER_ID
-
次のコマンドを使用して、サービス アカウント キーをコンテナ内の専用パスにコピーします。
docker cp AGENT_SERVICE_ACCOUNT_PATH CONTAINER_ID:/opt/SiemplifyAgent/agent-key.json
次のコマンドを使用して、コンテナ内のサービス アカウント キーの所有者を変更します。
docker exec -u 0 CONTAINER_ID chown siemplify_agent:siemplify_agent /opt/SiemplifyAgent/agent-key.json
-
次のコマンドを実行して変更を適用します。
docker restart CONTAINER_ID
インストーラ
リモート エージェント認証インフラストラクチャを移行する手順は次のとおりです。
-
サービス アカウントを想定されるパスに移動する
mv AGENT_SERVICE_ACCOUNT_PATH /opt/SiemplifyAgent/agent-key.json
-
次のコマンドを使用して、コンテナ内のサービス アカウント キーの所有者を変更します。
chown siemplify_agent:siemplify_agent /opt/SiemplifyAgent/agent-key.json
-
次のコマンドを実行して、エージェント サービスを再起動します。
supervisorctl restart siemplify_agent
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。