Google Cloud Armor 適応型保護を構成する

このページでは、適応型保護の構成について説明します。適応型保護を構成する前に、適応型保護の概要また、適応型保護のユースケースの情報をよく理解しておいてください。

準備

以降のセクションでは、Google Cloud Armor セキュリティ ポリシーの構成に必要なすべての Identity and Access Management(IAM)のロールと権限について説明します。このドキュメントのユースケースでは、compute.securityPolicies.update 権限のみが必要です。

Google Cloud Armor セキュリティ ポリシーの IAM 権限を設定する

次の操作を行うには、Identity and Access Management(IAM)の Compute セキュリティ管理者のロール(roles/compute.securityAdminが必要です。

  • Google Cloud Armor セキュリティ ポリシーの構成、変更、更新、削除
  • 次の API メソッドの使用:
    • SecurityPolicies insert
    • SecurityPolicies delete
    • SecurityPolicies patch
    • SecurityPolicies addRule
    • SecurityPolicies patchRule
    • SecurityPolicies removeRule

Compute ネットワーク管理者のロール(roles/compute.networkAdminを付与されたユーザーは、次の操作を実行できます。

  • バックエンド サービスの Google Cloud Armor セキュリティ ポリシーの設定
  • 次の API メソッドの使用:
    • BackendServices setSecurityPolicy
    • BackendServices listgcloud のみ)

セキュリティ管理者ロール(roles/iam.securityAdminとネットワーク管理者ロールを持つユーザーは、SecurityPolicies API メソッドの getlist、および getRule を使用して、Google Cloud Armor セキュリティ ポリシーを閲覧できます。

カスタムロールの IAM 権限を設定する

次の表に、IAM のロールの基本的な権限と、関連する API メソッドを示します。

IAM 権限 API メソッド
compute.securityPolicies.create SecurityPolicies insert
compute.securityPolicies.delete SecurityPolicies delete
compute.securityPolicies.get SecurityPolicies get
SecurityPolicies getRule
compute.securityPolicies.list SecurityPolicies list
compute.securityPolicies.use BackendServices setSecurityPolicy
compute.securityPolicies.update SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
compute.backendServices.setSecurityPolicy BackendServices setSecurityPolicy

適応型保護を有効にする

次の手順に沿って、セキュリティ ポリシーの適応型保護を有効にします。適応型保護は各セキュリティ ポリシーに個別に適用されます。

コンソール

セキュリティ ポリシーの適応型保護を有効にするには:

  1. Google Cloud コンソールで、[ネットワーク セキュリティ] ページに移動します。

    [ネットワーク セキュリティ] に移動

  2. [ポリシー] ページで、セキュリティ ポリシーの名前をクリックします。

  3. [編集] をクリックします。

  4. [適応型保護] で [有効] を選択します。

  5. [更新] をクリックします。

セキュリティ ポリシーの適応型保護を無効にするには:

  1. Google Cloud コンソールで、[ネットワーク セキュリティ] ページに移動します。

    [ネットワーク セキュリティ] に移動

  2. [ポリシー] ページで、セキュリティ ポリシーの名前をクリックします。

  3. [編集] をクリックします。

  4. [適応型保護] で [有効] をオフにします。

  5. [更新] をクリックします。

gcloud

セキュリティ ポリシーの適応型保護を有効にするには:

gcloud compute security-policies update MY-SECURITY-POLICY \
    --enable-layer7-ddos-defense

セキュリティ ポリシーの適応型保護を無効にするには:

gcloud compute security-policies update MY-SECURITY-POLICY \
    --no-enable-layer7-ddos-defense

粒度モデルを構成する

粒度モデル機能を使用すると、適応型保護で分析する粒度単位として特定のホストまたはパスを構成できます。次の例では、ホストごとに粒度トラフィック ユニットを作成し、粒度トラフィック ユニットをカスタマイズして、トラフィックがベースライン秒間クエリ数(QPS)を超えた場合にアクションを実行するように適応型保護を構成します。粒度モデルの詳細については、適応型保護の概要をご覧ください。

粒度トラフィック ユニットを構成する

このセクションの例では、次のフラグの一部またはすべてを指定して add-layer7-ddos-defense-threshold-config コマンドを使用します。

フラグ 説明
--threshold-config-name しきい値構成の名前。
--traffic-granularity-configs 指定したサービスの粒度で適応型保護を有効にするための構成オプション。
--auto-deploy-impacted-baseline-threshold 検出された攻撃に対する推奨の緩和ルールのベースライン トラフィックに対する適応型保護の見込まれる影響のしきい値。自動防御は、しきい値を超えない場合にのみ適用されます。
--auto-deploy-expiration-sec 自動デプロイによって実行されたアクションの継続期間(存在する場合)。
--detection-load-threshold バックエンド サービスの負荷に基づく検出しきい値。
--detection-absolute-qps 絶対 QPS に基づく検出しきい値。
--detection-relative-to-baseline-qps ベースライン トラフィックの平均に対する QPS に基づく検出しきい値。

最初の例では、デフォルトのしきい値をオーバーライドすることなく、バックエンド サービスの背後にあるホストごとに攻撃を検出し、個別の緩和策を提案するように適応型保護を構成します。

gcloud

  1. POLICY_NAME という名前のセキュリティ ポリシーを作成するか、既存のセキュリティ ポリシーを使用します。
  2. 適応型保護がまだ有効になっていない場合は、次のコマンドを使用して、ポリシーの適応型保護を有効にします。
    gcloud compute security-policies update POLICY_NAME 
    --enable-layer7-ddos-defense
  3. 複数のホストを持つバックエンド サービスにセキュリティ ポリシーを適用します。
  4. 粒度トラフィック ユニットを構成するには、--traffic-granularity-configs フラグを指定して次の add-layer7-ddos-defense-threshold-config コマンドを使用します。
    gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME 
    --threshold-config-name=per-host-config
    --traffic-granularity-configs=type=HTTP_HEADER_HOST;enableEachUniqueValue=true

2 つ目の例では、最初の例で構成した粒度トラフィック ユニットの一部または全部に対して、異なる自動デプロイおよび検出しきい値を構成しています。

gcloud

  1. 適応型保護の自動デプロイがまだ有効になっていない場合は、プレースホルダ ルールを作成します。
  2. 次のコマンドは、HOSTHTTP_HEADER_HOSTPATHHTTP_PATH を使用して、粒度トラフィック ユニットの自動デプロイのしきい値をカスタマイズします。カスタマイズする粒度トラフィック ユニットごとにこのコマンドを使用し、必要に応じてホストと URL パスごとに変数を置き換えます。
    gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME 
    --threshold-config-name=my-host-config
    --auto-deploy-impacted-baseline-threshold=0.01
    --auto-deploy-expiration-sec=3600
    --traffic-granularity-configs=type=HTTP_HEADER_HOST;value=HOST,type=HTTP_PATH;value=PATH

攻撃量がベースラインの平均 QPS を超過した場合に検出する

次の例では、攻撃量がベースラインの平均 QPS を 50% 超え、バックエンド サービスの負荷が容量の 90% を超えた場合にのみ攻撃を検出するように、適応型保護を構成します。

gcloud

  1. POLICY_NAME という名前のセキュリティ ポリシーを作成するか、既存のセキュリティ ポリシーを使用します。
  2. 適応型保護がまだ有効になっていない場合は、次のコマンドを使用して、ポリシーの適応型保護を有効にします。

    gcloud compute security-policies update POLICY_NAME \
      --enable-layer7-ddos-defense
    
  3. セキュリティ ポリシーをバックエンド サービスに適用します。

  4. 次のコマンドを使用して、カスタマイズした検出しきい値で適応型保護を構成します。

    gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME \
       --threshold-config-name=my-customized-thresholds \
       --detection-load-threshold=0.9 \
       --detection-relative-to-baseline-qps=1.5
    

次のステップ