ファイアウォールのセキュアタグ

Cloud Next Generation Firewall ルールは、タグを使用して送信元とターゲットを指定します。この柔軟なアプローチにより、IP アドレスへの依存を回避できます。

タグの種類

ファイアウォール ルールでネットワーク トラフィックをフィルタリングするために、Cloud NGFW は次の 2 種類のタグをサポートしています。

  • Identity and Access Management(IAM)で管理されるタグセキュアタグとも呼ばれます)は、Resource Manager でタグキーとタグ値として作成および管理されます。セキュアタグ値を使用して、階層型ファイアウォール ポリシー、グローバル ネットワーク ファイアウォール ポリシー、リージョン ネットワーク ファイアウォール ポリシーの上り(内向き)ルールの送信元と、上り(内向き)ルールまたは下り(外向き)ルールのターゲットを指定できます。

  • ネットワーク タグは、仮想マシン(VM)インスタンスまたはインスタンス テンプレートに追加できるアクセス制御のない文字列です。ネットワーク タグは、上り(内向き)Virtual Private Cloud(VPC)ファイアウォール ルールの送信元と、上り(内向き)または下り(外向き)VPC ファイアウォール ルールのターゲットを指定するために使用できます。ネットワーク タグは、階層型ファイアウォール ポリシー、グローバル ネットワーク ファイアウォール ポリシー、リージョン ネットワーク ファイアウォール ポリシーのルールでは使用できません。ネットワーク タグの詳細については、ネットワーク タグを追加するをご覧ください。

詳細については、セキュアタグとネットワーク タグの比較をご覧ください。

また、Resource Manager タグを Cloud NGFW リソースに直接関連付けて、Identity and Access Management(IAM)や組織ポリシー サービスなどのサービスで管理することもできます。これらのタグはリソース ガバナンス専用です。ファイアウォール ルールは、ネットワーク トラフィックをフィルタリングするためにこれらのタグを評価しません。ファイアウォール リソースのタグの作成と管理の詳細については、ファイアウォール リソースのタグを作成して管理するをご覧ください。

このページの次のセクションでは、ファイアウォール ポリシーの安全なタグについて説明します。

仕様

