Cloud Next Generation Firewall ルールは、タグを使用して送信元とターゲットを指定します。この柔軟なアプローチにより、IP アドレスへの依存を回避できます。
タグの種類
Cloud NGFW は、次の 2 種類のタグをサポートしています。
Identity and Access Management(IAM)で管理されるタグ(セキュアタグとも呼ばれます)は、Resource Manager でタグキーとタグ値として作成および管理されます。セキュアタグ値を使用して、階層型ファイアウォール ポリシー、グローバル ネットワーク ファイアウォール ポリシー、リージョン ネットワーク ファイアウォール ポリシーの上り(内向き)ルールの送信元と、上り(内向き)または下り(外向き)ルールのターゲットを指定できます。
ネットワーク タグは、仮想マシン(VM)インスタンスまたはインスタンス テンプレートに追加できるアクセス制御のない文字列です。ネットワーク タグは、上り(内向き)Virtual Private Cloud(VPC)ファイアウォール ルールの送信元と、上り(内向き)または下り(外向き)VPC ファイアウォール ルールのターゲットを指定するために使用できます。ネットワーク タグは、階層型ファイアウォール ポリシー、グローバル ネットワーク ファイアウォール ポリシー、リージョン ネットワーク ファイアウォール ポリシーのルールでは使用できません。ネットワーク タグの詳細については、ネットワーク タグを追加するをご覧ください。
セキュアタグとネットワーク タグの違いについては、セキュアタグとネットワーク タグの比較をご覧ください。
このページの次のセクションでは、ファイアウォール ポリシーの安全なタグについて説明します。
仕様
セキュアタグの仕様は次のとおりです。
親リソース: 親リソースは、セキュアタグキーが定義されているリソースです。タグキーは、親のプロジェクトまたは組織に作成できます。タグキーの作成の詳細については、安全なタグの作成と管理をご覧ください。
目的と目的データ: 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 個の一意のタグ値を参照できます。タグ管理者ロール(
roles/resourcemanager.tagAdmin)を持つ IAM プリンシパルは、各タグキーのタグキーとタグ値を作成します。安全なタグの上限の詳細については、上限をご覧ください。組織間でプロジェクトを移動する: プロジェクトをある組織から別の組織に移動できます。プロジェクトを移動する前に、プロジェクトで使用されている組織を指定する
purpose-data属性を持つタグキーを元の組織から切り離します。セキュアタグを先に切り離さないと、移動中にエラー メッセージが表示されます。アクセス制御: IAM ポリシーにより、セキュアタグを管理および使用できる IAM プリンシパルが決まります。
タグ管理者ロール(
roles/resourcemanager.tagAdmin)を持つ IAM プリンシパルは、タグキーを作成し、そのタグ値を管理できます。組織の IAM ポリシーでタグ管理者ロール(
roles/resourcemanager.tagAdmin)が付与された IAM プリンシパルは、組織を親としてタグキーを作成できます。組織、フォルダ、またはプロジェクトの IAM ポリシーでタグ管理者ロール(
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 インスタンスにバインドすることを禁止します。詳細については、セキュアタグをバインドするをご覧ください。
VPC ネットワーク ピアリングのサポート: ファイアウォール ポリシーの上り(内向き)ルールのソース セキュアタグは、ピアリングされた VPC ネットワークにある送信元 VM ネットワーク インターフェースを識別できます。これは、プライベート サービス アクセスを使用する公開サービスのユーザーに役立ちます。ソース セキュアタグを持つ上り(内向き)ファイアウォール ルールを使用すると、コンシューマーは、どのサービス プロデューサー VM がコンシューマー VM にパケットを送信できるかを制御できます。
Google Kubernetes Engine(GKE)のセキュリティ タグ:
purpose-data=organization=auto構成で作成されたセキュリティ タグは、GKE クラスタとノードプールではサポートされていません。したがって、VPC ネットワークごとに安全なタグキーを作成します。詳細については、安全なタグの作成と管理をご覧ください。
セキュアタグをバインドする
Cloud NGFW でセキュアタグを使用するには、タグ値を VM インスタンスにバインドする必要があります。各セキュアタグキーは複数のタグ値をサポートしますが、各タグキーに対して、そのタグ値の 1 つのみをインスタンスにバインドできます。IAM 権限とセキュアタグのバインド方法の詳細については、セキュアタグをバインドするをご覧ください。
このセクションの例では、バインドされたタグ値が VM ネットワーク インターフェースにどのように適用されるかを示します。次の例では、2 つのネットワーク インターフェースを持つ instance1 VM インスタンスについて考えます。
nic0がnetwork1VPC ネットワークに接続されているnic1がnetwork2VPC ネットワークに接続されている
両方の VPC ネットワークが同じ組織に属している。
対応するタグキーの purpose-data 属性は、バインドされたタグ値と VM ネットワーク インターフェースの関係を決定します。
purpose-data 属性で VPC ネットワークを指定するタグキー
次の purpose-data 属性とタグ値を使用して 2 つのタグキーを作成するとします。
tag_key1には、network1VPC ネットワークと 2 つのタグ値tag_value1とtag_value2を指定するpurpose-data属性があります。tag_key2には、network2VPC ネットワークと 1 つのタグ値tag_value3を指定するpurpose-data属性があります。
purpose-data 属性は、単一の VPC ネットワークを指定します(クリックして拡大)。セキュアタグ値 tag_value1 と tag_value3 を instance1 にバインドする場合:
tag_value1の親tag_key1にnetwork1VPC ネットワークを指定するpurpose-data属性があり、nic0ネットワーク インターフェースがnetwork1にあるため、tag_value1はnic0ネットワーク インターフェースに適用されます。tag_value3の親tag_key2にnetwork2VPC ネットワークを指定するpurpose-data属性があり、nic1ネットワーク インターフェースがnetwork2にあるため、tag_value3はnic1ネットワーク インターフェースに適用されます。
次の図は、purpose-data 属性で単一の VPC ネットワークが指定されているタグキーのバインディング タグ値を示しています。
purpose-data 属性で単一の VPC ネットワークが指定されているタグキーのバインドされたタグ値(クリックして拡大)。purpose-data 属性で組織を指定するタグキー
次の purpose-data 属性とタグ値を使用して 2 つのタグキーを作成するとします。
tag_key3には、親組織を指定するpurpose-data属性があり、tag_value4とtag_value5の 2 つのタグ値があります。tag_key4には、親組織を指定するpurpose-data属性があり、1 つのタグ値tag_value6があります。
purpose-data 属性は、親組織を指定します(クリックして拡大)。タグ値 tag_value4 を instance1 にバインドする場合:
tag_value4の親tag_key3には、network1VPC ネットワークを含む親組織を指定するpurpose-data属性があり、nic0ネットワーク インターフェースはnetwork1にあるため、tag_value4はnic0ネットワーク インターフェースに適用されます。tag_value4はnic1ネットワーク インターフェースにも適用されます。これは、親tag_key3に、network2VPC ネットワークを含む親組織を指定するpurpose-data属性が含まれているためです。nic1ネットワーク インターフェースはnetwork2内にあります。
次の図は、purpose-data 属性で親組織が指定されているタグキーからタグ値をバインドする方法を示しています。
purpose-data 属性で親組織が指定されているタグキーのバインドされたタグ値(クリックして拡大)。セキュアタグを設定する
次のワークフローは、ファイアウォール ポリシーでセキュアタグを構成するために必要な一連の手順の概要を示しています。
セキュアタグは、組織レベルまたはプロジェクト レベルで作成できます。組織レベルでタグを作成するには、まず組織管理者から IAM 権限を付与してもらう必要があります。詳細については、安全なタグに権限を付与するをご覧ください。
セキュアタグを作成するには、まずタグキーを作成する必要があります。このタグキーは、作成するタグを記述します。詳細については、セキュアタグのキーと値を作成するをご覧ください。
セキュアタグキーを作成したら、関連するセキュアタグの値を追加する必要があります。詳細については、セキュアタグのキーと値を作成するをご覧ください。セキュアタグキーを管理し、タグ値をリソースに付加するための特定のアクセス権をユーザーに付与するには、 Google Cloud コンソールを使用します。詳細については、タグへのアクセスを管理するをご覧ください。
セキュアタグを作成したら、ネットワーク ファイアウォール ポリシーまたは階層型ファイアウォール ポリシーで使用できます。詳細については、階層型ファイアウォール ポリシーを作成するとネットワーク ファイアウォール ポリシーを作成するをご覧ください。
ソースタグキーとターゲットタグキーを使用して VM 間で選択したトラフィックを許可するには、特定のソースタグ値とターゲットタグ値を使用してファイアウォール ポリシー ルール(ネットワークまたは階層型)を作成します。詳細については、セキュアタグを使用してファイアウォール ポリシールールを作成するをご覧ください。
タグキーが作成され、タグキーとリソースの両方に適切なアクセス権が付与されると、タグキーを VM インスタンスにバインドできます。詳細については、セキュアタグをバインドするをご覧ください。
セキュアタグとネットワーク タグの比較
次の表に、セキュアタグとネットワーク タグの違いを示します。チェックマークは属性がサポートされていることを示し、記号は属性がサポートされていないことを示します。
| 属性 | VPC ネットワークを指定する purpose-data 属性を持つセキュアタグ |
組織を指定する purpose-data 属性でタグを保護する |
ネットワーク タグ |
|---|---|---|---|
| 親リソース | プロジェクトまたは組織 | プロジェクトまたは組織 | プロジェクト |
| 構造と形式 | 最大 1,000 個の値を持つタグキー | 最大 1,000 個の値を持つタグキー | シンプルな文字列 |
| アクセス制御 | IAM の使用 | IAM の使用 | アクセス制御なし |
| 適用可能なネットワーク インターフェース |
|
|
|
| 階層型ファイアウォール ポリシーのルールでサポート | |||
| グローバル ネットワーク ファイアウォール ポリシーとリージョン ネットワーク ファイアウォール ポリシーのルールでサポート | |||
| VPC ファイアウォール ルールでサポート | |||
| 上り(内向き)ファイアウォール ルールには、VPC ネットワーク ピアリングを使用して接続された VPC ネットワークの送信元を含めることができます | 1 | 1 | |
| 上り(内向き)ファイアウォール ルールには、Network Connectivity Center ハブの他の VPC スポークの送信元を含めることができます |
- タグキー
purpose-data属性は、他の VPC ネットワーク(または他の VPC ネットワークを含む親組織)を指定します。 - 他の VPC ネットワークとファイアウォール ポリシーを使用する VPC ネットワークは、VPC ネットワーク ピアリングを使用して接続されている
IAM ロール
セキュアタグの作成と管理に必要な IAM のロールと権限の詳細については、リソースのタグの管理をご覧ください。
次のステップ
- セキュアタグに権限を付与し、セキュアタグの Key-Value ペアを作成する。セキュアタグを作成して管理するをご覧ください。
- ネットワーク ピアリングでセキュアタグを使用するには、ピアリングされるネットワーク間でセキュアタグを使用するをご覧ください。