階層型ファイアウォール ポリシーとルールを管理する

階層型ファイアウォール ポリシーを使用すると、ネットワーク トラフィックをきめ細かく制御できます。このページでは、階層型ファイアウォール ポリシーとそのルールを管理して Google Cloud リソースを保護する方法について説明します。

このページを読む前に、階層型ファイアウォール ポリシーの概要で説明されているコンセプトを理解しておいてください。階層型ファイアウォール ポリシーの実装例については、階層型ファイアウォール ポリシーの例をご覧ください。

ファイアウォール ポリシーのタスク

このセクションでは、階層型ファイアウォール ポリシーの管理方法について説明します。

このセクションに記載されているタスクの結果として発生するオペレーションの進行状況を確認するには、各タスクに必要な権限またはロールに加えて、IAM プリンシパルに次の権限またはロールがあることを確認してください。

ポリシーの説明を取得する

ポリシー ルールや関連するルール属性など、階層型ファイアウォール ポリシーの詳細を表示できます。これらのルール属性はすべて、ルール属性の割り当ての一部としてカウントされます。詳細については、ファイアウォール ポリシーごとの表の「階層型ファイアウォール ポリシーごとのルール属性」をご覧ください。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、組織 ID またはポリシーを含むフォルダを選択します。

  3. ポリシーをクリックします。

gcloud

gcloud compute firewall-policies describe POLICY_NAME \
    --organization ORG_ID

リスト型ポリシー

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、組織 ID またはポリシーを含むフォルダを選択します。

    組織の場合は、[この組織に関連付けられているファイアウォール ポリシー] セクションに関連付けられているポリシーが表示されます。[この組織内にあるファイアウォール ポリシー] セクションには、組織が所有するポリシーが一覧表示されます。

    フォルダの場合は、[このフォルダに関連付けられている、またはこのフォルダに継承されているファイアウォール ポリシー] セクションに、フォルダに関連付けられているポリシーまたは継承されているポリシーが表示されます。[このフォルダ内にあるファイアウォール ポリシー] セクションには、フォルダによって所有されているポリシーが一覧表示されます。

gcloud

gcloud compute firewall-policies list \
    [--organization ORG_ID | --folder FOLDER_ID]

リソースの関連付けを一覧表示する

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、組織 ID またはポリシーを含むフォルダを選択します。

  3. 選択したリソース(組織またはフォルダ)について、関連するポリシーと継承されたポリシーのリストが表示されます。

gcloud

gcloud compute firewall-policies associations list \
    [--organization ORG_ID | --folder FOLDER_ID]

リソース間でポリシーを移動する

ポリシーを移動すると、ポリシーの親のみが変更されます。ポリシーの親を変更すると、ポリシーでルールを作成および更新できる IAM プリンシパルと、将来の関連付けを作成できる IAM プリンシパルが変更される可能性があります。

ポリシーを移動しても、既存のポリシーの関連付けやポリシー内のルールの評価は変更されません。

コンソール

この手順では Google Cloud CLI を使用します。

gcloud

次のコマンドを実行して、階層型ファイアウォール ポリシーを組織に移動します。

gcloud compute firewall-policies move POLICY_NAME \
    --organization ORG_ID

次のコマンドを実行して、階層型ファイアウォール ポリシーを組織内のフォルダに移動します。

gcloud compute firewall-policies move POLICY_NAME \
    --folder FOLDER_ID

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

  • POLICY_NAME: 移動するポリシーの略称またはシステムによって生成された名前
  • ORG_ID: ポリシーの移動先の組織 ID
  • FOLDER_ID: ポリシーの移動先のフォルダ ID

ポリシーの説明を更新する

更新できるポリシー フィールドは [説明] フィールドのみです。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、組織 ID またはポリシーを含むフォルダを選択します。

  3. ポリシーをクリックします。

  4. [編集] をクリックします。

  5. 説明を変更します。

  6. [保存] をクリックします。

gcloud

gcloud compute firewall-policies update POLICY_NAME \
    --description DESCRIPTION \
    --organization ORG_ID

関連付けを削除する

組織またはフォルダに関連付けられている階層型ファイアウォール ポリシーを変更する必要がある場合は、既存の関連付けられたポリシーを削除するのではなく、新しいポリシーを関連付けることをおすすめします。新しいポリシーを 1 つのステップで関連付けることができるため、階層型ファイアウォール ポリシーが常に組織またはフォルダに関連付けられます。

