階層型ファイアウォール ポリシーの例

このページでは、階層的なファイアウォール ポリシーの実装例について説明します。このドキュメントは、階層型ファイアウォール ポリシーで説明されているコンセプトを理解していることを前提としています。

例 1: すべての VM へのアクセスをプローバーに許可する

この使用例では、特定の IP アドレス(10.100.0.1)から特定の宛先ポート(123)へのプローブを使用して、組織内のすべての仮想マシン(VM)インスタンスをスキャンし、インベントリ化する必要があります。組織のセキュリティ管理者は、ネットワーク管理者や他のセキュリティ管理者が組織内の任意の VM インスタンスでそのポートをブロックできないようにします。

この例では、フォルダレベルのファイアウォール ポリシーがデプロイされていないことを前提としています。

このユースケースの構成設定を次の図に示します。

すべての VM へのアクセスをプローバーに許可する
すべての VM へのアクセスをプローバーに許可する

VM に適用される有効なポリシー

この例では、階層全体でルールを評価した後の有効な VM ファイアウォール ポリシーは次のようになります。

上り(内向き)接続

  • ポリシーで定義されているように、送信元 IP 10.100.0.1 と宛先ポート 123 の上り(内向き)接続が許可されます。組織ポリシーが一致すると、プローブ接続が許可され、階層ではそれ以上ルールの評価は行われません。

  • 送信元 IP 10.100.0.1 と宛先ポート 123 以外の上り(内向き)接続の場合、一致はありません。したがって、VPC ファイアウォール ルールのデフォルトの上り(内向き)ルールが適用され、接続が拒否されます。

下り(外向き)接続

  • 階層で定義されたルール全体に一致するものはありません。したがって、VPC ファイアウォール ルールのデフォルトの下り(外向き)ルールが適用され、下り(外向き)接続が許可されます。

構成方法

  1. ルールを含ファイアウォール ポリシーを作成します。

    gcloud compute firewall-policies create \
         --organization=123456789012 \
         --short-name="example-firewall-policy" \
         --description="rules that apply to all VMs in the organization"
    
  2. ファイアウォール ポリシーにルールを追加します。

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-scan-probe" \
        --layer4-configs=tcp:123 \
        --firewall-policy=example-firewall-policy \
        --organization=123456789012 \
        --src-ip-ranges=10.100.0.1/32
  3. ファイアウォール ポリシーを組織ノードに関連付けます。

    gcloud compute firewall-policies associations create \
        --firewall-policy=example-firewall-policy \
        --organization=123456789012

例 2: 特定のポートへの接続を除くすべての外部接続を拒否する

このユースケースでは、ファイアウォール ポリシーによって、宛先ポート 8044322 を除くすべての外部インターネット ソースからの接続がブロックされます。8044322 以外のポートでの上り(内向き)インターネット接続は、ファイアウォール ルールが VPC ネットワーク レベルであってもブロックされます。ポート 8044322 での接続の場合、ポリシーはそれぞれの VPC ネットワークで適用する動作を VPC セキュリティ管理者に委任します。

このユースケースの構成設定を次の図に示します。

特定のポートを除くすべての外部接続を拒否する
特定のポートを除くすべての外部接続を拒否する

VM に適用される有効なポリシー

この例では、階層全体でルールを評価した後の有効な VM ファイアウォール ポリシーは次のようになります。

上り(内向き)接続

  • 10.0.0.0/8 からの上り(内向き)接続は、優先度が最も高い組織レベルのルール delegate-internal-traffic と一致し、VPC ネットワーク レベルで構成されたファイアウォール ルールに対して評価される組織ポリシーの残りのルールをバイパスします。VPC ファイアウォール ルールでは、10.2.0.0/16 からの接続が許可され、残りの接続は暗黙の上り(内向き)ルール(deny)に対して評価されます。

  • 宛先ポート 2280443 の送信元 IP 範囲が 10.0.0.0/8 でない上り(内向き)接続は、次のレベルに委任されます。ポート 80443 は許可されていますが、22 は許可されていません。

  • その他の接続はすべてブロックされます。