セキュアタグの仕様は次のとおりです。

  • 親リソース: 親リソースは、セキュアタグキーが定義されているリソースです。タグキーは、親のプロジェクトまたは組織に作成できます。タグキーの作成の詳細については、セキュアタグの作成と管理をご覧ください。

  • 目的と目的データ: Cloud NGFW で安全なタグキーを使用するには、タグキーの purpose 属性を GCE_FIREWALL に設定し、purpose-data 属性を指定する必要があります。

    • タグキーの purpose-data 属性を network に設定し、その後に単一の VPC ネットワーク仕様を指定できます。

      • 親プロジェクトを持つタグキーの場合、タグキーの purpose-data 属性を network に設定すると、指定された VPC ネットワークはタグキーと同じプロジェクトに存在する必要があります。

      • 親組織を持つタグキーの場合、タグキーの purpose-data 属性を network に設定すると、指定された VPC ネットワークはタグキーと同じ組織に存在する必要があります。

    • タグキーの purpose-data 属性を organization=auto に設定できます。これにより、組織内のすべての VPC ネットワークが識別されます。

    タグキーの作成後に purpose 属性と purpose-data 属性を変更することはできません。タグキーの purpose-data 属性でネットワーク仕様の形式を設定する方法については、Resource Manager API ドキュメントの目的をご覧ください。

  • 構造と形式: セキュアタグキーは、最大 1,000 個の一意のタグ値を参照できます。Tag Administrator ロール(roles/resourcemanager.tagAdmin)を持つ IAM プリンシパルは、各タグキーのタグキーとタグ値を作成します。セキュアタグの上限の詳細については、上限をご覧ください。

  • 組織間でプロジェクトを移動する: プロジェクトをある組織から別の組織に移動できます。プロジェクトを移動する前に、プロジェクトで使用されている組織を指定する purpose-data 属性を持つタグキーを元の組織から切り離します。セキュアタグを先に切り離さないと、移動中にエラー メッセージが表示されます。

  • アクセス制御: IAM ポリシーにより、セキュアタグを管理および使用できる IAM プリンシパルが決まります。

    • タグ管理者のロール(roles/resourcemanager.tagAdmin)を持つ IAM プリンシパルは、タグキーを作成し、そのタグ値を管理できます。

      • 組織の IAM ポリシーでタグ管理者ロール(roles/resourcemanager.tagAdmin)が付与されている IAM プリンシパルは、組織を親としてタグキーを作成できます。

      • 組織、フォルダ、またはプロジェクトの IAM ポリシーで Tag Administrator ロール(roles/resourcemanager.tagAdmin)が付与されている IAM プリンシパルは、プロジェクトを親としてタグキーを作成できます。

    • タグユーザー ロール(roles/resourcemanager.tagUser)を持つ IAM プリンシパルは、タグ値を VM インスタンスにバインドしたり、階層型ファイアウォール ポリシー、グローバル ネットワーク ファイアウォール ポリシー、リージョン ネットワーク ファイアウォール ポリシーのファイアウォール ルールでタグ値を使用したりできます。

      • 組織の IAM ポリシーでタグユーザー ロール(roles/resourcemanager.tagUser)が付与された IAM プリンシパルは、親が組織であるタグキーのタグ値を使用できます。

      • 組織、フォルダ、またはプロジェクトの IAM ポリシーでタグユーザー ロール(roles/resourcemanager.tagUser)が付与されている IAM プリンシパルは、親がプロジェクトであるタグキーのタグ値を使用できます。

    • デベロッパー、データベース管理者、運用チームなどの IAM プリンシパルには、コンピューティング セキュリティ管理者ロール(roles/compute.securityAdmin)を付与することなく、タグユーザー ロール(roles/resourcemanager.tagUser)やその他の適切なロールを付与できます。これにより、運用チームは、ファイアウォール ルールを変更することなく、管理する VM インスタンスのネットワーク インターフェースに適用するファイアウォール ルールを制御できます。

    必要な権限の詳細については、IAM ロールをご覧ください。

  • ファイアウォール ルールのサポート: 階層型ファイアウォール ポリシー、グローバル ネットワーク ファイアウォール ポリシー、リージョン ネットワーク ファイアウォール ポリシーのルールは、ソース セキュアタグまたはターゲット セキュアタグとしてタグキーをサポートしています。VPC ファイアウォール ルールはセキュアタグをサポートしていません。詳細については、セキュアタグとネットワーク タグの比較をご覧ください。

  • VM バインディングと適用可能なファイアウォール ルール: セキュアタグ値を VM インスタンスにバインドすると、タグ値を使用する適用可能なファイアウォール ルールには、ソースまたはターゲットとして VM ネットワーク インターフェースが含まれます。

    • インスタンスにバインドされているセキュアタグの値が、purpose-data 属性で単一の VPC ネットワークが指定されているタグキーからのものである場合:

      • そのタグ値を送信元セキュアタグとして使用する上り(内向き)ファイアウォール ルールには、指定された VPC ネットワーク内の VM のネットワーク インターフェースを含む送信元があります。

      • そのタグ値をターゲット セキュアタグとして使用する上り(内向き)と下り(外向き)のファイアウォール ルールには、指定された VPC ネットワーク内の VM のネットワーク インターフェースを含むターゲットがあります。

    • インスタンスにバインドされているセキュアタグ値が、purpose-data 属性で組織が指定されているタグキーのタグ値である場合:

      • そのタグ値を送信元セキュアタグとして使用する上り(内向き)ファイアウォール ルールには、組織の任意の VPC ネットワークにある VM のネットワーク インターフェースを含む送信元があります。

      • そのタグ値をターゲット セキュアタグとして使用する上り(内向き)と下り(外向き)のファイアウォール ルールには、組織の任意の VPC ネットワークにある VM のネットワーク インターフェースを含むターゲットがあります。

  • 適用可能なファイアウォール ルールがパケットを識別する方法: Cloud NGFW は、ソース セキュアタグとターゲット セキュアタグを IP アドレスではなくネットワーク インターフェースにマッピングします。

    • 上り(内向き)ファイアウォール ルールの送信元セキュアタグに VM ネットワーク インターフェースが送信元として含まれている場合、そのネットワーク インターフェースから送信されるパケットはすべて一致します。 Google Cloud

    • 上り(内向き)ファイアウォール ルールのターゲット セキュアタグに VM ネットワーク インターフェースがターゲットとして含まれている場合、 Google Cloud はそのネットワーク インターフェースで受信されたパケットと一致します。

    • 下り(外向き)ファイアウォール ルールのターゲット セキュアタグに VM ネットワーク インターフェースがターゲットとして含まれている場合、 Google Cloud は、そのネットワーク インターフェースから送信されるパケットと一致します。

  • インスタンスあたりのタグ値の数: 各タグ値を無制限の数の VM インスタンスにバインドできます。各インスタンス がサポートするタグ値の数は可変です。 Google Cloud は、VM の各ネットワーク インターフェースに適用されるタグ値 の数を 10 個に制限します。 Google Cloud は、1 つ以上のネットワーク インターフェースに 10 個を超えるタグ 値が適用されている場合、追加のタグ値を VM インスタンスにバインドすることを禁止 します。詳細については、セキュアタグをバインドするをご覧ください。

  • ネットワーク ピアリングと NCC のサポート: セキュアタグを使用して、ピアリングされたネットワーク内の VM ネットワーク インターフェースを識別できます。これには、VPC ネットワーク ピアリングと Network Connectivity Center ハブの VPC スポークを介して接続されたネットワークが含まれます。この機能は、プライベート サービス アクセスを使用する公開サービスのコンシューマーに役立ちます。たとえば、送信元セキュアタグを含む上り(内向き)ファイアウォール ルールを使用して、サービス プロデューサー VM から VM へのトラフィックを制御できます。

  • Google Kubernetes Engine(GKE)のセキュリティ タグ: セキュリティ タグを GKE クラスタとノードプールにバインドして、ネットワーク ファイアウォール ポリシーで使用できます。詳細については、セキュアタグを作成、管理するをご覧ください。

