Cloud Armor を Google SecOps と統合する

このドキュメントでは、Google Cloud Armor を Google Security Operations と統合する方法について説明します。

ユースケース

Cloud Armor の統合では、次のユースケースがサポートされています。

  • 脅威の自動ブロック: インシデント中にセキュリティ ポリシー ルールを更新することで、 Google Cloud エッジで悪意のある IP アドレスまたは範囲を即座にブロックします。

  • セキュリティ ポリシー管理: 環境全体のセキュリティ ポリシーとルールを一覧表示、取得、更新して、一貫した WAF 保護を確保します。

  • 動的 DDoS 軽減策: セキュリティ ポリシーの設定をプログラムで調整することで、ボリューム型またはプロトコル ベースの攻撃に対応します。

  • フォレンジック監査: 既存のセキュリティ ポリシーの構成の詳細を取得して、エッジ保護を内部セキュリティ通知に関連付けます。

始める前に

Google SecOps で Cloud Armor 統合を構成する前に、次の前提条件の手順を完了します。

  1. カスタムの Identity and Access Management ロールを作成して構成する。

  2. サービス アカウントを作成します。

  3. 次のいずれかの認証方法を選択して構成します。

    • オプション 1: Workload Identity(推奨): この方法では、サービス アカウントの権限借用を使用して有効期間の短いトークンを使用します。

    • オプション 2: サービス アカウントの JSON キー: この方法は、静的な、有効期間の長い秘密鍵ファイルに依存します。

IAM ロールを作成して構成する

統合に必要な権限を付与するには、 Google Cloud プロジェクトにカスタムロールを作成します。

  1. Google Cloud コンソールで、[ロール] に移動します。

    [ロール] に移動

  2. [addカスタムの役割を作成] をクリックします。

  3. [タイトル]、[説明]、一意の [ID] を指定します。

  4. [ロールのリリース段階] を [一般提供] に設定します。

  5. ロールに次の権限を追加します。

    • compute.backendBuckets.setSecurityPolicy
    • compute.backendServices.setSecurityPolicy
    • compute.regionBackendServices.setSecurityPolicy
    • compute.regionSecurityPolicies.create
    • compute.regionSecurityPolicies.get
    • compute.regionSecurityPolicies.list
    • compute.regionSecurityPolicies.update
    • compute.securityPolicies.create
    • compute.securityPolicies.get
    • compute.securityPolicies.list
    • compute.securityPolicies.update
  6. [作成] をクリックします。

サービス アカウントを作成する

  1. Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。

    [サービス アカウント] に移動

  2. [addサービス アカウントを作成] をクリックします。

  3. 名前と説明を入力し、[作成して続行] をクリックします。

  4. [このサービス アカウントにプロジェクトへのアクセスを許可する] ステップで、作成したカスタム IAM ロールを割り当てます。

  5. [完了] をクリックします。サービス アカウントのメールアドレスをメモします。

Workload Identity 認証情報を構成する

Workload Identity は、サービス アカウントの権限借用を使用して有効期間の短いトークンを使用するため、推奨されるアプローチです。

一意のインスタンス ID を特定する

接続を確立するには、サービス アカウントの権限を借用する権限を Google SecOps インスタンスに付与する必要があります。

  1. Google SecOps で、[Content Hub] > [Response Integrations] に移動します。

  2. [Cloud Armor] 統合を選択し、Workload Identity Email にサービス アカウントのメールアドレスを入力します。

  3. [保存] > [テスト] をクリックします。テストが失敗します。

  4. [Test] の横にある close_small ボタンをクリックし、gke-init-python@... または soar-python@... で始まる ID メールを見つけます。

  5. この固有のメールアドレスをコピーします。

Google Cloudでインスタンス ID を認可する

  1. Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。

    [サービス アカウント] に移動

  2. 対象のサービス アカウントを選択し、[権限] > [アクセスを許可] に移動します。

  3. 一意のメールアドレスを [新しいプリンシパル] フィールドに貼り付け、サービス アカウント トークン作成者ロール(roles/iam.serviceAccountTokenCreator)を割り当てます。

JSON キーを構成する

静的で有効期間の長い秘密鍵ファイルは、手動でローテーションする必要があります。この方法は、Workload Identity 認証を使用できない場合にのみ使用してください。

  1. Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動し、サービス アカウントを選択します。

    [サービス アカウント] に移動

  2. [キー] タブに移動し、[キーを追加] > [新しいキーを作成] をクリックします。

  3. [JSON] を選択し、[作成] をクリックします。鍵ファイルがパソコンにダウンロードされます。

統合のパラメータ

Cloud Armor の統合には、次のパラメータが必要です。

パラメータ 説明
API Root

必須。

Cloud Armor サービスの API ルート。

デフォルト値は https://compute.googleapis.com/compute/v1/ です。

Project ID

省略可。

Cloud Armor のターゲットにするプロジェクト ID。

値が指定されていない場合、統合はサービス アカウントの認証情報から ID を取得します。

Workload Identity Email

省略可。

サービス アカウントのクライアント メールアドレス。Workload Identity 認証用にこのパラメータを構成します。

構成されている場合、User Service Account は無視されます。

User Service Account

省略可。

サービス アカウント キーの JSON ファイルの内容全体。サービス アカウント キー認証用にこのパラメータを構成します。

