ファイアウォール ポリシー ルールのバッチ アップデートを構成する

このドキュメントでは、ネットワーク管理者が YAML 構成ファイルを使用して、複数の階層型ファイアウォール ポリシールールとネットワーク ファイアウォール ポリシールールをバッチ アップデートする方法について説明します。バッチ アップデート プロセスでは、ルールを作成または YAML ファイルにエクスポートし、ファイルを変更してから、Google Cloud CLI または Compute Engine API を使用して変更を適用します。

REST API を使用してファイアウォール ポリシールールをバッチ アップデートする場合は、patch メソッドを使用します。patch メソッドを使用すると、リクエストに rules フィールドを指定して、ファイアウォール ポリシー内のすべてのルールを置き換えることができます。YAML ファイルを作成する必要はありません。patch メソッドを使用する場合は、優先度が最も低いデフォルトの goto_next ルールを保持します。

gcloud CLI を使用してファイアウォール ポリシールールを一括更新する場合は、次の gcloud CLI コマンドを使用します。

  • export-rules: ファイアウォール ポリシールールの構成 を YAML ファイルにエクスポートできます。YAML ファイルで、要件に応じてファイアウォール ポリシールールの構成を追加、変更、削除できます 。

  • import-rules: 変更されたファイアウォール ポリシールール 構成ファイルをインポートできます。 これにより、指定したファイアウォール ポリシーの既存のルールが置き換えられます。

始める前に、 一括更新の概要のコンセプトを確認してください。

始める前に

バッチ アップデートを実行するには、次のツールがインストールされ、構成されていることを確認してください。

  • Google Cloud CLI
  • Compute Engine API
  • まだ設定していない場合は、認証を設定します。 認証とは、 Cloud de Confiance by S3NS サービスと API にアクセスするために ID を確認するプロセスです。 ローカル開発環境からコードまたはサンプルを実行するには、このセクションで説明するように Compute Engine に対する認証を行います。

コンソール

コンソールを使用してサービスと API にアクセスする場合、認証を設定する必要はありません。 Cloud de Confiance Cloud de Confiance by S3NS

gcloud

  1. Google Cloud CLI を インストールしたら、 次のコマンドを実行して初期化します。

    
    gcloud init
    
    

    外部 ID プロバイダ(IdP)を使用している場合は、まず 連携 ID を使用して gcloud CLI にログインする必要があります

  2. ローカル クライアントでデフォルトのリージョンとゾーン を設定します。

REST

このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

Google Cloud CLI を インストールしたら、 次のコマンドを実行して初期化します。


gcloud init

外部 ID プロバイダ(IdP)を使用している場合は、まず 連携 ID を使用して gcloud CLI にログインする必要があります

詳細については、 REST を使用して認証する認証ドキュメントをご覧ください。Cloud de Confiance by S3NS

YAML ファイルを作成する

export-rules コマンドを使用して、既存のファイアウォール ポリシールールを YAML ファイルにエクスポートできます。詳細については、ファイアウォール ポリシールールをエクスポートするをご覧ください。 エクスポートされた YAML ファイルには、優先度が最も低いデフォルトの goto_next ルール(優先度が 2147483644 以上のルール)が含まれています。これらのデフォルトの goto_next ルールを変更しないようにしてください。

ただし、export-rules コマンドを使用しない場合は、新しい YAML ファイルを手動で作成してルールを編集することもできます。新しい YAML ファイルを手動で作成するには、次の操作を行います。

  1. YAML ファイル RULES_YAML_FILE を作成します。RULES_YAML_FILE は任意のファイル名に置き換えます。

  2. YAML ファイルに rules フィールドを追加します。rules フィールドには、ファイアウォール ポリシールールのリストが含まれています。エクスポートまたはインポート形式を記述するスキーマについては、 CLOUDSDKROOT/lib/googlecloudsdk/schemas/compute/beta/FirewallPolicy.yaml をご覧ください。 CLOUDSDKROOT は、Google Cloud CLI のインストール ディレクトリです。

    YAML スキーマの例を次に示します。

        rules:
        -action: deny
         description:
         priority: 1
         disabled: false
         enable-logging: false
         kind: compute#firewallPolicyRule
         ...
        -action: goto_next
         priority: 2
         disabled: false
         enable-logging: false
         ...
      

    ファイアウォール ポリシールールを変更するには、 ファイアウォール ポリシールールを変更するをご覧ください。

