Cloud Armor を Google SecOps と統合する
このドキュメントでは、Google Cloud Armor を Google Security Operations と統合する方法について説明します。
ユースケース
Cloud Armor の統合は、次のユースケースをサポートしています。
脅威の自動ブロック: インシデント中にセキュリティ ポリシー ルールを更新して、悪意のある IP アドレスまたは範囲を Google Cloud エッジで即座にブロックします。
セキュリティ ポリシーの管理: 環境全体でセキュリティ ポリシーとルールを一覧表示、取得、更新して、一貫した WAF 保護を確保します。
動的 DDoS 緩和: セキュリティ ポリシーの設定をプログラムで調整して、ボリューム型攻撃またはプロトコル ベースの攻撃に対応します。
フォレンジック監査: 既存のセキュリティ ポリシーの構成の詳細を取得して、エッジ保護と内部セキュリティ アラートを関連付けます。
始める前に
Google SecOps で Cloud Armor 統合を構成する前に、次の前提条件の手順を完了します。
次のいずれかの認証方法を選択して構成します。
オプション 1: Workload Identity(推奨): この方法では、サービス アカウントの権限借用を使用して有効期間の短いトークンを使用します。
オプション 2: サービス アカウントの JSON キー: この方法は、静的で有効期間の長いシークレット キーファイルに依存しています。
IAM ロールを作成して構成する
統合に必要な権限を付与するには、 Google Cloud プロジェクトにカスタムロールを作成します。
Google Cloud コンソールで、[ロール] に移動します。
[追加カスタムの役割を作成] をクリックします。
[タイトル]、[説明]、一意の [ID] を指定します。
[ロールのリリース段階] を [一般提供] に設定します。
ロールに次の権限を追加します。
compute.backendBuckets.setSecurityPolicycompute.backendServices.setSecurityPolicycompute.regionBackendServices.setSecurityPolicycompute.regionSecurityPolicies.createcompute.regionSecurityPolicies.getcompute.regionSecurityPolicies.listcompute.regionSecurityPolicies.updatecompute.securityPolicies.createcompute.securityPolicies.getcompute.securityPolicies.listcompute.securityPolicies.update
[作成] をクリックします。
サービス アカウントを作成する
Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。
[追加サービス アカウントを作成] をクリックします。
名前と説明を入力し、[作成して続行] をクリックします。
[このサービス アカウントにプロジェクトへのアクセスを許可する] ステップで、作成したカスタム IAM ロールを割り当てます。
[完了] をクリックします。サービス アカウントのメールアドレスをメモします。
Workload Identity の認証情報を構成する
Workload Identity は、サービス アカウントの権限借用を使用して有効期間の短いトークンを使用するため、推奨されるアプローチです。
一意のインスタンス ID を特定する
接続を確立するには、Google SecOps インスタンスにサービス アカウントの権限借用を許可する必要があります。
Google SecOps で、[コンテンツ ハブ] > [レスポンス統合] に移動します。
[Cloud Armor] 統合を選択し、
Workload Identity Emailにサービス アカウントのメールアドレスを入力します。[保存] > [テスト] をクリックします。テストが失敗します。
[テスト] の横にある close_small ボタンをクリックし、
gke-init-python@...またはsoar-python@...で始まる ID メールアドレスを見つけます。この一意のメールアドレスをコピーします。
Google Cloudでインスタンス ID を承認する
Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。
ターゲット サービス アカウントを選択し、[権限> アクセス権を付与] に移動します。
一意のメールアドレスを [新しいプリンシパル] フィールドに貼り付け、サービス アカウント トークン作成者ロール(
roles/iam.serviceAccountTokenCreator)を割り当てます。
JSON キーを構成する
静的で有効期間の長いシークレット キーファイルは、手動でローテーションする必要があります。この方法は、Workload Identity 認証を使用できない場合にのみ使用してください。
Google Cloud コンソールで、[IAM と管理>サービス アカウント] に移動し、サービス アカウントを選択します。
[鍵] タブに移動し、[鍵を追加 > 新しい鍵を作成] をクリックします。
[JSON] を選択し、[作成] をクリックします。キーファイルがパソコンにダウンロードされます。
統合のパラメータ
Cloud Armor の統合には、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
API Root |
必須。 Cloud Armor サービスの API ルート。 デフォルト値は |
Project ID |
省略可。 Cloud Armor のターゲットとなるプロジェクト ID。 値が指定されていない場合、インテグレーションはサービス アカウント認証情報から ID を取得します。 |
Workload Identity Email |
省略可。 サービス アカウントのクライアント メールアドレス。Workload Identity 認証用にこのパラメータを構成します。 構成されている場合、 |
User Service Account |
省略可。 サービス アカウント キーの JSON ファイルの完全な内容。サービス アカウント キー認証用にこのパラメータを構成します。 構成されている場合、統合は |
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 のプロフェッショナルから回答を得ることができます。