下り(外向き)接続

  • 階層で定義されたルール全体に一致するものはありません。したがって、VPC ファイアウォール ルールのデフォルトの下り(外向き)ルールが適用され、下り(外向き)接続が許可されます。

構成方法

  1. ルールを含ファイアウォール ポリシーを作成します。

    gcloud compute firewall-policies create \
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --description="rules that apply to all VMs in the organization"
    
  2. 内部接続をプロジェクト オーナーに委任するルールを追加します。

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-internal-traffic" \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy" \
        --src-ip-ranges=10.0.0.0/8
    
  3. 外部ポート 80 / 443 / 22 外部接続ルールをプロジェクト オーナーに対して委任するルールを追加します。

    gcloud compute firewall-policies rules create 2000 \
        --action=goto_next \
        --description="delegate-external-traffic-spec-ports" \
        --layer4-configs=tcp:80,tcp:443,tcp:22 \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy"
  4. 他の外部接続をすべて拒否するルールを追加します。

    gcloud compute firewall-policies rules create 3000 \
        --action=deny \
        --description="block-other-external-traffic-spec-ports" \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy" \
        --src-ip-ranges=0.0.0.0/0
    
  5. ファイアウォール ポリシーを組織ノードに関連付けます。

    gcloud compute firewall-policies associations create \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy"
  6. プロジェクトで、指定したサブネットからの内部接続を許可するファイアウォール ルールを追加します。

    gcloud compute firewall-rules create allow-internal-traffic \
        --action=allow \
        --priority=1000 \
        --source-ranges=10.2.0.0/16
    
  7. プロジェクトで、外部 TCP 80 / 443 接続を許可するファイアウォール ルールを追加します。

    gcloud compute firewall-rules create allow-external-traffic \
        --action=allow \
        --priority=2000 \
        --rules=tcp:80,tcp:443
    

例 3: 特定の VPC ネットワークからの下り(外向き)接続を拒否する

このユースケースでは、組織のセキュリティ管理者は、VPC ネットワーク myvpc を起点とする接続を除き、どの VPC ネットワークでも下り(外向き)接続を許可しません。管理者は、公開サーバー 203.0.113.1 への下り(外向き)を myvpc セキュリティ管理者に委任します。

この例では、フォルダレベルのファイアウォール ポリシーがデプロイされていないことを前提としています。このユースケースの構成設定を次の図に示します。

特定のネットワーク以外の下り(外向き)接続を拒否する
特定のネットワーク以外の下り(外向き)接続を拒否する

VM に適用される有効なポリシー

この例では、階層全体でルールを評価した後の有効な VM ファイアウォール ポリシーは次のようになります。

上り(内向き)接続

  • 階層で定義されたルール全体に一致するものはありません。したがって、VPC ファイアウォール ルールでは、デフォルトの上り(内向き)ルールが適用され、上り(内向き)接続を拒否します。

下り(外向き)接続

  • 203.0.113.1 宛てのすべての下り(外向き)接続が許可されます。残りの接続は拒否されます。203.0.113.1 宛ての下り(外向き)接続はすべて delegate-egress-my-vpc ルールと一致し、組織ポリシーの残りのルールはすべて無視されます。

  • 下り(外向き)接続は、myvpc で構成されているファイアウォール ルールと評価されます。デフォルト ルールでは、下り(外向き)接続が許可されます。組織レベルのポリシーの block-egress-traffic-sepc-ports ルールでは、残りの接続を拒否します。

構成方法

  1. ルールを含ファイアウォール ポリシーを作成します。

    gcloud compute firewall-policies create \
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --description="rules that apply to all VMs in the organization"
    
  2. 特定の下り(外向き)接続を委任するルールを追加します。

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-egress-myvpc" \
        --dest-ip-ranges=203.0.113.1/32
        --direction=egress
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --target-resources=projects/PROJECT_ID/networks/myvpc
    
  3. 他の下り(外向き)接続をすべて拒否するルールを追加します。

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description="block-egress-external-traffic-spec-ports" \
        --direction=egress \
        --dest-ip-ranges=0.0.0.0/0 \
        --organization=123456789012 \
        --short-name="example-firewall-policy"
  4. ファイアウォール ポリシーを組織ノードに関連付けます。

    gcloud compute firewall-policies associations create \
        --organization=123456789012 \
        --short-name="example-firewall-policy"

