階層型ファイアウォール ポリシーを使用すると、組織全体で一貫したファイアウォール ポリシーを作成して適用できます。階層型ファイアウォール ポリシーは、組織全体または個々のフォルダに割り当てることができます。Virtual Private Cloud(VPC)ファイアウォール ルールと同様に、これらのポリシーには接続を明示的に拒否または許可できるルールが含まれています。また、階層型ファイアウォール ポリシールールでは、goto_next
アクションを使用して、下位レベルのポリシーまたは VPC ネットワークのファイアウォール ルールに評価を委任できます。
下位レベルのルールは、リソース階層の上位にあるルールをオーバーライドできません。これにより、組織全体の管理者が重要なファイアウォール ルールを 1 か所で管理できます。
仕様
- 階層型ファイアウォール ポリシーは、組織レベルとフォルダレベルに作成されます。ポリシーを作成しても、そのルールが自動的に組織またはフォルダに適用されるわけではありません。
- 作成されたポリシーは、組織内のすべてのリソースに適用(関連付け)できます。
- 階層型ファイアウォール ポリシーはファイアウォール ルールのコンテナです。ポリシーを組織またはフォルダに関連付けると、すべてのルールが直ちに適用されます。リソースのポリシーを切り替えることで、そのリソースの仮想マシン(VM)インスタンスに適用されるすべてのファイアウォール ルールをアトミックに置き換えることができます。
- ルールの評価は、リソース階層に基づいて階層化されます。組織ノードに関連付けられているすべてのルールが評価され、次に、第 1 レベルのフォルダのルールが評価されます。
- 階層型ファイアウォール ポリシールールで、
goto_next
アクションを使用できるようになりました。このアクションを使用すると、接続の評価を階層の下位レベルに委任できます。
階層型ファイアウォール ポリシールールは、一致したトラフィックのレイヤ 7 検査(侵入防止サービスなど)を構成するために使用できます。
apply_security_profile_group
アクションとセキュリティ プロファイル グループの名前を使用して、ファイアウォール ポリシー ルールを作成します。ファイアウォール ポリシールールに一致するトラフィックはインターセプトされ、レイヤ 7 検査のためにファイアウォール エンドポイントに透過的に転送され、そして戻りますファイアウォール ポリシー ルールの作成方法については、ファイアウォール ルールを作成するをご覧ください。
- 階層型ファイアウォール ポリシールールで VM 用のネットワークとターゲット サービス アカウントのリソースを使用すると、特定の VPC ネットワークと VM をターゲットにできます。これにより、VM のグループを例外に設定できます。階層型ファイアウォール ポリシールールは、インスタンス タグによるターゲティングをサポートしていません。
- 各階層型ファイアウォール ポリシールールには、IPv4 または IPv6 の範囲のいずれかを含めることができます。両方を含めることはできません。
- コンプライアンスとデバッグを容易にするために、VM インスタンスに適用されるファイアウォール ルールは、VPC ネットワークの詳細ページと VM インスタンスのネットワーク インターフェースの詳細ページを使用して監査できます。
リソース階層
ファイアウォール ポリシーは、個別のステップとして作成して適用します。ファイアウォール ポリシーの作成と適用は、リソース階層の組織またはフォルダレベルで行うことができます。ファイアウォール ポリシールールは、接続のブロック、接続の許可、VPC ネットワークで定義された下位レベルのフォルダまたは VPC ファイアウォール ルールへの評価の委任を行うことができます。
組織は、Google Cloud のリソース階層で最上位のリソースであり、階層型ファイアウォール ポリシーを作成または関連付けできます。組織内のすべてのフォルダと VPC ネットワークがこのポリシーを継承します。
フォルダは、組織とプロジェクト間にある Google Cloud リソース階層の中間リソースで、階層型ファイアウォール ポリシーの作成または割り当てを行うことができます。フォルダ内のすべてのフォルダと VPC ネットワークは、関連付けられたポリシーを継承します。
プロジェクトはフォルダまたは組織に属しています。組織内のリソース間でプロジェクトを移動できます。プロジェクトには VPC ネットワークが含まれます。階層型ファイアウォール ポリシーは、プロジェクトに対して割り当てることはできません。組織またはフォルダに対してのみ割り当てることができます。
VPC ネットワークは、分離された内部 IP 空間の通信を行う Google Cloud パーティションです。ここには、ルート、ネットワーク ファイアウォール ポリシー、従来の VPC ファイアウォール ルールが指定され、適用されます。階層型ファイアウォール ポリシールールは、グローバル ネットワーク ファイアウォール ポリシーとルールをオーバーライドでき、接続評価をグローバル ネットワーク ファイアウォール ポリシーとルールに委任することもできます。
デフォルトでは、階層型ファイアウォール ポリシールールは、ポリシーが関連付けられているすべてのプロジェクトのすべての VM に適用されます。ただし、ターゲット ネットワークまたはターゲット サービス アカウントを指定することで、特定のルールを取得する VM を制限できます。
現時点でファイアウォール ルールを適用できる階層のレベルを次の図に示します。黄色のボックスは、ファイアウォール ルールを含む階層型ファイアウォール ポリシーを表し、白いボックスは VPC ファイアウォール ルールを表します。
階層型ファイアウォール ポリシーの詳細
階層型ファイアウォール ポリシールールは、ファイアウォール ルールのコンテナとして機能するファイアウォール ポリシー リソースで定義されます。ファイアウォール ポリシーで定義したルールは、ポリシーがリソース(組織またはフォルダ)に関連付けられるまで適用されません。
1 つのポリシーを複数のリソースに関連付けることができます。ポリシー内のルールを変更すると、そのルールの変更は、関連付けられているすべてのリソースに適用されます。
リソースに関連付けることができるファイアウォール ポリシーは 1 つのみです。階層型ファイアウォール ポリシールールと VPC ファイアウォール ルールは、明確に定義された順序で評価されます。
どのリソースにも関連付けられていないファイアウォール ポリシーは、関連付けのない階層型ファイアウォール ポリシーです。
ポリシー名
新しいポリシーを作成すると、Google Cloud によって ID が自動的に生成され、ポリシーに割り当てられます。このほかに、ポリシーの略称も指定します。gcloud
インターフェースで既存のポリシーを更新する場合は、システム生成の ID で参照するか、略称と組織 ID の組み合わせで参照します。API を使用してポリシーを更新する場合は、システム生成の ID を指定する必要があります。
階層型ファイアウォール ポリシールールの詳細
階層型ファイアウォール ポリシールールは、ファイアウォール ポリシー ルールや VPC ファイアウォール ルールと同じように機能しますが、異なる点がいくつかあります。
階層型ファイアウォール ポリシーはターゲット ネットワークをサポートしますが、グローバル ネットワーク ファイアウォール ポリシーはサポートしません。ターゲット ネットワークを指定すると、ファイアウォール ポリシー ルールを特定のネットワーク内の VM に制限できます。ルールで VPC ネットワークを指定すると、そのルールで構成されたネットワークを制御できます。
goto_next
またはallow
と組み合わせてターゲット ネットワークを指定すると、他の制限ポリシーを定義するときに、特定のネットワークに例外を作成できます。階層型ファイアウォール ポリシーの場合、セキュアタグの統合はありません。
階層型ファイアウォール ポリシーは組織レベルのリソースであり、グローバル ネットワーク ファイアウォール ポリシーはプロジェクト レベルのリソースです。
事前定義ルール
階層型ファイアウォール ポリシーを作成すると、Cloud Next Generation Firewall は優先度が最も低い事前定義ルールをポリシーに追加します。これらのルールは、ポリシーで明示的に定義されたルールと一致しない接続に適用されます。これにより、このような接続は下位レベルのポリシーまたはネットワーク ルールで処理されます。
さまざまなタイプの事前定義ルールとその特性については、事前定義ルールをご覧ください。
Identity and Access Management(IAM)のロール
IAM ロールは、階層型ファイアウォール ポリシーに関して次のアクションを管理します。
- 特定のリソースで有効となるポリシーの作成
- 特定のリソースとポリシーの関連付け
- 既存のポリシーの変更
- 特定のネットワークまたは VM で有効なファイアウォール ルールの表示
次の表に、各ステップに必要となるロールを示します。
機能 | 必要なロール |
---|---|
新しい階層型ファイアウォール ポリシーを作成する | ポリシーが存在するリソースに対する compute.orgFirewallPolicyAdmin ロール |
ポリシーをリソースに関連付ける | ターゲット リソースに対する compute.orgSecurityResourceAdmin ロールと、ポリシーが存在するリソースまたはポリシー自体に対する compute.orgFirewallPolicyAdmin ロールまたは compute.orgFirewallPolicyUser ロール |
ポリシー ファイアウォール ルールを追加、更新、削除してポリシーを変更する | ポリシーが存在するリソースまたはポリシー自体に対する compute.orgFirewallPolicyAdmin ロール |
ポリシーを削除する | ポリシーが存在するリソースまたはポリシー自体に対する compute.orgFirewallPolicyAdmin ロール |
VPC ネットワーク上で効力のあるファイアウォール ルールの表示 | ネットワークに対する次のいずれかのロール: compute.networkAdmin compute.networkViewer compute.securityAdmin compute.viewer |
ネットワーク内の VM に対する有効なファイアウォール ルールの表示 | VM に対する次のいずれかのロール: compute.instanceAdmin compute.securityAdmin compute.viewer |
次のロールは、階層型ファイアウォール ポリシーに関連しています。
ロール名 | 説明 |
---|---|
compute.orgFirewallPolicyAdmin | リソースまたは個々のポリシーに付与できます。リソースに付与されている場合、ユーザーは階層型のファイアウォール ポリシーとルールの作成、更新、削除を行うことができます。個々のポリシーに付与されている場合、ユーザーはポリシールールを更新できますが、ポリシーを作成または削除することはできません。また、このロールを付与すると、そのリソースに対して compute.orgSecurityResourceAdmin ロールも付与されていれば、ユーザーはそのポリシーをリソースに関連付けることができます。 |
compute.orgSecurityResourceAdmin | 組織レベルまたはフォルダに対して付与することによって、フォルダレベルの管理者がそのリソースにポリシーを関連付けることができます。管理者には、ポリシーを所有するリソースまたはポリシー自体に対して、compute.orgFirewallPolicyUser ロールまたは compute.orgFirewallPolicyAdmin ロールが付与されている必要があります。 |
compute.orgFirewallPolicyUser | リソースまたは個々のポリシーに対して付与することによって、管理者は、リソースに関連付けられた個々のポリシーまたはポリシーを利用することができます。ポリシーをそのリソースに関連付けるには、ユーザーにターゲット リソースに対する compute.orgSecurityResourceAdmin ロールが付与されている必要があります。 |
compute.securityAdmin compute.viewer compute.networkUser compute.networkViewer |
ユーザーがネットワークまたはインスタンスに適用されているファイアウォール ルールを表示できるようにします。 ネットワークの compute.networks.getEffectiveFirewalls 権限とインスタンスの compute.instances.getEffectiveFirewalls 権限が含まれます。 |
次の例では、Joe は policies
フォルダ内の階層型ファイアウォール ポリシーを作成、変更、削除できますが、フォルダに対する orgSecurityResourceAdmin
のロールが付与されていないことから、階層型ファイアウォール ポリシーをフォルダに接続できません。
ただし、Joe が policy-1
を使用する権限を Mary に付与したため、その階層型ファイアウォール ポリシーを一覧表示し、dev-projects
フォルダまたはその子と関連付けることができます。orgFirewallPolicyUser
ロールでは、ポリシーをフォルダに関連付ける権限は付与されません。また、ユーザーにはターゲット フォルダに対する orgSecurityResourceAdmin
ロールも付与されている必要があります。
階層型ファイアウォール ポリシー リソースを管理する
階層型ファイアウォール ポリシーは、一連のファイアウォール ルールのみを定義し、ルールが適用される場所は定義しません。このため、これらのリソースを適用先のリソースから階層の別の部分に作成できます。これにより、1 つの階層型ファイアウォール ポリシー リソースを組織内の複数のフォルダに関連付けることができます。
次の例では、policy-1
が dev-projects
フォルダと corp-projects
フォルダに適用されるため、それらのフォルダ内のすべてのプロジェクトに適用されます。
ポリシーのルールを変更する
ポリシーでルールの追加、削除、変更を行うことができます。変更は個別に行われます。ポリシーにバッチ更新ルールのメカニズムはありません。変更が適用される順序は、コマンドが実行された順序とほぼ同じですが、保証されているわけではありません。
階層型ファイアウォール ポリシーに大規模な変更を加えて同時に適用する必要がある場合は、一時的なポリシーにポリシーのクローンを作成して、その一時的なポリシーを同じリソースに割り当てることができます。その後、元のポリシーを変更してから、元のポリシーをリソースに戻すことができます。これを行う手順については、ポリシー間でルールのクローンを作成するをご覧ください。
次の例では、policy-1
が dev-projects
フォルダに接続され、アトミックに適用されるいくつかの変更を行います。scratch-policy
という名前の新しいポリシーを作成し、既存のすべてのルールを policy-1
から scratch-policy
にコピーして編集します。編集が完了したら、すべてのルールを scratch-policy
から policy-1
にコピーして戻します。
ポリシーを移動する
プロジェクトなどの階層型ファイアウォール ポリシーは、フォルダまたは組織リソースを親として持ちます。フォルダ スキームの進化に伴い、フォルダを削除する前に、階層型ファイアウォール ポリシーを新しいフォルダに移動しなければならない場合があります。フォルダが削除されると、フォルダが所有するポリシーも削除されます。
次の図は、リソース間でポリシーを移動した場合の関係とポリシーのルールが評価される方法を示しています。
階層型ファイアウォール ポリシーをフォルダに関連付ける
階層型ファイアウォール ポリシーは、組織またはフォルダに関連付けられていない限り適用されません。関連付けが完了すると、その組織またはフォルダの下位にあるすべてのネットワークに存在するすべての VM に適用されます。
リソース階層の変更
リソース階層の変更がシステム全体に反映されるまでに時間を要する場合があります。階層内の新しい場所に定義された階層型ファイアウォール ポリシーがネットワークによって直ちに継承されない場合があるため、階層型ファイアウォール ポリシー アタッチメントとリソース階層を同時に更新しないようにすることをおすすめします。
たとえば、dept-A
フォルダを dev-projects
フォルダから eng-projects
フォルダに移動し、policy-1
の関連付けを dev-projects
ではなく eng-projects
に変更する場合は、dev-projects
に対する policy-1
の関連付けを同時に解除しないようにします。配下のすべての VPC ネットワーク内の祖先を更新する前に、dev-projects
フォルダが階層型ファイアウォール ポリシーの関連付けを失うと、短期間の間それらの VPC ネットワークは policy-1
によって保護されません。
共有 VPC で階層型ファイアウォール ポリシーを使用する
共有 VPC のシナリオでは、ホスト プロジェクトのネットワークに接続された VM インターフェースは、サービス プロジェクトではなく、ホスト プロジェクトの階層型ファイアウォール ポリシールールによって管理されます。
サービス プロジェクトがホスト プロジェクトとは異なるフォルダにある場合でも、共有ネットワークの VM インターフェースはホスト プロジェクト フォルダのルールを継承します。
VPC ネットワーク ピアリングで階層型ファイアウォール ポリシーを使用する
VPC ネットワーク ピアリングのシナリオでは、各 VPC ネットワークに関連付けられた VM インターフェースが、それぞれの VPC ネットワークの階層のポリシーを継承します。以下は、VPC ピアリング ネットワークが異なる組織に属している VPC ネットワーク ピアリングの例です。
次のステップ
- 階層型ファイアウォール ポリシーとルールの作成方法と変更方法を確認する。階層型ファイアウォール ポリシーの使用をご覧ください。
- 階層型ファイアウォール ポリシーの実装例を確認する。階層型ファイアウォール ポリシーの例をご覧ください。