ファイアウォール ポリシールールをエクスポートする

gcloud CLI または Compute Engine API を使用して更新を開始できます。

階層型ファイアウォール ポリシーをエクスポートする

階層型ファイアウォール ポリシーからファイアウォール ポリシールールをエクスポートします。

gcloud

階層型ファイアウォール ポリシーからルールをエクスポートするには、 gcloud compute firewall-policies export-rules コマンドを使用します。

gcloud compute firewall-policies export-rules FIREWALL_POLICY \
    --destination=DESTINATION \
    --organization=ORGANIZATION

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

  • FIREWALL_POLICY: ルールをエクスポートする階層型ファイアウォール ポリシーの略称または ID
  • DESTINATION: 構成がエクスポートされる YAML ファイルのパス
  • ORGANIZATION: 組織ファイアウォール ポリシーを更新する組織。FIREWALL_POLICY が略称の場合は、設定する必要があります。

API

階層型ファイアウォール ポリシーから既存のルールをエクスポートするには、Compute Engine API の firewallPolicies.get メソッド を使用します。

  GET https://compute.googleapis.com/compute/v1/locations/global/firewallPolicy/FIREWALL_POLICY_NAME
  

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

ネットワーク ファイアウォール ポリシーをエクスポートする

ネットワーク ファイアウォール ポリシーからファイアウォール ルールをエクスポートします。

gcloud

ネットワーク ファイアウォール ポリシールールの構成をファイルにエクスポートするには、 gcloud compute network-firewall-policies export-rules コマンドを使用します。

gcloud compute network-firewall-policies export-rules FIREWALL_POLICY \
    --destination=RULES_YAML_FILE_PATH \
    --global | --region=REGION

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

  • FIREWALL_POLICY: ルールをエクスポートするネットワーク ファイアウォール ポリシーの名前
  • RULES_YAML_FILE_PATH: 構成がエクスポートされる YAML ファイルのパス
  • REGION: グローバル ポリシーの場合は --global、リージョン ポリシーの場合は REGION を指定します。

API

グローバル ネットワーク ファイアウォール ポリシーから既存のルールをエクスポートするには、Compute Engine API の networkFirewallPolicies.get メソッド を使用します。

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT/global/firewallPolicies/FIREWALL_POLICY_NAME
   

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

  • PROJECT: オブジェクトの ID
  • FIREWALL_POLICY_NAME: エクスポートするファイアウォール ポリシーの名前

リージョン ネットワーク ファイアウォール ポリシーから既存のルールをエクスポートするには、Compute Engine API の regionNetworkFirewallPolicies.get メソッド を使用します。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME

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

  • PROJECT: オブジェクトの ID
  • REGION: ファイアウォール ポリシールールのリージョン
  • FIREWALL_POLICY_NAME: エクスポートするファイアウォール ポリシーの名前

このリクエストは、 ファイアウォール ポリシー リソースの定義を返します。

ファイアウォール ポリシールールを変更する