構成されている場合、統合は Workload Identity Email を無視します。

Verify SSL

必須。

選択すると、統合は Google Cloud サーバーに接続するときに SSL 証明書を検証します。

デフォルトで有効になっています。

Google SecOps で統合を構成する方法については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できます。複数のインスタンスを構成してサポートする方法の詳細については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、 デスクから保留中のアクションに対応するとケースで手動アクションを実行するをご覧ください。

セキュリティ ポリシーにルールを追加する

Cloud Armor サービスのセキュリティ ポリシーに新しいルールを追加します。

エンティティ

このアクションはエンティティでは実行されません。

アクションへの入力

アクションを構成するには、次のパラメータを使用します。

パラメータ
Policy Name 必須

新しいルールを追加するセキュリティ ポリシーの名前。

Region Optional

ルールを追加するポリシーのリージョン。

値が指定されていない場合、ルールはグローバルレベルのセキュリティ ポリシーに追加されます。

Rule JSON 必須

追加するルールの JSON 定義。

ポリシーにルールを追加する方法については、メソッド: securityPolicies.addRule をご覧ください。

アクションの出力

アクションの出力タイプ
ケースウォールのアタッチメント なし
ケースのウォールのリンク なし
ケースウォール テーブル なし
拡充テーブル なし
JSON の結果 利用可能
スクリプトの結果 利用可能
スクリプトの結果
スクリプトの結果名 値
is_success 正誤問題
JSON の結果
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
ケースウォール

このアクションでは、次の出力メッセージが表示されます。

出力メッセージ メッセージの説明
Successfully added a new rule to the security policy! アクションが成功しました。
Error executing action "Add a Rule to a Security Policy". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、認証情報、リージョン名、JSON ファイルの内容、ポリシー名を確認してください。

セキュリティ ポリシーを作成する

Cloud Armor サービスでセキュリティ ポリシーを作成します。

エンティティ

このアクションはエンティティでは実行されません。

アクションへの入力

アクションを構成するには、次のパラメータを使用します。

パラメータ
Region Optional

ポリシーを作成するリージョン。

値が指定されていない場合、グローバルレベルのセキュリティ ポリシーが作成されます。

Policy JSON 必須

作成するポリシーの JSON 定義。

ポリシーの詳細については、REST リソース: securityPolicies をご覧ください。

アクションの出力

アクションの出力タイプ
ケースウォールのアタッチメント なし
ケースのウォールのリンク なし
ケースウォール テーブル なし
拡充テーブル なし
JSON の結果 利用可能
スクリプトの結果 利用可能
スクリプトの結果
スクリプトの結果名 値
is_success 正誤問題
JSON の結果
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
ケースウォール

このアクションでは、次の出力メッセージが表示されます。

出力メッセージ メッセージの説明
Successfully created a new security policy! アクションが成功しました。
Error executing action "Create a Security Policy". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、認証情報、リージョン名、JSON ファイルの内容を確認してください。

Ping

統合構成ページで提供されるパラメータを使用して、Cloud Armor サービスへの接続をテストします。

エンティティ

このアクションはエンティティでは実行されません。

アクションへの入力

なし

アクションの出力

アクションの出力タイプ
ケースウォールのアタッチメント なし
ケースのウォールのリンク なし
ケースウォール テーブル なし
拡充テーブル なし
JSON の結果 なし
スクリプトの結果 利用可能
スクリプトの結果
スクリプトの結果名 値
is_success 正誤問題
ケースウォール

このアクションでは、次の出力メッセージが表示されます。

出力メッセージ メッセージの説明
Successfully connected to the Google Cloud Armor service with the provided connection parameters! アクションが成功しました。
Failed to connect to the Google Cloud Armor service! Error is ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

セキュリティ ポリシーを更新する

Cloud Armor サービスで既存のセキュリティ ポリシーを更新します。

このアクションでは、ポリシー内のルールを更新できません。関連するポリシーにルールを追加するには、[セキュリティ ポリシーにルールを追加する] アクションを使用します。

エンティティ

このアクションはエンティティでは実行されません。

アクションへの入力

アクションを構成するには、次のパラメータを使用します。

パラメータ
Policy Name 必須

新しいルールを追加するセキュリティ ポリシーの名前。

Region Optional

更新されたポリシーのリージョン。

値が指定されていない場合、グローバルレベルのセキュリティ ポリシーが作成されます。

Rule JSON 必須

更新するポリシーの JSON 定義。

ポリシーの更新の詳細については、メソッド: securityPolicies.patch をご覧ください。

このアクションではルールを更新できません。 ポリシーにルールを追加するには、[セキュリティ ポリシーにルールを追加する] アクションを使用します。

アクションの出力

アクションの出力タイプ
ケースウォールのアタッチメント なし
ケースのウォールのリンク なし
ケースウォール テーブル なし
拡充テーブル なし
JSON の結果 利用可能
スクリプトの結果 利用可能
スクリプトの結果
スクリプトの結果名 値
is_success 正誤問題
JSON の結果
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
ケースウォール

このアクションでは、次の出力メッセージが表示されます。

出力メッセージ メッセージの説明
Successfully added comment to the identity protection detection with ID DETECTION_ID in CrowdStrike アクションが成功しました。
Error executing action "Update a Security Policy". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

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