セキュアタグをバインドする

Cloud NGFW でセキュアタグを使用するには、タグ値を VM インスタンスにバインドする必要があります。各セキュアタグキーは複数のタグ値をサポートしますが、各タグキーに対して、そのタグ値の 1 つのみをインスタンスにバインドできます。IAM 権限とセキュアタグのバインド方法の詳細については、セキュアタグをバインドするをご覧ください。

このセクションの例では、バインドされたタグ値が VM ネットワーク インターフェースにどのように適用されるかを示します。2 つのネットワーク インターフェースを持つ instance1 VM インスタンスの例を考えてみましょう。

  • nic0network1 VPC ネットワークに接続されている
  • nic1network2 VPC ネットワークに接続されている

両方の VPC ネットワークが同じ組織に属している。

2 つのネットワーク インターフェースを持つ VM インスタンス。各インターフェースは異なる VPC ネットワークに接続されています。
図 1. 2 つのネットワーク インターフェースを持つ VM インスタンス。各インターフェースは異なる VPC ネットワークに接続されています(クリックして拡大)。

対応するタグキーの purpose-data 属性は、バインドされたタグ値と VM ネットワーク インターフェースの関係を決定します。

purpose-data 属性で VPC ネットワークを指定するタグキー

次の purpose-data 属性とタグ値を使用して 2 つのタグキーを作成するとします。

  • tag_key1 には、network1 VPC ネットワークと 2 つのタグ値 tag_value1tag_value2 を指定する purpose-data 属性があります。

  • tag_key2 には、network2 VPC ネットワークと 1 つのタグ値 tag_value3 を指定する purpose-data 属性があります。