階層型ファイアウォール ポリシーと組織またはフォルダの関連付けを削除するには、このセクションで説明する手順に沿って操作します。階層型ファイアウォール ポリシーのルールは、関連付けが削除された後の新しい接続には適用されません。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、組織 ID またはポリシーを含むフォルダを選択します。

  3. ポリシーをクリックします。

  4. [関連付け] タブをクリックします。

  5. 削除する関連付けを選択します。

  6. [関連付けを削除] をクリックします。

gcloud

gcloud compute firewall-policies associations delete ASSOCIATION_NAME \
    --firewall-policy POLICY_NAME \
    --organization ORG_ID

ポリシーを削除する

階層型ファイアウォール ポリシーを削除する前に、すべての関連付けを削除する必要があります。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、組織 ID またはポリシーを含むフォルダを選択します。

  3. 削除するポリシーをクリックします。

  4. [関連付け] タブをクリックします。

  5. すべての関連付けを選択します。

  6. [関連付けを削除] をクリックします。

  7. すべての関連付けを削除したら、[削除] をクリックします。

gcloud

ポリシーを削除するには、次のコマンドを使用します。

gcloud compute firewall-policies delete POLICY_NAME \
    --organization ORG_ID

ファイアウォール ポリシー ルールのタスク

このセクションでは、階層型ファイアウォール ポリシールールの管理方法について説明します。

ポリシー間でルールのクローンを作成する

ターゲット ポリシーからすべてのルールを削除し、ソースポリシーのルールで置き換えます。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、組織 ID またはポリシーを含むフォルダを選択します。

  3. ルールのコピー元ポリシーをクリックします。

  4. 画面の上部の [クローン] をクリックします。

  5. ターゲット ポリシーの名前を指定します。

  6. 省略可: 新しいポリシーをすぐに関連付ける場合は、[続行] をクリックして [ポリシーとリソースの関連付け] セクションを開きます。

  7. [クローン] をクリックします。

gcloud

gcloud compute firewall-policies clone-rules POLICY_NAME \
    --source-firewall-policy=SOURCE_POLICY \
    --organization=ORG_ID \

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

  • POLICY_NAME: コピーされたルールを受け取るポリシー
  • SOURCE_POLICY: ルールのコピー元のポリシー。リソースの URL で指定する必要があります
  • ORG_ID: 階層型ファイアウォール ポリシーを含む組織 ID。

ルールの説明を取得する

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、組織 ID またはポリシーを含むフォルダを選択します。

  3. ポリシーをクリックします。

  4. ルールの優先度をクリックします。

gcloud

gcloud compute firewall-policies rules describe PRIORITY \
    --firewall-policy=POLICY_NAME \
    --organization=ORG_ID

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

  • POLICY_NAME: 新しいルールを含む階層型ファイアウォール ポリシーの名前。
  • ORG_ID: 階層型ファイアウォール ポリシーを含む組織 ID。

ポリシー内のすべてのルールを一覧表示する

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、組織 ID またはポリシーを含むフォルダを選択します。

  3. ポリシーをクリックします。ルールが [ファイアウォール ルール] タブに表示されます。

gcloud

gcloud compute firewall-policies list-rules POLICY_NAME \
    --organization=ORG_ID

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

  • POLICY_NAME: ルールを含む階層型ファイアウォール ポリシーの名前。
  • ORG_ID: 階層型ファイアウォール ポリシーを含む組織 ID。

ルールを更新する

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、階層型ファイアウォール ポリシーを含む組織またはフォルダを選択します。

  3. 更新するルールを含む階層型ファイアウォール ポリシーの名前をクリックします。

  4. ルールの優先度をクリックします。

  5. [編集] をクリックします。

  6. 変更するファイアウォール ルールのフィールドを変更します。各フィールドの説明については、次のいずれかをご覧ください。

  7. [保存] をクリックします。

gcloud

gcloud compute firewall-policies rules update PRIORITY \
    --firewall-policy=POLICY_NAME \
    --organization ORG_ID \
    [...other flags that you want to modify...]

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

  • PRIORITY: ルールを一意に識別する優先度番号。
  • POLICY_NAME: ルールを含むポリシーの名前。
  • ORG_ID: 階層型ファイアウォール ポリシーを含む組織 ID。

変更するフラグを指定します。フラグの説明については、次のいずれかをご覧ください。

ルールを削除する

ポリシーからルールを削除すると、ルールのターゲットとの間の新しい接続にルールが適用されなくなります。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. プロジェクト セレクタ メニューで、組織 ID またはポリシーを含むフォルダを選択します。

  3. ポリシーをクリックします。

  4. 削除するルールを選択します。

  5. [削除] をクリックします。

gcloud

