高度なネットワーク DDoS 対策を構成する

分散型サービス拒否攻撃(DDoS)とは、正規ユーザーのエクスペリエンスを低下させるために、悪意のある人物が一般公開されたサイト、システム、API のオペレーションを意図的に妨害する攻撃です。外部パススルー ネットワーク ロードバランサプロトコル転送、またはパブリック IP アドレスを持つ VM を使用するワークロードの場合、Google Cloud Armor では次のオプションを使用できます。これらは DDoS 攻撃からシステムを保護するために役立ちます。

  • 標準のネットワーク DDoS 対策: 外部パススルー ネットワーク ロードバランサ、プロトコル転送、パブリック IP アドレスを持つ VM に対して常時有効な基本的な保護対策です。これは Google Cloud Armor Standard の対象であり、追加のサブスクリプションは必要ありません。
  • 高度なネットワーク DDoS 対策: 外部パススルー ネットワーク ロードバランサ、プロトコル転送、パブリック IP アドレスを持つ VM を使用する Cloud Armor Enterprise サブスクライバー向けの高度な保護対策です。Cloud Armor Enterprise の詳細については、Cloud Armor Enterprise の概要をご覧ください。

このドキュメントでは、標準のネットワーク DDoS 対策と高度なネットワーク DDoS 対策の違いと、高度なネットワーク DDoS 対策の仕組みとそれを有効にする方法について説明します。

標準のネットワーク DDoS 対策と高度なネットワーク DDoS 対策の違い

次の表に、標準のネットワーク DDoS 保護対策と高度なネットワーク DDoS 保護対策の違いを示します。

機能 標準のネットワーク DDoS 対策 高度なネットワーク DDoS 対策
保護されるエンドポイントのタイプ
  • 外部パススルー ネットワーク ロードバランサ
  • プロトコル転送
  • パブリック IP アドレスを持つ VM
  • 外部パススルー ネットワーク ロードバランサ
  • プロトコル転送
  • パブリック IP アドレスを持つ VM
転送ルールの適用
常時有効な攻撃モニタリングとアラート
標的型攻撃の緩和策
緩和のテレメトリー

ネットワーク DDoS 保護の仕組み

標準のネットワーク DDoS 保護は常に有効になっています。有効にするための操作は必要ありません。

高度なネットワーク DDoS 保護はリージョン単位で構成します。特定のリージョンで有効にすると、Google Cloud Armor は、外部パススルー ネットワーク ロードバランサ、プロトコル転送、そのリージョンのパブリック IP アドレスを持つ VM に対して常時有効な保護対策を提供し、ボリューム型の攻撃を検出して軽減します。高度なネットワーク DDoS 対策は、Cloud Armor Enterprise に登録されているプロジェクトにのみ適用できます。

高度なネットワーク DDoS 対策を構成する場合は、まず、選択したリージョンに CLOUD_ARMOR_NETWORK タイプのセキュリティ ポリシーを作成します。次に、セキュリティ ポリシーを更新して、高度なネットワーク DDoS 対策を有効にします。最後に、ネットワーク エッジ セキュリティ サービスを作成します。これは、CLOUD_ARMOR_NETWORK タイプのセキュリティ ポリシーを接続できるリソースです。セキュリティ ポリシーをネットワーク エッジ セキュリティ サービスに接続すると、選択したリージョンの該当するすべてのエンドポイントで高度なネットワーク DDoS 対策を有効にできます。

高度なネットワーク DDoS 対策は、ベースライン トラフィックを測定して緩和パフォーマンスを向上させます。高度なネットワーク DDoS 対策を有効にすると、24 時間のトレーニング期間の後、高度なネットワーク DDoS 対策が信頼性の高いベースラインを確立し、そのトレーニングを使用して緩和策を強化できるようになります。トレーニング期間が終了すると、高度なネットワーク DDoS 対策は、過去のトラフィックに基づいて追加の緩和策を適用します。

高度なネットワーク DDoS 対策を有効にする

高度なネットワーク DDoS 対策を有効にするには、次の手順を行います。

Cloud Armor Enterprise に登録する