各タグキーの `purpose-data` 属性は、単一の VPC ネットワークを指定します。
図 2. 各タグキーの purpose-data 属性は、単一の VPC ネットワークを指定します(クリックして拡大)。

セキュアタグ値 tag_value1tag_value3instance1 にバインドする場合:

  • tag_value1 の親 tag_key1network1 VPC ネットワークを指定する purpose-data 属性があり、nic0 ネットワーク インターフェースが network1 にあるため、tag_value1nic0 ネットワーク インターフェースに適用されます。

  • の親 tag_key2network2 VPC ネットワークを指定する purpose-data 属性があり、nic1 ネットワーク インターフェースが network2 にあるため、tag_value3nic1 ネットワーク インターフェースに適用されます。

次の図は、purpose-data 属性で単一の VPC ネットワークが指定されているタグキーのバインディング タグ値を示しています。

`purpose-data` 属性で単一の VPC ネットワークが指定されているタグキーのバインドされたタグ値。
図 3. purpose-data 属性で単一の VPC ネットワークが指定されているタグキーのバインドされたタグ値(クリックして拡大)。

purpose-data 属性で組織が指定されているタグキー

次の purpose-data 属性とタグ値を使用して 2 つのタグキーを作成するとします。

  • tag_key3 には、親組織を指定する purpose-data 属性があり、tag_value4tag_value5 の 2 つのタグ値があります。

  • tag_key4 には、親組織を指定する purpose-data 属性があり、1 つのタグ値 tag_value6 があります。

各タグキーの `purpose-data` 属性は、親組織を指定します。
図 4. 各タグキーの purpose-data 属性は、親組織を指定します(クリックして拡大)。

タグ値 tag_value4instance1 にバインドする場合:

  • の親 tag_key3 には、network1 VPC ネットワークを含む親 組織を指定する purpose-data 属性があり、 nic0 ネットワーク インターフェースは network1 にあるため、tag_value4nic0 ネットワーク インターフェースに適用されます。

  • tag_value4nic1 ネットワーク インターフェースにも適用されます。これは、親 tag_key3 に、network2 VPC ネットワークを含む親組織を指定する purpose-data 属性が含まれているためです。nic1 ネットワーク インターフェースは network2 内にあります。

次の図は、purpose-data 属性で親組織が指定されているタグキーからタグ値をバインドする方法を示しています。

`purpose-data` 属性で親組織が指定されているタグキーのバインドされたタグ値。
図 5. purpose-data 属性で親組織が指定されているタグキーのバインドされたタグ値(クリックして拡大)。

セキュアタグを設定する

次のワークフローは、ファイアウォール ポリシーでセキュアタグを構成するために必要な一連の手順の概要を示しています。

  1. セキュアタグは、組織レベルまたはプロジェクト レベルで作成できます。組織レベルでタグを作成するには、まず組織管理者から IAM 権限を付与してもらう必要があります。詳細については、セキュアタグに権限を付与するをご覧ください。

  2. セキュアタグを作成するには、まずタグキーを作成する必要があります。このタグキーは、作成するタグを説明します。詳細については、セキュアタグのキーと値を作成するをご覧ください。

  3. セキュアタグキーを作成したら、関連するセキュアタグの値を追加する必要があります。詳細については、セキュアタグのキーと値を作成するをご覧ください。セキュアタグキーを管理し、タグ値をリソースに付加するための特定のアクセス権をユーザーに付与するには、 Google Cloud コンソールを使用します。詳細については、タグへのアクセスを管理するをご覧ください。

  4. セキュアタグを作成したら、ネットワーク ファイアウォール ポリシーまたは階層型ファイアウォール ポリシーで使用できます。詳細については、階層型ファイアウォール ポリシーを作成するネットワーク ファイアウォール ポリシーを作成するをご覧ください。

  5. ソースタグキーとターゲットタグキーを使用して VM 間で選択したトラフィックを許可するには、特定のソースタグ値とターゲットタグ値を使用してファイアウォール ポリシー ルール(ネットワークまたは階層型)を作成します。詳細については、セキュアタグを使用してファイアウォール ポリシールールを作成するをご覧ください。

  6. タグキーが作成され、タグキーとリソースの両方に適切なアクセス権が付与されると、タグ値を VM インスタンスにバインドできます。詳細については、セキュアタグをバインドするをご覧ください。

