このページでは、すべてのファイアウォール ポリシー ルール(階層型ファイアウォール ポリシーとネットワーク ファイアウォール ポリシー)のバッチ更新を構成する方法について説明します。バッチ更新を実行するには、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
Google Cloud CLI をインストールしたら、次のコマンドを実行して初期化します。
gcloud init
外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
ローカル クライアントでデフォルトのリージョンとゾーンを設定します。
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 ファイルを手動で作成するには、次の操作を行います。
YAML ファイル
RULES_YAML_FILE
を作成します。RULES_YAML_FILE
は任意のファイル名に置き換えます。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
: ルールをエクスポートする階層型ファイアウォール ポリシーの略称または IDDESTINATION
: 構成がエクスポートされる YAML ファイルのパスORGANIZATION
: 組織ファイアウォール ポリシーを更新する組織。FIREWALL_POLICY
が短い名前の場合は設定する必要があります。
API
階層型ファイアウォール ポリシーから既存のルールをエクスポートするには、Compute Engine API の firewallPolicies.get
メソッドを使用します。
GET https://compute.googleapis.com/compute/v1/locations/global/firewallPolicy/FIREWALL_POLICY_NAME
次のように置き換えます。
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
: オブジェクトの IDFIREWALL_POLICY_NAME
: エクスポートするファイアウォール ポリシーの名前
リージョン ネットワーク ファイアウォール ポリシーから既存のルールをエクスポートするには、Compute Engine API の regionNetworkFirewallPolicies.get
メソッドを使用します。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME
次のように置き換えます。
PROJECT
: オブジェクトの IDREGION
: ファイアウォール ポリシールールのリージョンFIREWALL_POLICY_NAME
: エクスポートするファイアウォール ポリシーの名前
このリクエストは、ファイアウォール ポリシーのリソース定義を返します。
ファイアウォール ポリシールールを変更する
前のセクションでエクスポートしたファイアウォール ポリシー ルールを変更します。
書き出されたファイルを開きます。例:
RULES_YAML_FILE
次の例に示すように、
rules
フィールドを追加します。rules: -action: allow description: test-rule1 direction: INGRESS disabled: false enableLogging: false kind: compute#firewallPolicyRule
action
、direction
、priority
などの追加の構成フィールドを追加します。基本的な 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
: 更新する階層型ファイアウォール ポリシーの短い名前または IDRULES_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
次のように置き換えます。
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
: ネットワーク ファイアウォール ポリシー ルールのプロジェクト IDFIREWALL_POLICY_NAME
: エクスポートするネットワーク ファイアウォール ポリシーの名前
変更したリージョン ネットワーク ファイアウォール ポリシー ルールをインポートするには、Compute Engine API の regionNetworkFirewallPolicies.patch
メソッドを使用します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME
次のように置き換えます。
PROJECT
: リージョン ネットワーク ファイアウォール ポリシー ルールのプロジェクト IDREGION
: ファイアウォール ポリシールールのリージョンFIREWALL_POLICY_NAME
: エクスポートするファイアウォール ポリシーの名前このリクエストは、ネットワーク ファイアウォール ポリシーのリソース定義を返します。
次のステップ
- ファイアウォール ルールの概要については、ファイアウォール ポリシー ルールをご覧ください。
- ファイアウォール ポリシー ルールのバッチ更新の概要については、概要をご覧ください。