ネットワーク エッジのセキュリティ ポリシーを構成する

ネットワーク エッジのセキュリティ ポリシーを使用すると、Google のネットワークのエッジでトラフィックを許可またはブロックするルールを構成できます。ネットワーク エッジのセキュリティ ポリシーは、次のフロントエンド タイプに対して構成できます。

  • 外部パススルー ネットワーク ロードバランサ
  • プロトコル転送
  • パブリック IP アドレスを持つ VM

ネットワーク エッジ セキュリティ ポリシーを使用すると、リソースを消費せずに、Cloud 次世代ファイアウォールと同様に送信元と宛先の IP アドレス範囲でフィルタリングできます。さらに、ネットワーク エッジのセキュリティ ポリシーは、バイト オフセット フィルタリングをサポートする唯一のセキュリティ ポリシー タイプです。

ネットワーク エッジ セキュリティ ポリシーのカスタムルールを構成する

バックエンドやエッジのセキュリティ ポリシーと同様に、ネットワーク エッジのセキュリティ ポリシーのカスタムルールを構成できます。次の例では、ネットワーク エッジ セキュリティ ポリシーを作成し、特定の送信元 IP アドレス範囲からのトラフィックのみを許可するカスタムルールを構成して、そのポリシーをバックエンド サービスに接続します。

ネットワーク エッジ セキュリティ ポリシーは、バイト オフセット フィルタリングなどの一意のフィルタを含む、いくつかの Google Cloud Armor フィルタをサポートしています。ネットワーク エッジ セキュリティ ポリシーでサポートされる機能の詳細については、セキュリティ ポリシーの概要をご覧ください。さらに、ネットワーク エッジ セキュリティ ポリシーは、プレビュー モードでデプロイできます。

続行する前に、Google Cloud Armor Enterprise に登録して、高度なネットワーク DDoS 対策を構成する必要があります。アクティブな Cloud Armor Enterprise サブスクリプションと高度なネットワーク DDoS 保護がないと、ネットワーク エッジのセキュリティ ポリシーにカスタムルールを使用できません。

カスタムルールを構成する手順は次のとおりです。

  1. リージョン REGIONPOLICY_NAME という名前の新しいネットワーク エッジ セキュリティ ポリシーを作成します。高度なネットワーク DDoS 対策を有効にしたときに使用した同じセキュリティ ポリシーは使用しないでください。

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION
    
  2. ポリシーのデフォルト ルールallow から deny に変更し、他のルールで明示的に許可されていないトラフィックをブロックします。

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION
    
  3. 同じセキュリティ ポリシーで、ソース IP アドレス範囲 RANGE のリクエストを許可する優先度 RULE_PRIORITY のルールを追加します。

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-src-ip-ranges=RANGE \
       --action=allow \
       --region=REGION
    
  4. セキュリティ ポリシーをバックエンド サービス BACKEND_SERVICE_NAME に関連付けます。

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION
    

    あるいは、次のコマンドを使用してセキュリティ ポリシーを単一の VM インスタンスに関連付けることもできます。

    gcloud beta compute instances network-interfaces update VM_NAME \
       --security-policy=POLICY_NAME \
       --security-policy-region=REGION \
       --network-interface=NETWORK_INTERFACE \
       --zone=ZONE_NAME
    
  5. 省略可: 次のコマンドを使用して、セキュリティ ポリシーが接続されていることを確認できます。成功すると、出力の securityPolicy フィールドにセキュリティ ポリシー リソースへのリンクが表示されます。

    gcloud compute instances describe VM_NAME --zone=ZONE_NAME
    

上の例を作成したら、引き続き security-policies rules update コマンドを使用して、ネットワーク エッジ セキュリティ ポリシーにルールを追加できます。ネットワーク エッジのセキュリティ ポリシーでサポートされるフィールドは次のとおりです。

フィールド フラグ 説明
送信元 IP アドレス --network-src-ip-ranges ソース IPv4/6 アドレスまたは CIDR プレフィックス(標準テキスト形式)。
ソースのポート --network-src-ports TCP / UDP / SCTP の送信元ポート番号。各要素は、(16 ビット)数値(「80」など)または範囲(「0-1023」など)です。
ソースのリージョン コード --network-src-region-codes 2 文字の国コード(ISO 3166-1 alpha-2)。
送信元 ASN --network-src-asns 送信元 IP アドレスの BGP 自律システム番号。
宛先 IP アドレス範囲 --network-dest-ip-ranges 送信先 IPv4/6 アドレスまたは CIDR プレフィックス(標準のテキスト形式)。
宛先ポート --network-dest-ports TCP / UDP / SCTP の宛先ポート番号。各要素には、(16 ビット)数値(「80」など)または範囲(「0-1023」など)を使用できます。
IP アドレス プロトコル --network-ip-protocols IPv4 プロトコル / IPv6 の次のヘッダー(拡張ヘッダーの後)。各要素には、8 ビットの数値(「6」など)、範囲(「253-254」など)、または次のプロトコル名のいずれかを使用できます。
  • tcp
  • udp
  • icmp
  • esp
  • ah
  • ipip
  • sctp
