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

このページでは、すべてのファイアウォール ポリシー ルール(階層型ファイアウォール ポリシーとネットワーク ファイアウォール ポリシー)のバッチ更新を構成する方法について説明します。バッチ更新を実行するには、Google Cloud CLI または Compute Engine API を使用します。

バッチ アップデートの詳細については、概要をご覧ください。

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

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

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

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

始める前に

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

コンソール

Trusted Cloud コンソールを使用してサービスと API にアクセスする場合、 Trusted Cloud 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 にログインする必要があります。

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

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: エクスポートするネットワーク ファイアウォール ポリシーの名前

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

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

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

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

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

次のステップ