Adaptive Protection が提示するルールを自動でデプロイする

このドキュメントでは、Adaptive Protection が生成する推奨ルールを自動でデプロイするための構成手順について説明します。自動的なルールのデプロイを有効にするには、次の値を使用してプレースホルダ ルールを作成する必要があります。

  • 表現の一致: evaluateAdaptiveProtectionAutoDeploy()
  • アクション: 任意
  • 優先度: 任意。優先度の高い正当なトラフィックには、他のルールよりも高い優先度の明示的な許可ルールを設定することをおすすめします。

サードパーティの CDN などの外部アプリケーション ロードバランサの前にアップストリーム プロキシを使用する場合、指定されたヘッダーからの元のクライアントの IP アドレスに基づいてリクエストに一致するように、プレースホルダ ルールを構成できます。このプレビュー機能を使用するには、advancedOptionsConfig フィールドで userIpRequestHeaders[] オプションを構成します。詳細については、ComputeSecurityPolicy リソース リファレンスをご覧ください。

プレースホルダ ルールの例

次のコマンドは、POLICY_NAME というセキュリティ ポリシーのプレースホルダ ルールの例です。各ルールには異なるルール アクションが含まれています。これらのルールを既存のセキュリティ ポリシーに追加することも、新しいポリシーを作成することもできます。セキュリティ ポリシーの作成の詳細については、Google Cloud Armor セキュリティ ポリシーの構成をご覧ください。

悪意のあるトラフィックをブロックする

この例のルールによって、Adaptive Protection が攻撃トラフィックとして識別したリクエストが true と評価されます。Google Cloud Armor によってブロック アクションが攻撃リクエストに適用されます。

gcloud compute security-policies rules create 1000 \
    --security-policy POLICY_NAME \
    --expression "evaluateAdaptiveProtectionAutoDeploy()" \
    --action deny-403

悪意のあるトラフィックを reCAPTCHA チャレンジにリダイレクトする

この例のルールは、Adaptive Protection によって悪意があると識別されたトラフィックを reCAPTCHA チャレンジにリダイレクトします。

gcloud compute security-policies rules create 1000 \
    --security-policy POLICY_NAME \
    --expression "evaluateAdaptiveProtectionAutoDeploy()" \
    --action redirect \
    --redirect-type google-recaptcha

悪意のあるトラフィックのレート制限

この例では、Google Cloud Armor のレート制限を、Adaptive Protection によって悪意があると識別されたトラフィックに適用します。

gcloud compute security-policies rules create 1000 \
    --security-policy POLICY_NAME \
    --expression "evaluateAdaptiveProtectionAutoDeploy()" \
    --action throttle \
    --rate-limit-threshold-count 500 \
    --rate-limit-threshold-interval-sec 120 \
    --conform-action allow \
    --exceed-action deny-404 \
    --enforce-on-key ip

Adaptive Protection の自動デプロイ パラメータを構成する

次のパラメータを調整して、ルールの自動デプロイのしきい値を構成できます。パラメータの値を設定しなかった場合、Google Cloud Armor はデフォルト値を使用します。

  • 負荷しきい値: アラート攻撃の最中に、Adaptive Protection は、攻撃下にあるバックエンド サービスへの負荷がこのしきい値を超えた場合にのみ新しい攻撃者を識別します。 また、攻撃対象のバックエンド サービスへの負荷がこのしきい値を超えた場合にのみ、アラート用のルールが自動的にデプロイされます。

    • デフォルト値: 0.8
    • App EngineCloud Run、または Cloud Run 関数にトラフィックを送信するサーバーレス NEG。
    • 外部送信元にトラフィックを送信するインターネット NEG。
  • 信頼度のしきい値: 信頼スコアがこのしきい値を超える可能性のある攻撃のアラートに対してのみ、ルールが自動的にデプロイされます。

    • デフォルト値: 0.5
  • 影響を受けるベースラインのしきい値: 推奨された緩和策でベースライン トラフィックに予想される影響がこのしきい値を下回った場合にのみ、ルールが自動的にデプロイされます。

    • デフォルト値: 0.01 パーセント
  • 有効期限を設定: この期間の後、Google Cloud Armor は、自動的にデプロイされたルールにあるアクションの識別した攻撃者への適用を停止します。このルールは、新しいリクエストに対して引き続き機能します。

    • デフォルト値: 7200

次のコマンドの例では、セキュリティ ポリシーを更新して、デフォルト以外の自動デプロイしきい値を使用できます。NAME はセキュリティ ポリシーの名前に、残りの変数はポリシーに必要な値に置き換えます。

gcloud beta compute security-policies update NAME [
    --layer7-ddos-defense-auto-deploy-load-threshold LOAD_THRESHOLD
    --layer7-ddos-defense-auto-deploy-confidence-threshold CONFIDENCE_THRESHOLD
    --layer7-ddos-defense-auto-deploy-impacted-baseline-threshold IMPACTED_BASELINE_THRESHOLD
    --layer7-ddos-defense-auto-deploy-expiration-sec EXPIRATION_SEC
]

ロギング

Adaptive Protection で自動的にデプロイされたルールによって生成されたログには、次の追加フィールドがあります。

  • autoDeployed: 自動ルールのデプロイを構成すると、Adaptive Protection が生成する各アラートログに、自動防御がトリガーされたかどうかを示すブール値フィールド autoDeployed が含まれます。
  • adaptiveProtection.autoDeployAlertId: Adaptive Protection が自動防御の一環としてリクエストに対してアクションを実行するたびに、リクエストログに adaptiveProtection.autoDeployAlertId フィールドが追加され、アラート ID が記録されます。このフィールドは、セキュリティ ポリシーがプレビュー モードだったかどうかに応じて、enforcedSecurityPolicy または previewSecurityPolicy の下に表示されます。

リクエストログを表示するには、リクエスト ロギングをご覧ください。次のスクリーンショットは、autoDeployed フィールドと adaptiveProtection.autoDeployAlertId フィールドを含む適応型保護ログエントリの例を示しています。

Adaptive Protection のログの例
適応型保護のログの例(クリックして拡大)

制限事項

  • 適応型保護は、外部アプリケーション ロードバランサ経由で公開されるバックエンド サービスに接続しているバックエンド セキュリティ ポリシーでのみ使用できます。適応型保護は、外部プロキシ ネットワーク ロードバランサでは使用できません。