GCP - VPC & Networking

Support HackTricks

GCP Compute Networking in a Nutshell

VPCは、VPCへの着信トラフィックを許可するファイアウォールルールを含みます。VPCは、仮想マシン接続されるサブネットワークも含みます。 AWSと比較すると、ファイアウォールAWSセキュリティグループとNACLに最も近いものですが、この場合、これらは各インスタンスではなくVPC内で定義されています。

VPC、サブネットワーク & ファイアウォール in GCP

Compute Instancesは、VPCの一部であるサブネットワークに接続されています(Virtual Private Clouds)。GCPにはセキュリティグループはなく、VPCファイアウォールがあり、これらのルールはこのネットワークレベルで定義され、各VMインスタンスに適用されます。

サブネットワーク

VPC複数のサブネットワークを持つことができます。各サブネットワークは1つのリージョンにあります。

ファイアウォール

デフォルトでは、すべてのネットワークには2つの暗黙のファイアウォールルールがあります:アウトバウンドを許可し、インバウンドを拒否します。

GCPプロジェクトが作成されると、**default**というVPCも作成され、以下のファイアウォールルールが設定されます:

  • default-allow-internal: defaultネットワーク上の他のインスタンスからのすべてのトラフィックを許可

  • default-allow-ssh: どこからでも22を許可

  • default-allow-rdp: どこからでも3389を許可

  • default-allow-icmp: どこからでもpingを許可

ご覧のとおり、ファイアウォールルール内部IPアドレスに対してより許可的である傾向があります。デフォルトのVPCは、Compute Instances間のすべてのトラフィックを許可します。

デフォルトのVPCまたは新しいVPCのために、さらにファイアウォールルールを作成できます。ファイアウォールルールは、以下の方法でインスタンスに適用できます:

残念ながら、インターネット上のオープンポートを持つすべてのCompute Instancesを出力する簡単なgcloudコマンドはありません。ファイアウォールルール、ネットワークタグ、サービスアカウント、インスタンスの間の関連をつなぐ必要があります。

このプロセスは、このpythonスクリプトを使用して自動化され、以下をエクスポートします:

  • インスタンス、パブリックIP、許可されたTCP、許可されたUDPを示すCSVファイル

  • パブリックインターネットから許可されたポートに対してすべてのインスタンスをターゲットにしたnmapスキャン

  • パブリックインターネットからすべてのTCPポートを許可するインスタンスのTCP範囲全体をターゲットにしたmasscan

階層的ファイアウォールポリシー

_階層的ファイアウォールポリシー_を使用すると、組織全体で一貫したファイアウォールポリシーを作成し、強制することができます。階層的ファイアウォールポリシーを組織全体または個々のフォルダー**に割り当てることができます。これらのポリシーには、接続を明示的に拒否または許可するルールが含まれています。

ファイアウォールポリシーは、別々のステップとして作成および適用します。ファイアウォールポリシーは、リソース階層組織またはフォルダーノードで作成および適用できます。ファイアウォールポリシールールは、接続をブロック、接続を許可、またはファイアウォールルールの評価を下位フォルダーまたはVPCネットワークで定義されたVPCファイアウォールルールに委任できます。

デフォルトでは、すべての階層的ファイアウォールポリシールールは、ポリシーが関連付けられている組織またはフォルダーのすべてのプロジェクト内のすべてのVMに適用されます。ただし、ターゲットネットワークまたはターゲットサービスアカウントを指定することで、特定のルールを受け取るVMを制限できます。

階層的ファイアウォールポリシーを作成する方法については、こちらをお読みください。

ファイアウォールルールの評価

  1. Org: 組織に割り当てられたファイアウォールポリシー

  2. Folder: フォルダーに割り当てられたファイアウォールポリシー

  3. VPC: VPCに割り当てられたファイアウォールルール

  4. Global: VPCに割り当てることができる別のタイプのファイアウォールルール

  5. Regional: VMのNICとVMのリージョンに関連付けられたVPCネットワークのファイアウォールルール。

VPCネットワークピアリング

2つの仮想プライベートクラウド(VPC)ネットワークを接続し、各ネットワーク内のリソースが互いに通信できるようにします。 ピアリングされたVPCネットワークは、同じプロジェクト内、同じ組織の異なるプロジェクト、または異なる組織の異なるプロジェクトに存在できます。

必要な権限は次のとおりです:

  • compute.networks.addPeering

  • compute.networks.updatePeering

  • compute.networks.removePeering

  • compute.networks.listPeeringRoutes

More in the docs.

References

Support HackTricks

Last updated