リージョン単位で高度なネットワーク DDoS 対策を有効にするには、プロジェクトを Cloud Armor Enterprise に登録する必要があります。有効にすると、そのリージョン内のすべてのリージョン エンドポイントに、高度なネットワーク DDoS 対策が常時適用されます。

請求先アカウントにアクティブな Cloud Armor Enterprise サブスクリプションがあり、現在のプロジェクトが Cloud Armor Enterprise に登録されていることを確認します。Cloud Armor Enterprise への登録の詳細については、Cloud Armor Enterprise への登録とプロジェクト登録をご覧ください。

Identity and Access Management(IAM)の権限を構成する

Google Cloud Armor のエッジ セキュリティ サービスを構成、更新、削除するには、次の IAM 権限が必要です。

  • compute.networkEdgeSecurityServices.create
  • compute.networkEdgeSecurityServices.update
  • compute.networkEdgeSecurityServices.get
  • compute.networkEdgeSecurityServices.delete

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

IAM 権限 API メソッド
compute.networkEdgeSecurityServices.create networkEdgeSecurityServices insert
compute.networkEdgeSecurityServices.update networkEdgeSecurityServices patch
compute.networkEdgeSecurityServices.get networkEdgeSecurityServices get
compute.networkEdgeSecurityServices.delete networkEdgeSecurityServices delete
compute.networkEdgeSecurityServices.list networkEdgeSecurityServices aggregatedList

Google Cloud Armor を使用するときに必要となる IAM 権限の詳細については、Google Cloud Armor セキュリティ ポリシーの IAM 権限を設定するをご覧ください。

高度なネットワーク DDoS 対策を構成する

高度なネットワーク DDoS 対策を有効にするには、次の手順を実施します。

  1. CLOUD_ARMOR_NETWORK タイプのセキュリティ ポリシーを作成するか、CLOUD_ARMOR_NETWORK タイプの既存のセキュリティ ポリシーを使用します。

     gcloud compute security-policies create SECURITY_POLICY_NAME \
         --type CLOUD_ARMOR_NETWORK \
         --region REGION
    

    次のように置き換えます。

    • SECURITY_POLICY_NAME: セキュリティ ポリシーに付ける名前
    • REGION: セキュリティ ポリシーをプロビジョニングするリージョン
  2. --network-ddos-protection フラグを ADVANCED に設定して、新規に作成したセキュリティ ポリシーまたは既存のセキュリティ ポリシーを更新します。

     gcloud compute security-policies update SECURITY_POLICY_NAME \
         --network-ddos-protection ADVANCED \
         --region REGION
    

    --network-ddos-protection フラグを ADVANCED_PREVIEW に設定して、プレビュー モードでセキュリティ ポリシーを有効にすることもできます。

     gcloud beta compute security-policies update SECURITY_POLICY_NAME \
         --network-ddos-protection ADVANCED_PREVIEW \
         --region REGION
    
  3. セキュリティ ポリシーを参照するネットワーク エッジ セキュリティ サービスを作成します。

     gcloud compute network-edge-security-services create SERVICE_NAME \
         --security-policy SECURITY_POLICY_NAME \
         --region REGION
    

高度なネットワーク DDoS 対策を無効にする

高度なネットワーク DDoS 対策を無効にするには、セキュリティ ポリシーを更新するか、削除します。

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

次のコマンドを使用して、セキュリティ ポリシーを更新し、--network-ddos-protection フラグを STANDARD に設定します。変数は、デプロイメントに関連する情報に置き換えます。

gcloud compute security-policies update SECURITY_POLICY_NAME \
    --network-ddos-protection STANDARD \
    --region REGION

セキュリティ ポリシーを削除する

使用中のセキュリティ ポリシーは削除できません。ネットワーク エッジのセキュリティ ポリシーを削除するには、まずネットワーク エッジ セキュリティ サービスから削除する必要があります。セキュリティ ポリシーを削除するには、次の操作を行います。

  1. ネットワーク エッジ セキュリティ サービスからポリシーを削除するか、ネットワーク エッジ セキュリティ サービスを削除します。
  2. 次のコマンドを使用して、セキュリティ ポリシーを削除します。

    gcloud compute security-policies delete NAME
    

プレビュー モードを使用する

プレビュー モードでは、緩和策を適用せずに、高度なネットワーク DDoS 対策の効果をモニタリングできます。