セキュアタグとネットワーク タグの比較

次の表に、セキュアタグとネットワーク タグの違いを示します。チェックマークは属性がサポートされていることを示し、記号は属性がサポートされていないことを示します。

属性 VPC ネットワークを指定する purpose-data 属性を持つセキュアタグ 組織を指定する purpose-data 属性を持つ安全なタグ ネットワーク タグ
親リソース プロジェクトまたは組織 プロジェクトまたは組織 プロジェクト
構造と形式 最大 1,000 個の値を持つタグキー 最大 1,000 個の値を持つタグキー シンプルな文字列
アクセス制御 IAM の使用 IAM の使用 アクセス制御なし
適用可能なネットワーク インターフェース
  • 送信元セキュアタグ値を含む上り(内向き)ファイアウォール ルール: 送信元には、タグキーの purpose-data 属性で指定された VPC ネットワーク内の VM ネットワーク インターフェースが含まれます。
  • ターゲット セキュアタグ値を含む上り(内向き)または下り(外向き)のファイアウォール ルール: ターゲットには、タグキーの purpose-data 属性で指定された VPC ネットワーク内の VM ネットワーク インターフェースが含まれます。
  • 送信元セキュアタグ値を含む上り(内向き)ファイアウォール ルール: 送信元には、親組織の任意の VPC ネットワーク内の VM ネットワーク インターフェースが含まれます。
  • ターゲット セキュアタグ値を含む上り(内向き)または下り(外向き)ファイアウォール ルール: ターゲットには、親組織の任意の VPC ネットワーク内の VM ネットワーク インターフェースが含まれます。
  • 送信元ネットワーク タグを含む上り(内向き)ファイアウォール ルール: そのネットワークに送信元ネットワーク タグを使用する VPC ファイアウォール ルールがある場合、送信元には VM で使用される任意の VPC ネットワーク内の VM ネットワーク インターフェースが含まれます。
  • ターゲット ネットワーク タグを含む上り(内向き)または下り(外向き)のファイアウォール ルール: ターゲットには、VM が使用する VPC ネットワーク内の VM ネットワーク インターフェースが含まれます。ただし、そのネットワークにターゲット ネットワーク タグを使用する VPC ファイアウォール ルールがある場合に限ります。
階層型ファイアウォール ポリシーのルールでサポート
グローバル ネットワーク ファイアウォール ポリシーとリージョン ネットワーク ファイアウォール ポリシーのルールでサポート
VPC ファイアウォール ルールでサポート
上り(内向き)ファイアウォール ルールに、VPC ネットワーク ピアリングを使用して接続された VPC ネットワーク内の送信元を含めることができます 1 1
上り(内向き)ファイアウォール ルールには、NCC ハブの他の VPC スポークの送信元を含めることができます。 1 1
1次の両方が当てはまる場合、送信元セキュアタグ値は別の VPC ネットワーク内のネットワーク インターフェースを識別できます。
  • タグキー purpose-data 属性は、他の VPC ネットワーク(または他の VPC ネットワークを含む親組織)を指定します。
  • 他の VPC ネットワークとファイアウォール ポリシーを使用する VPC ネットワークは、VPC ネットワーク ピアリングを使用して接続されているか、同じ NCC ハブ上の両方の VPC スポークです。

IAM ロール

セキュアタグの作成と管理に必要な IAM のロールと権限の詳細については、リソースのタグの管理をご覧ください。

次のステップ