分散型サービス拒否攻撃(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 対策 |
---|---|---|
保護されるエンドポイントのタイプ |
|
|
転送ルールの適用 | ||
常時有効な攻撃モニタリングとアラート | ||
標的型攻撃の緩和策 | ||
緩和のテレメトリー |
ネットワーク DDoS 保護の仕組み
標準のネットワーク DDoS 保護は常に有効になっています。有効にするための操作は必要ありません。
高度なネットワーク DDoS 対策はリージョン単位で構成します。ネットワーク エッジ セキュリティ ポリシーを、1 つ以上のターゲット プール、ターゲット インスタンス、バックエンド サービス、または外部 IP アドレスを持つインスタンスに関連付ける代わりに、特定のリージョンのネットワーク エッジ セキュリティ サービスに関連付けます。該当するリージョンでそのポリシーを有効にすると、そのリージョンで外部パススルー ネットワーク ロードバランサ、プロトコル転送、パブリック 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 対策を有効にする手順は次のとおりです。
CLOUD_ARMOR_NETWORK
タイプのセキュリティ ポリシーを作成するか、CLOUD_ARMOR_NETWORK
タイプの既存のセキュリティ ポリシーを使用します。gcloud compute security-policies create SECURITY_POLICY_NAME \ --type CLOUD_ARMOR_NETWORK \ --region REGION
次のように置き換えます。
SECURITY_POLICY_NAME
: セキュリティ ポリシーに付ける名前REGION
: セキュリティ ポリシーをプロビジョニングするリージョン
--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
セキュリティ ポリシーを参照するネットワーク エッジ セキュリティ サービスを作成します。
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
セキュリティ ポリシーを削除する
使用中のセキュリティ ポリシーは削除できません。ネットワーク エッジのセキュリティ ポリシーを削除するには、まずネットワーク エッジ セキュリティ サービスから削除する必要があります。セキュリティ ポリシーを削除するには、次の操作を行います。
ネットワーク エッジ セキュリティ サービスからポリシーを削除するか、ネットワーク エッジ セキュリティ サービスを削除します。
ネットワーク エッジ セキュリティ サービスからポリシーを削除するには、次のコマンドを使用します。
gcloud compute network-edge-security-services update SERVICE_NAME \ --security-policy="" \ --region=REGION_NAME
ネットワーク エッジ セキュリティ サービスを削除するには、次のコマンドを使用します。
gcloud compute network-edge-security-services delete SERVICE_NAME \ --region=REGION_NAME
次のコマンドを使用して、セキュリティ ポリシーを削除します。
gcloud compute security-policies delete SECURITY_POLICY_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 の緩和に関するテレメトリー
Google Cloud Armor では、DDoS 攻撃を緩和する際に 3 種類のイベントログ(MITIGATION_STARTED
、MITIGATION_ONGOING
、MITIGATION_ENDED
)が生成されます。次のログフィルタを使用して、緩和策の種類別にログを表示できます。
緩和策の種類 | ログフィルタ |
---|---|
緩和開始 | resource.type="network_security_policy" jsonPayload.mitigationType="MITIGATION_STARTED" |
緩和中 | resource.type="network_security_policy" jsonPayload.mitigationType="MITIGATION_ONGOING" |
緩和終了 | resource.type="network_security_policy" jsonPayload.mitigationType="MITIGATION_ENDED" |
攻撃の緩和に関する Cloud Logging のイベントログ
次のセクションでは、イベントログのタイプごとにログ形式の例を示します。
緩和開始
@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 } } attack_sources: { top_source_asns: { asn: "ABCDEF" volume: { pps: 20000 bps: 2000000 } } top_source_asns: { asn: "UVWXYZ" volume: { pps: 20000 bps: 2000000 } } top_source_geos: { region_code: "XX" volume: { pps: 20000 bps: 2000000 } } top_source_geos: { region_code: "XY" volume: { pps: 20000 bps: 2000000 } } top_source_ips: { region_code: "xx.xx.xx.xx" volume: { pps: 20000 bps: 2000000 } } top_source_ips: { region_code: "yy.yy.yy.yy" volume: { pps: 20000 bps: 2000000 } } } }
緩和中
@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 } } attack_sources: { top_source_asns: { asn: "ABCDEF" volume: { pps: 20000 bps: 2000000 } } top_source_asns: { asn: "UVWXYZ" volume: { pps: 20000 bps: 2000000 } } top_source_geos: { region_code: "XX" volume: { pps: 20000 bps: 2000000 } } top_source_geos: { region_code: "XY" volume: { pps: 20000 bps: 2000000 } } top_source_ips: { region_code: "xx.xx.xx.xx" volume: { pps: 20000 bps: 2000000 } } top_source_ips: { region_code: "yy.yy.yy.yy" volume: { pps: 20000 bps: 2000000 } } } }
緩和完了
@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_STARTED
は PREVIEWED_MITIGATION_STARTED
になります。
これらのログを表示するには、ログ エクスプローラに移動して network_security_policy
リソースを表示します。
ログの表示方法の詳細については、ログの表示をご覧ください。
Security Command Center の検出結果
パススルー ネットワーク ロードバランサと仮想マシンをターゲットとするボリューム型 DDoS 攻撃をモニタリングして対応する際は、Security Command Center のダッシュボードを活用できます。Google Cloud Armor によって攻撃が検出されると、このダッシュボードと Google Cloud Armor カードに「ボリューム型 DDoS 攻撃の試行 - ネットワーク LB/VM」という専用の検出結果が表示されます。
検出結果には、関連するログへの直接リンクが含まれ、攻撃の把握に役立つ次の情報が提供されます。
- 攻撃された特定のリソース
- そのリソースに影響するトラフィックの量
- 攻撃の分類(UDP、TCP、SYN フラッドなど)
検出結果には攻撃のステータスが動的に反映されます。攻撃のステータスは次のログイベントに基づいています。
- 緩和開始: 緩和策が開始されると検出結果が表示されます
緩和中: 緩和が進むにつれて検出結果が自動的に更新され、進行状況が通知されます。次のスクリーンショットは、有効な検出結果の例を示しています。
有効な Security Command Center の検出結果(クリックして拡大) 緩和終了: 攻撃が収まって緩和策が終了すると、検出結果は無効になり、イベントの記録が表示されます。次のスクリーンショットは、無効になった検出結果の例を示しています。
無効になった Security Command Center の検出結果(クリックして拡大)
次のステップ
- ネットワーク エッジ セキュリティ ポリシーの構成方法を確認する
- Cloud Armor Enterprise について確認する