グローバル ネットワークのファイアウォール ポリシーとルールを使用する

このページは、グローバル ネットワーク ファイアウォール ポリシーの概要で説明されているコンセプトを理解していることを前提としています。

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

グローバル ネットワーク ファイアウォール ポリシーを作成する

プロジェクト内の任意の VPC ネットワークにポリシーを作成できます。ポリシーを作成したら、プロジェクト内の任意の VPC ネットワークに関連付けることができます。関連付けが終わると、関連するネットワークの VM に対してポリシーのルールがアクティブになります。

コンソール

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

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

  2. プロジェクト セレクタのリストで、組織内のプロジェクトを選択します。

  3. [ネットワーク ファイアウォール ポリシーを作成する] をクリックします。

  4. ポリシーに名前を付けます。

  5. [デプロイのスコープ] で [グローバル] を選択します。

  6. ポリシーのルールを作成する場合は、[続行] をクリックしてから、[ルールを追加] をクリックします。

    詳細については、ファイアウォール ルールの作成をご覧ください。

  7. ポリシーをネットワークに関連付けるには、[続行] をクリックしてから [関連付け] をクリックします。

    詳細については、ポリシーと VPC ネットワークの関連付けをご覧ください。

  8. [作成] をクリックします。

gcloud

gcloud compute network-firewall-policies create \
    NETWORK_FIREWALL_POLICY_NAME
    --description DESCRIPTION --global

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

  • NETWORK_FIREWALL_POLICY_NAME: ポリシーの名前。
  • DESCRIPTION: ポリシーの説明。

ポリシーをネットワークに関連付ける

ポリシーをネットワークに関連付けると、そのネットワーク内の VM のポリシールールがアクティブになります。

コンソール

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

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

  2. プロジェクト セレクタのプルダウン メニューで、ポリシーが含まれているプロジェクトを選択します。

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

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

  5. [関連付け] をクリックします。

  6. プロジェクト内のネットワークを選択します。

  7. [関連付け] をクリックします。

gcloud

gcloud compute network-firewall-policies associations create \
    --firewall-policy POLICY_NAME \
    --network NETWORK_NAME \
    [ --name ASSOCIATION_NAME ] \
    --global-firewall-policy

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

  • POLICY_NAME: ポリシーの略称またはシステムによって生成された名前。
  • NETWORK_NAME: ネットワークの名前。
  • ASSOCIATION_NAME: 関連付けのオプションの名前。指定しない場合、名前は「organization ORG_ID」または「folder FOLDER_ID」に設定されます。

グローバル ネットワーク ファイアウォール ポリシーの情報を取得する

すべてのファイアウォール ルールを含む、ポリシーのすべての詳細を表示できます。また、ポリシー内のすべてのルールにある属性も確認できます。この属性は、ポリシーごとの上限としてカウントされます。

コンソール

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

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

  2. プロジェクト セレクタのプルダウン メニューで、グローバル ネットワーク ファイアウォール ポリシーを含むプロジェクトを選択します。

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

gcloud

gcloud compute firewall-policies describe POLICY_NAME \
    --global

グローバル ネットワーク ファイアウォール ポリシーの説明を更新する

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

コンソール

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

    [ファイアウォール] ページに移動

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

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

  4. [説明] フィールドのテキストを変更します。

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

gcloud

gcloud compute network-firewall-policies update POLICY_NAME \
    --description DESCRIPTION \
    --global

グローバル ネットワーク ファイアウォール ポリシーを一覧表示する

プロジェクトで利用可能なポリシーのリストを表示できます。

コンソール

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

    [ファイアウォール] ページに移動

  2. プロジェクト セレクタのプルダウン メニューで、ポリシーが含まれているプロジェクトを選択します。

    [ネットワーク ファイアウォール ポリシー] セクションに、プロジェクトで使用可能なポリシーが表示されます。

gcloud

gcloud compute network-firewall-policies list --global

グローバル ネットワーク ファイアウォール ポリシーを削除する

グローバル ネットワーク ファイアウォール ポリシーを削除する前に、すべての関連付けを削除する必要があります。