Cloud Armor Enterprise に登録すると、高度なネットワーク DDoS 対策ポリシーのプレビュー モードを有効にすることもできます。プレビュー モードでは、検出された攻撃と提案された緩和策について、すべてのロギングとテレメトリーを受け取ります。ただし、提案された緩和策は適用されません。これにより、提案された緩和策の有効性をテストしてから適用できます。各ポリシーはリージョンごとに構成されるため、リージョンごとにプレビュー モードを有効または無効にできます。

プレビュー モードを有効にするには、--ddos-protection フラグを ADVANCED_PREVIEW に設定します。既存のポリシーを更新するには、次の例を使用します。

gcloud beta compute security-policies update POLICY_NAME \
    --network-ddos-protection ADVANCED_PREVIEW \
    --region=REGION

次のように置き換えます。

  • POLICY_NAME: ポリシーの名前。
  • REGION: ポリシーが配置されているリージョン。

アクティブな攻撃中にセキュリティ ポリシーがプレビュー モードになっている場合に、緩和策を適用するには、セキュリティ ポリシーを更新して --network-ddos-protection フラグを ADVANCED に設定します。ポリシーはほぼ瞬時に適用され、次の MITIGATION_ONGOING ロギング イベントに変更が反映されます。MITIGATION_ONGOING ロギング イベントは 5 分ごとに発生します。

ネットワーク DDoS 緩和テレメトリー

以降のセクションでは、テレメトリーを使用して攻撃とその発生元を分析する方法について説明します。

Cloud Logging 攻撃緩和のイベントログ

Google Cloud Armor は、DDoS 攻撃を緩和する際に次の 3 種類のイベントログを生成します。次のセクションでは、イベントログのタイプごとにログ形式の例を示します。

緩和開始

  @type: "type.googleapis.com/google.cloud.networksecurity.cloudarmor.logging.v1.CloudArmorMitigationAlert"
  alertId: "11275630857957031521"
  mitigation_type: "MITIGATION_STARTED"
  target_vip: "XXX.XXX.XXX.XXX"
  total_volume: {
   pps: 1400000
   bps: 140000000
  }
  started: {
   total_attack_volume: {
    pps: 1100000
    bps: 110000000
   }
   classified_attack: {
    attack_type: "NTP-udp"
    attack_volume: {
       pps: 500000
       bps: 50000000
    }
   }
   classified_attack: {
    attack_type: "CHARGEN-udp"
    attack_volume: {
       pps: 600000
       bps: 60000000
    }
   }
  }
  

緩和中

  @type: "type.googleapis.com/google.cloud.networksecurity.cloudarmor.logging.v1.CloudArmorMitigationAlert"
  alertId: "11275630857957031521"
  mitigation_type: "MITIGATION_ONGOING"
  target_vip: "XXX.XXX.XXX.XXX"
  total_volume: {
   pps: 1500000
   bps: 150000000
  }
  ongoing: {
   total_attack_volume: {
    pps: 1100000
    bps: 110000000
   }
   classified_attack: {
    attack_type: "NTP-udp"
    attack_volume: {
       pps: 500000
       bps: 50000000
    }
   }
   classified_attack: {
    attack_type: "CHARGEN-udp"
    attack_volume: {
       pps: 600000
       bps: 60000000
    }
   }
  }
  

緩和完了

  @type: "type.googleapis.com/google.cloud.networksecurity.cloudarmor.logging.v1.CloudArmorMitigationAlert"
  alertId: "11275630857957031521"
  mitigation_type: "MITIGATION_ENDED"
  target_vip: "XXX.XXX.XXX.XXX"
  ended: {
      attack_duration_seconds: 600
      attack_type: "NTP-udp"
  }
  

プレビュー モードでは、先行する各 mitigation_type の前に PREVIEWED_ が付加されます。たとえば、プレビュー モードでは、MITIGATION_STARTEDPREVIEWED_MITIGATION_STARTED になります。

これらのログを表示するには、ログ エクスプローラに移動して network_security_policy リソースを表示します。

[ログ エクスプローラ] に移動

ログの表示方法の詳細については、ログの表示をご覧ください。

次のステップ