前のセクションでエクスポートしたファイアウォール ポリシールールを変更します。

  1. エクスポートしたファイルを開きます。例: RULES_YAML_FILE

  2. 次の例に示すように、rules フィールドを追加します。

        rules:
         -action: allow
          description: test-rule1
          direction: INGRESS
          disabled: false
          enableLogging: false
          kind: compute#firewallPolicyRule
      

  3. actiondirectionpriority などの追加の構成フィールドを追加します。基本的な YAML ファイルの例を次に示します。

        rules:
         -action: allow
          description: test-rule1
          direction: INGRESS
          disabled: false
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            layer4Configs:
            -ipProtocol: all
            srcIpRanges:
            -192.0.2.0/24
          priority: 1
          ruleTupleCount: 2
         -action: goto_next
          description: default egress rule
          direction: EGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            destIpRanges:
            -::/0
            layer4Configs:
            -ipProtocol: all
          priority: 2147483644
          ruleTupleCount: 2
         -action: goto_next
          description: default ingress rule
          direction: INGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            layer4Configs:
            -ipProtocol: all
            srcIpRanges:
            -::/0
          priority: 2147483645
          ruleTupleCount: 2
         -action: goto_next
          description: default egress rule
          direction: EGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            destIpRanges:
            -198.51.100.0/24
            layer4Configs:
            -ipProtocol: all
          priority: 2147483646
          ruleTupleCount: 2
         -action: goto_next
          description: default ingress rule
          direction: INGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            layer4Configs:
            -ipProtocol: all
            srcIpRanges:
            -192.0.2.0/24
          priority: 2147483647
          ruleTupleCount: 2
      

ファイアウォール ポリシールールをインポートする

必要な一括更新でファイルを変更したら、ルールをファイアウォール ポリシーにインポートします。変更したファイルをインポートすると、既存のファイアウォール ポリシー ルールが指定されたルールに置き換えられます。

階層型ファイアウォール ポリシールールをインポートする

ファイアウォール ルールを階層型ファイアウォール ポリシーにインポートします。

gcloud

ルールを階層型ファイアウォール ポリシーにインポートするには、 gcloud compute firewall-policies import-rules コマンドを使用します。

gcloud compute firewall-policies import-rules FIREWALL_POLICY \
    --source=RULES_YAML_FILE_PATH \
    --organization=ORGANIZATION

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

  • FIREWALL_POLICY: 更新する階層型ファイアウォール ポリシーの短い名前または ID
  • RULES_YAML_FILE_PATH: ルールをインポートする YAML ファイルのパス
  • ORGANIZATION: 組織ファイアウォール ポリシーを更新する組織。FIREWALL_POLICY が略称の場合は、設定する必要があります。

API

ファイアウォール ポリシールールをインポートするには、Compute Engine API の firewallPolicies.patch メソッド を使用します。

  PATCH https://compute.googleapis.com/compute/v1/locations/global/firewallPolicy/FIREWALL_POLICY_NAME
  

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

ネットワーク ファイアウォール ポリシーをインポートする

変更したファイアウォール ルール YAML ファイルをネットワーク ファイアウォール ポリシーにインポートします。

gcloud

ルールをネットワーク ファイアウォール ポリシーにインポートするには、 gcloud compute network-firewall-policies import-rules コマンドを使用します。

gcloud compute network-firewall-policies import-rules FIREWALL_POLICY \
    --source=RULES_YAML_FILE_PATH \
    --global | --region=REGION

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

  • FIREWALL_POLICY: 更新するネットワーク ファイアウォール ポリシーの名前
  • RULES_YAML_FILE_PATH: ルールをインポートするために選択したパス
  • REGION: グローバル ポリシーの場合は --global、リージョン ポリシーの場合は REGION を指定します。

API

変更したネットワーク ファイアウォール ポリシールールをインポートするには、Compute Engine API の networkFirewallPolicies.patch メソッド を使用します。

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/global/firewallPolicy/FIREWALL_POLICY_NAME
  

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

  • PROJECT: ネットワーク ファイアウォール ポリシールールのプロジェクト ID
  • FIREWALL_POLICY_NAME: エクスポートするネットワーク ファイアウォール ポリシーの名前

変更したリージョン ネットワーク ファイアウォール ポリシールールをインポートするには、 regionNetworkFirewallPolicies.patch メソッド を Compute Engine API で使用します。

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME
   

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

  • PROJECT: リージョン ネットワーク ファイアウォール ポリシールールのプロジェクト ID
  • REGION: ファイアウォール ポリシールールのリージョン
  • FIREWALL_POLICY_NAME: エクスポートするファイアウォール ポリシーの名前

    このリクエストは、 ネットワーク ファイアウォール ポリシー リソースの定義を返します。

次のステップ