コンソール

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

    [ファイアウォール] ページに移動

  2. プロジェクト セレクタのプルダウン メニューで、ポリシーが含まれているプロジェクトを選択します。

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

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

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

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

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

gcloud

  1. ファイアウォール ポリシーに関連するすべてのネットワークを一覧表示します。

    gcloud compute network-firewall-policies describe POLICY_NAME \
    --global
    
  2. 個々の関連付けを削除します。関連付けを削除するには、グローバル ネットワーク ファイアウォール ポリシーに対する compute.SecurityAdmin ロールと、関連する VPC ネットワークに対する compute.networkAdmin` ロールが必要です。

    gcloud compute network-firewall-policies associations delete \
                 --name ASSOCIATION_NAME \
                 --firewall-policy POLICY_NAME \
                 --global-firewall-policy
    
  3. ポリシーを削除します。

    gcloud compute network-firewall-policies delete POLICY_NAME
    --global
    

関連付けを削除する

ネットワークのファイアウォール ポリシーの適用を停止するには、関連付けを削除します。

ただし、セキュリティ ポリシーを別のファイアウォール ポリシーに入れ替える場合は、最初に既存の関連付けを削除する必要はありません。この関連付けを削除すると、どちらのポリシーも適用されない期間が発生します。代わりに、新しいポリシーを関連付ける際は、既存のポリシーを置き換えます。

コンソール

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

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

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

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

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

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

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

gcloud

gcloud compute network-firewall-policies associations delete ASSOCIATION_NAME \
    --name ASSOCIATION_NAME
    --firewall-policy POLICY_NAME \
    --global-firewall-policy

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

グローバル ネットワーク ファイアウォール ルールを作成する

グローバル ネットワーク ファイアウォール ポリシー ルールは、グローバル ネットワーク ファイアウォール ポリシーで作成する必要があります。ルールは、そのルールを含むポリシーを VPC ネットワークに関連付けるまで有効になりません。

各グローバル ネットワーク ファイアウォール ポリシー ルールには、IPv4 または IPv6 の範囲のいずれかを含めることができます。両方を含めることはできません。

コンソール

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

    [ファイアウォール] ページに移動

  2. プロジェクト セレクタのプルダウン メニューで、ポリシーが含まれているプロジェクトを選択します。

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

  4. [デプロイのスコープ] で [グローバル] を選択します。

  5. [ルールの追加] をクリックします。

  6. ルールのフィールドに入力します。

    1. [優先度] フィールドで、ルールの順序番号を設定します。ここで、0 が最優先されます。優先度はルールごとに一意である必要があります。後で挿入できるように、ルールの優先度の数値を指定することをおすすめします(100200300 など)。
    2. ログの収集を [オン] または [オフ] に設定します。
    3. [トラフィックの方向] には、上り(内向き)と下り(外向き)のいずれかを選択します。
    4. [一致したときのアクション] で、ルールに一致した接続を許可する(許可)または拒否する(拒否)かどうか、または接続の評価を、階層内で次に低いファイアウォール ルールに渡すかどうかを指定します(次に移動)。
    5. [トラフィックの方向] には、上り(内向き)と下り(外向き)のいずれかを選択します。
    6. ルールの [ターゲット] を指定します。
      • ネットワーク内のすべてのインスタンスにルールを適用する場合は、[All instances in the network] を選択します。
      • タグを使用して一部のインスタンスにルールを適用する場合は、[セキュアタグ] を選択します。[タグを追加] をクリックし、ルールの適用対象となるタグ値を [タグの値] フィールドに入力します。
      • 関連するサービス アカウントを使用して一部のインスタンスにルールを適用する場合は Service account を選択し、[サービス アカウントのスコープ] でサービス アカウントが現在のプロジェクトにあるか、別のプロジェクトにあるかを示します。その後、[ターゲット サービス アカウント] フィールドでサービス アカウント名を選択するか入力します。
    7. 上り(内向き)ルールの場合、[ソースフィルタ] を指定します。
      • IP 範囲を選択します。IP アドレス範囲で受信トラフィックの送信元を定義するには、[送信元 IP の範囲] フィールドに CIDR ブロックを入力します。送信元を任意のネットワークにするには、0.0.0.0/0 を使用します。
      • ネットワーク タグを使用して送信元を制限するには、[ソースタグ] を選択して、ネットワーク タグを [ソースタグ] フィールドに入力します。ソースタグ数の上限については、ネットワークごとの上限をご覧ください。ソースタグによるフィルタリングを使用できるのは、サービス アカウントによってターゲットが指定されていない場合に限られます。詳しくは、サービス アカウントによるフィルタリングとネットワーク タグによるフィルタリングをご覧ください。
      • サービス アカウントによってソースを制限するには、サービス アカウントを選択して、サービス アカウントが現在のプロジェクトにあるか別のプロジェクトにあるかを [サービス アカウントのスコープ] で指定し、[ソースのサービス アカウント] フィールドでサービス アカウント名を選択するか入力します。ソースのサービス アカウントによるフィルタリングを使用できるのは、ネットワーク タグによってターゲットが指定されていない場合に限られます。詳しくは、サービス アカウントによるフィルタリングとネットワーク タグによるフィルタリングをご覧ください。
      • 必要に応じて、[2 番目のソースフィルタ] を指定します。2 番目のソースフィルタで、メインのソースフィルタと同じフィルタ条件を使用することはできません。ソース IP の範囲は、ソースタグまたはソースサービス アカウントと組み合わせて使用できます。有効なソースセットは、ソース範囲の IP アドレスと、ネットワーク タグまたはサービス アカウントによって識別されるインスタンスを組み合わせたものです。つまり、ソース IP 範囲、またはソースタグ(またはソースサービス アカウント)のいずれかがフィルタ条件と一致する場合、そのソースは有効なソースセットに含まれています。[ソースタグ] と [ソースのサービス アカウント] は併用できません。
    8. 下り(外向き)ルールの場合、[送信先フィルタ] を指定します。
      • IP アドレスの範囲を使用して発信トラフィックの送信先を定義するには IP ranges を選択し、[送信先 IP 範囲] フィールドに CIDR ブロックを入力します。0.0.0.0/0 を使用すると、任意の場所になります。
    9. (省略可)上り(内向き)ルールを作成する場合は、このルールが適用される送信元の FQDN を指定します。下り(外向き)ルールを作成する場合は、このルールを適用する宛先の FQDN を選択します。ドメイン名オブジェクトの詳細については、ドメイン名オブジェクトをご覧ください。
    10. (省略可)上り(内向き)ルールを作成する場合は、このルールが適用される送信元の位置情報を選択します。下り(外向き)ルールを作成する場合は、このルールが適用される宛先の位置情報を選択します。位置情報オブジェクトの詳細については、位置情報オブジェクトをご覧ください。
    11. 省略可: 上り(内向き)ルールを作成する場合は、このルールが適用される送信元のネットワーク脅威インテリジェンスのリストを選択します。下り(外向き)ルールを作成する場合は、このルールが適用される宛先のネットワーク脅威インテリジェンスのリストを選択します。脅威インテリジェンスの詳細については、ファイアウォール ポリシールールの脅威インテリジェンスをご覧ください。
    12. [プロトコルとポート] で、すべてのプロトコルとポートにルールを適用することを指定するか、適用するプロトコルと宛先ポートを指定します。
    13. [作成] をクリックします。
  7. [ルールを追加] をクリックして別のルールを追加します。

  8. ポリシーをネットワークに関連付けるには、[続行] > [関連付け] をクリックするか、[作成] をクリックしてポリシーを作成します。

gcloud

gcloud compute network-firewall-policies rules create PRIORITY \
    --action ACTION \
    --firewall-policy POLICY_NAME \
    --description DESCRIPTION \
    [--target-secure-tags TARGET_SECURE_TAG[,TARGET_SECURE_TAG,...]] \
    [--target-service-accounts=SERVICE_ACCOUNT[,SERVICE_ACCOUNT,...]] \
    [--direction DIRECTION]
    [--src-ip-ranges IP_RANGES] \
    [--src-secure-tags SRC_SECURE_TAG[,SRC_SECURE_TAG,...]] \
    [--dest-ip-ranges IP_RANGES] \
    [--src-region-codes COUNTRY_CODE,[COUNTRY_CODE,...]] \
    [--dest-region-codes COUNTRY_CODE,[COUNTRY_CODE,...]] \
    [--src-threat-intelligence LIST_NAMES[,LIST_NAME,...]] \
    [--dest-threat-intelligence LIST_NAMES[,LIST_NAME,...]] \
    [--src-address-groups ADDR_GRP_URL[,ADDR_GRP_URL,...]] \
    [--dest-address-groups ADDR_GRP_URL[,ADDR_GRP_URLL,...]] \
    [--dest-fqdns DOMAIN_NAME[,DOMAIN_NAME,...]]
    [--src-fqdns DOMAIN_NAME[,DOMAIN_NAME,...]]
    [--layer4-configs PROTOCOL_PORT] \
    [--enable-logging | --no-enable-logging]\
    [--disabled | --no-disabled]\
    --global-firewall-policy

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

  • PRIORITY: ルールの数値評価順序

    ルールは、最も高い優先度から順番に評価されます(最も高い優先度は 0)。優先度はルールごとに一意である必要があります。後で挿入できるように、ルールの優先度の数値を指定することをおすすめします(100200300 など)。

  • ACTION: 次のいずれかのアクション:

    • allow: ルールに一致する接続を許可します。
    • deny: ルールに一致する接続を拒否します。
    • goto_next: 接続評価を階層内の次のレベル(フォルダまたはネットワーク)に渡します。
  • POLICY_NAME: グローバル ネットワーク ファイアウォール ポリシーの名前

  • TARGET_SECURE_TAG: ターゲットを定義するセキュアタグのカンマ区切りリスト

  • SERVICE_ACCOUNT: ターゲットを定義するサービス アカウントのカンマ区切りリスト

  • DIRECTION: ルールが ingress ルールまたは egress ルールのどちらであるかを示します。デフォルトは ingress です。

    • トラフィックの送信元の IP アドレス範囲を指定するには、--src-ip-ranges を含めます。
    • トラフィックの宛先の IP アドレス範囲を指定するには、--dest-ip-ranges を含めます。

    詳細については、ターゲット送信元宛先をご覧ください。

  • IP_RANGES: CIDR 形式の IP アドレス範囲のカンマ区切りのリスト(すべての IPv4 アドレス範囲またはすべての IPv6 アドレス範囲)。例:
    --src-ip-ranges=10.100.0.1/32,10.200.0.0/24
    --src-ip-ranges=2001:0db8:1562::/96,2001:0db8:1723::/96

  • SRC_SECURE_TAG: タグのカンマ区切りリスト

  • COUNTRY_CODE: 2 文字の国コードのカンマ区切りリスト

    • 上り(内向き)方向の場合は --src-region-code パラメータで国コードを指定します。下り(外向き)方向の場合、--src-region-code パラメータは使用できません。
    • 下り(外向き)方向の場合、国コードは --dest-region-code パラメータで指定します。上り(内向き)方向の場合、--dest-region-code パラメータを使用できません。
  • LIST_NAMES: 脅威インテリジェンス リストの名前のカンマ区切りのリスト

    • 上り(内向き)方向の場合は --src-threat-intelligence パラメータで送信元の脅威インテリジェンス リストを指定します。下り(外向き)方向の場合、--src-threat-intelligence パラメータは使用できません。
    • 下り(外向き)方向の場合、--dest-threat-intelligence パラメータで宛先の脅威インテリジェンス リストを指定します。上り(内向き)方向の場合、--dest-threat-intelligence パラメータは使用できません。
  • ADDR_GRP_URL: アドレス グループの一意の URL 識別子

    • 上り(内向き)方向の場合は --src-address-groups パラメータで送信元のアドレス グループを指定します。下り(外向き)方向の場合、--src-address-groups パラメータは使用できません。
    • 下り(外向き)方向の場合は --dest-address-groups パラメータで宛先のアドレス グループを指定します。上り(内向き)方向の場合、--dest-address-groups パラメータは使用できません。
  • DOMAIN_NAME: ドメイン名のカンマ区切りリスト。ドメイン名の形式で説明されている形式で指定します。

    • 上り(内向き)方向の場合は --src-fqdns パラメータで送信元のドメイン名を指定します。下り(外向き)方向の場合、--src-fqdns パラメータは使用できません。
    • 下り(外向き)方向の場合は --dest-fqdns パラメータで宛先のアドレス グループを指定します。上り(内向き)方向の場合、--dest-fqdns パラメータは使用できません。
  • PROTOCOL_PORT: プロトコル名または番号(tcp,17)、プロトコルと宛先ポート(tcp:80)、プロトコルと宛先ポートの範囲(tcp:5000-6000)のカンマ区切りリスト。

    プロトコルなしでは、ポートまたはポート範囲を指定することはできません。 ICMP の場合、ポートまたはポート範囲を指定できません。例: --layer4-configs tcp:80,tcp:443,udp:4000-5000,icmp

    詳細については、プロトコルとポートをご覧ください。

  • --enable-logging--no-enable-logging: 指定されたルールに対してファイアウォール ルールロギングを有効または無効にします。

  • --disabled: ファイアウォール ルールが存在しても、接続の処理時に考慮されないファイアウォール ルールを示します。このフラグを省略すると、ルールが有効になります。または、--no-disabled を指定します。

ルールを更新する

フィールドの説明については、ファイアウォール ルールの作成をご覧ください。

コンソール

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

    [ファイアウォール] ページに移動

  2. プロジェクト セレクタのプルダウン メニューで、ポリシーが含まれているプロジェクトを選択します。

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

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

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

  6. 変更対象のフィールドに修正を加えます。

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

gcloud

gcloud compute network-firewall-policies rules update RULE_PRIORITY \
    --firewall-policy POLICY_NAME \
    --global-firewall-policy \
    [...fields you want to modify...]

ルールの説明を取得する

コンソール

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

    [ファイアウォール] ページに移動

  2. プロジェクト セレクタのプルダウン メニューで、ポリシーが含まれているプロジェクトを選択します。

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

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

gcloud

gcloud compute network-firewall-policies rules describe PRIORITY \
    --firewall-policy POLICY_NAME --global-firewall-policy

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

  • PRIORITY: 表示するルールの優先度。各ルールの優先度は異なるため、この設定はルールによって一意に識別されます。
  • POLICY_NAME: ルールを含むポリシーの名前

ポリシーからルールを削除する

ポリシーからルールを削除すると、そのルールを継承しているすべての VM からルールが削除されます。

コンソール

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

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

  2. プロジェクト セレクタのプルダウン メニューで、ポリシーが含まれているプロジェクトを選択します。

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

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

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

gcloud

gcloud compute network-firewall-policies rules delete PRIORITY \
    --firewall-policy POLICY_NAME --global-firewall-policy

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

  • PRIORITY: ポリシーから削除するルールの優先度
  • POLICY_NAME: そのルールを含むポリシー

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

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

コンソール

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

    [ファイアウォール] ページに移動

  2. プロジェクト セレクタのプルダウン メニューで、ポリシーが含まれているプロジェクトを選択します。

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

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

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

  6. 新しいポリシーをすぐに関連付ける場合は、[続行] > [関連付け] をクリックします。

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

gcloud

gcloud compute network-firewall-policies clone-rules POLICY_NAME \
    --source-firewall-policy SOURCE_POLICY \
    --global

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

  • POLICY_NAME: クローンが作成されたルールに置き換えるターゲット ポリシー。
  • SOURCE_POLICY: ルールのクローンを作成するソースポリシーのリソースの URL。

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

指定した 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 のゾーン。目的のゾーンがすでにデフォルトとして設定されている場合、この行は省略可能です。