例 4: 組織全体のルールとフォルダ固有のルールを構成する

このユースケースでは、セキュリティ管理者は、許可リスト範囲 203.0.113.0/24 からの VM を除き、組織内の VM への上り(内向き)接続を許可しません。管理者は、203.0.113.0/24 からセキュリティ管理者への接続の処理について、フォルダレベルでさらに決定します。

次の 2 つのフォルダがあります。

  • Folder1。ポリシーではバックエンド VM のポート 80443 のみが許可され、残りのポートはブロックされます。
  • Folder2。Folder2 の VM が IP アドレス 203.0.113.1 からの宛先ポートをブロックできないようにポリシーが適用されます。Folder2 セキュリティ管理者は他の決定を VPC ネットワーク管理者に委任します。このセキュリティ管理者はポート 8044322 を開き、残りのポートを拒否します。

このユースケースの構成設定を次の図に示します。

組織全体のルールとフォルダ固有のルール
組織全体のルールとフォルダ固有のルール

VM に適用される有効なポリシー

この例では、階層全体でルールを評価した後の有効な VM ファイアウォール ポリシーは次のようになります。

my-vpc に属する VM の場合

  • 宛先ポート TCP が 80443203.0.113.0/24 からの上り(内向き)接続はすべて許可されます。他の上り(内向き)接続は拒否されます。

  • 上位レベルのファイアウォール ルールに一致しないため、適用される VPC ファイアウォール ルールに従って、すべての下り(外向き)接続が受け入れられます。

vpc2 に属する VM の場合

  • 203.0.113.1 からのすべての上り(内向き)接続が許可されます。203.0.113.1 以外の 203.0.113.0/24 ソースからの上り(内向き)接続は、ポート 8044322 に対してのみ許可されます。他のすべての上り(内向き)接続は拒否されます。

  • 上位レベルのファイアウォール ルールに一致しないため、適用される VPC ファイアウォール ルールに従って、すべての下り(外向き)接続が受け入れられます。

構成方法

  1. 組織ポリシーを作成するためのファイアウォール ポリシーを作成します。

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --description="rules that apply to all VMs in the organization"
    
  2. 203.0.113.0/24 からプロジェクト オーナーへの上り(内向き)を委任するルールを追加します。

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-ingress" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --src-ip-ranges=203.0.113.0/24
    
  3. 他の外部接続をすべて拒否するルールを追加します。

    gcloud compute firewall-policies rules create 2000 \
        --action=deny
        --description="block-ingress-external-traffic"
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --src-ip-ranges=0.0.0.0/0
    
  4. ファイアウォール ポリシーを組織ノードに関連付けます。

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a"
  5. Folder1 のルールを含むファイアウォール ポリシーを作成します。

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --description="rules that apply to all VMs under Folder1"
    
  6. すべての HTTP(S) 上り(内向き)を許可するルールを追加します。

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-http-s-ingress" \
        --layer4-configs=tcp:80,tcp:443 \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1"
  7. 他のすべてのポート / プロトコルで上り(内向き)を拒否するルールを追加します。

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description="block-ingress-external-traffic" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --src-ip-ranges=0.0.0.0/0
  8. ファイアウォール ポリシーを Folder1 に関連付けます。

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --folder=200000000000
  9. Folder2 のルールを含むセキュリティ ポリシーを作成します。

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --description="rules that apply to all VMs under Folder2"
  10. 203.0.113.1 からの上り(内向き)を許可するルールを追加します。

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-vul-scan-ingress" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --src-ip-ranges=203.0.113.1/32
  11. ファイアウォール ポリシーを Folder2 に関連付けます。

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --folder=300000000000
  12. HTTP(S) 接続の上り(内向き)を許可するファイアウォール ルールを追加します。

    gcloud compute firewall-rules create allow-internal-traffic \
        --action=allow \
        --rules=tcp:80,tcp:443,tcp:22
    

次のステップ