バイト オフセット フィルタリング 該当なし 次のセクションをご覧ください。

ネットワーク エッジのセキュリティ ポリシーで --network-src-region-codes フラグを使用すると、米国の包括的な制裁措置の対象となる次の地域のリージョン コードを使用できます。

地域 割り当てられたコード
クリミア XC
いわゆるドネツク人民共和国(DNR)と
いわゆるルハンスク人民共和国(LNR)
XD

バイト オフセット フィルタリングを構成する

外部パススルー ネットワーク ロードバランサ、プロトコル転送、またはパブリック IP アドレスを持つ VM を使用する場合、Google Cloud Armor は上り(内向き)トラフィックに対して詳細なパケット検査を行うことができます。特定の TCP / UDP バイト オフセット値と一致するセキュリティ ポリシー ルールを構成できます。構成された値が存在する場合、または存在しない場合にルール アクションを適用するようにルールを構成できます。

次の例では、値が存在する場合にトラフィックを許可し、他のすべてのトラフィックを拒否します。

  1. 新しいネットワーク エッジ セキュリティ ポリシーを作成します。既存のネットワーク エッジ セキュリティ ポリシーがある場合は、この手順をスキップできます。

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION_NAME
    
  2. 次のパラメータを使用して、ユーザー定義フィールドを追加するようにネットワーク エッジ セキュリティ ポリシーを更新します。

    • Base: 値は IPv4IPv6TCPUDP のいずれかです。
    • Offset: ベースからのフィールドのオフセット(バイト単位)
    • Size: フィールドのサイズ(バイト単位、最大値は 4
    • Mask: 一致するフィールドのビットマスク

    ポリシーごとに最大 8 つのユーザー定義フィールドを使用できます。次の例では、2 つのユーザー定義フィールドを作成します。

    gcloud compute security-policies add-user-defined-field POLICY_NAME \
       --user-defined-field-name=USER_DEFINED_FIELD_NAME_TCP \
       --base=TCP \
       --offset=OFFSET \
       --size=SIZE \
       --mask=MASK \
       --region=REGION_NAME
    
    gcloud compute security-policies add-user-defined-field POLICY_NAME \
       --user-defined-field-name=USER_DEFINED_FIELD_NAME_UDP \
       --base=UDP \
       --offset=OFFSET \
       --size=SIZE \
       --mask=MASK \
       --region=REGION_NAME
    
  3. ネットワーク エッジ セキュリティ ポリシーで、前の例で使用したのと同じカスタム フィールド名のルールを追加します。VALUE1VALUE2 は、許可するトラフィックと一致する値に置き換えます。

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-user-defined-fields="USER_DEFINED_FIELD_NAME_TCP;VALUE1:VALUE2,USER_DEFINED_FIELD_NAME_UDP;VALUE1:VALUE2,USER_DEFINED_FIELD_NAME_UDP;VALUE1,VALUE2" \
       --action=allow \
       --region=REGION_NAME
    
  4. ネットワーク エッジのセキュリティ ポリシーのデフォルト ルールを拒否ルールとして設定します。セキュリティ ポリシーのデフォルト ルールがすでに拒否ルールになっている場合は、この手順をスキップできます。

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION_NAME
    
  5. ネットワーク エッジ セキュリティ ポリシーを外部パススルー ネットワーク ロードバランサのバックエンド サービスに関連付けます。

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION_NAME
    

モニタリング

Google Cloud Armor は、ネットワーク エッジのセキュリティ ポリシー ルールごとに次の指標を Cloud Monitoring にエクスポートします。

  • packet_count
    • Blocked: allow または deny ルール アクションの
      結果を表すブール値
    • Count: packet_count の値が 10,000 パケットごとに 1 回増分されます。たとえば、packet_count 値が 5 の場合、少なくとも 50,000 パケットがルールに一致することを意味します。
  • preview_packet_count: packet_count と同じ。プレビュー モードのルールに使用されます。

ネットワーク エッジ セキュリティ ポリシーの指標を表示するには、まず Network Security APInetworksecurity.googleapis.com)を有効にする必要があります。この権限は、Compute セキュリティ管理者のロールroles/compute.securityAdmin)に含まれています。Network Security API を有効にすると、Google Cloud コンソールの Monitoring で指標を表示できます。

[Monitoring] に移動