gcloud compute firewall-policies rules delete PRIORITY \
    --firewall-policy=POLICY_NAME \
    --organization=ORG_ID

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

  • PRIORITY: ポリシーから削除するルールの優先度。
  • POLICY_NAME: ルールを含む階層型ファイアウォール ポリシーの名前。
  • ORG_ID: 階層型ファイアウォール ポリシーを含む組織 ID。

ネットワークで有効なファイアウォール ルールを取得する

VPC ネットワークのすべてのリージョンに適用されるすべての階層型ファイアウォール ポリシー ルール、VPC ファイアウォール ルール、グローバル ネットワーク ファイアウォール ポリシー ルールを表示できます。

コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. ファイアウォール ポリシー ルールを表示するネットワークをクリックします。

  3. [ファイアウォール] をクリックします。

  4. ファイアウォール ポリシーを開いて、このネットワークに適用されるルールを表示します。

gcloud

gcloud compute networks get-effective-firewalls NETWORK_NAME

NETWORK_NAME は、有効なルールを表示するネットワークに置き換えます。

また、ネットワークの有効なファイアウォール ルールは [ファイアウォール] ページでも確認できます。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. ファイアウォール ポリシーは、[このプロジェクトによって継承されるファイアウォール ポリシー] セクションに表示されます。

  3. ファイアウォール ポリシーをクリックして、このネットワークに適用されるルールを表示します。

VM インターフェースで有効なファイアウォール ルールを取得する

Compute Engine VM のネットワーク インターフェースに適用されるすべてのファイアウォール ルール(適用可能なすべてのファイアウォール ポリシーと VPC ファイアウォール ルールから)を表示できます。

コンソール

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. プロジェクト セレクタ メニューで、VM を含むプロジェクトを選択します。

  3. VM をクリックします。

  4. [ネットワーク インターフェース] で、インターフェースをクリックします。

  5. 有効なファイアウォール ルールは、[ネットワーク構成分析] セクションの [ファイアウォール] タブに表示されます。

gcloud

gcloud compute instances network-interfaces get-effective-firewalls INSTANCE_NAME \
    [--network-interface INTERFACE] \
    [--zone ZONE]

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

  • INSTANCE_NAME: 有効なルールを表示する VM。インターフェースが指定されていない場合、コマンドはプライマリ インターフェース(nic0)のルールを返します。
  • INTERFACE: 有効なルールを表示する VM インターフェース。デフォルト値は nic0 です。
  • ZONE: VM のゾーン。目的のゾーンがすでにデフォルトとして選択されている場合、この行は省略可能です。

トラブルシューティング

このセクションでは、階層型ファイアウォール ポリシーの作成時に発生する可能性のあるエラー メッセージについて説明します。

  • FirewallPolicy may not specify a name. One will be provided.

    ポリシー名を指定できません。階層型ファイアウォール ポリシーの「名前」は、ポリシーの作成時に Google Cloud によって生成される数値 ID です。ただし、わかりやすい略称を指定することもできます。これは、多くのコンテキストでエイリアスとして機能します。

  • FirewallPolicy may not specify associations on creation.

    関連付けは、階層のファイアウォール ポリシーの作成後にのみ作成できます。

  • Can't move firewall policy to a different organization.

    階層型ファイアウォール ポリシーの移動は、同じ組織内で行われる必要があります。

  • The attachment already has an association. Please set the option of replacing existing association to true if you want to replace the old one.

    リソースがすでに階層型ファイアウォール ポリシーに接続されている場合、既存の関連付けを置き換えるオプションが true に設定されていない限り、接続のオペレーションは失敗します。

  • Can't have rules with the same priorities.

    ルールの優先度は、階層型ファイアウォール ポリシー内で一意にする必要があります。

  • Direction must be specified for a firewall policy rule.

    REST リクエストを直接送信して階層型ファイアウォール ポリシー ルールを作成する場合は、ルールの方向を指定する必要があります。Google Cloud CLI を使用していて、方向を指定しない場合、デフォルトは INGRESS です。

  • Can't specify enable_logging on a goto_next rule.

    goto_next アクションのルールでは、ファイアウォールのロギングは許可されません。goto_next アクションがファイアウォール ポリシーの評価順序を表すために使用され、「許可」や「拒否」などのターミナル アクションではないためです。

  • Must specify at least one destination on Firewall policy rule.

    ファイアウォール ポリシールールの layer4Configs フラグには、プロトコル、またはプロトコルと宛先ポートの組を 1 つ以上指定する必要があります。

    ファイアウォール ポリシー ルールのトラブルシューティングの詳細については、VPC ファイアウォール ルールのトラブルシューティングをご覧ください。

次のステップ