ネットワーク アタッチメントのセキュリティを構成する
このページでは、コンシューマ ネットワーク管理者がネットワーク アタッチメントを使用する VPC ネットワークのセキュリティを管理する方法について説明します。
Private Service Connect インターフェースはプロデューサー組織によって作成、管理されますが、コンシューマ VPC ネットワーク内にあります。コンシューマー側のセキュリティでは、コンシューマーの VPC ネットワークの IP アドレス範囲に基づくファイアウォール ルールを作成することをおすすめします。このアプローチにより、コンシューマーは、プロデューサーのネットワーク タグに依存せずに Private Service Connect インターフェースからのトラフィックを制御できます。
ファイアウォール ルールでネットワーク タグを使用することもできますが、これらのタグはコンシューマーで制御されないため、この方法はおすすめしません。
プロデューサーからコンシューマへの上り(内向き)を制限する
図 1 の構成例について考えてみましょう。ここでは、コンシューマがプロデューサーに producer-ingress-subnet
へのアクセスを許可し、restricted-subnet
へのアクセスをブロックしています。
次のファイアウォール ルールでは、プロデューサーからコンシューマーへの制限付きの上り(内向き)が許可されています。
優先度の低いルールにより、ネットワーク アタッチメントのサブネット
attachment-subnet
の IP アドレス範囲からの下り(外向き)トラフィックがすべて拒否されます。gcloud compute firewall-rules create deny-all-egress \ --network=consumer-vpc \ --action=DENY \ --rules=ALL \ --direction=EGRESS \ --priority=65534 \ --source-ranges="10.0.1.48/28" \ --destination-ranges="0.0.0.0/0"
優先度の高いルールにより、
attachment-subnet
の IP アドレス範囲からproducer-ingress-subnet
のアドレス範囲内の宛先への下り(外向き)が許可されます。gcloud compute firewall-rules create allow-limited-egress \ --network=consumer-vpc \ --action=ALLOW \ --rules=ALL \ --direction=EGRESS \ --priority=1000 \ --source-ranges="10.0.1.48/28" \ --destination-ranges="10.10.2.0/24"
上り(内向き)の許可ルールにより、
attachment-subnet
からのトラフィックに対する暗黙の上り(内向き)拒否ルールがオーバーライドされます。gcloud compute firewall-rules create allow-ingress \ --network=consumer-vpc \ --action=ALLOW \ --rules=ALL \ --direction=INGRESS \ --priority=1000 \ --source-ranges="10.0.1.48/28"
コンシューマからプロデューサーへの下り(外向き)を許可する
コンシューマ ネットワークがプロデューサー ネットワークへのトラフィックを開始することを許可する場合は、上り(内向き)ファイアウォール ルールを使用します。
図 2 の構成例について考えてみましょう。ここで、コンシューマは Private Service Connect 接続経由でのプロデューサー ネットワークへのアクセスを subnet-1
に許可しています。
次のファイアウォール ルールにより、subnet-1
のみが Private Service Connect 接続経由でプロデューサー ネットワークにアクセスできるようになります。
gcloud compute firewall-rules create vm-subnet-allow-ingress \ --network=consumer-vpc \ --action=ALLOW \ --rules=ALL \ --direction=INGRESS \ --priority=1000 \ --source-ranges="10.10.2.0/24" \ --destination-ranges="10.0.1.48/28"
プロデューサー間のセキュリティを構成する
セキュリティ用の VPC ファイアウォール ルールは、プロデューサー アプリケーションが別のプロデューサー アプリケーションにアクセスする必要がある場合に使用できます。
ユーザーが異なる VPC ネットワークにホストされている 2 つのサードパーティ マネージド サービスを使用する場合について考えてみましょう。1 つのサービスはデータベースで、もう 1 つは分析サービスを提供します。分析サービスは、データベース サービスに接続してデータを分析します。まず、サービスを直接接続する方法が考えられます。ただし、2 つのサードパーティ サービスを直接接続した場合、コンシューマーはデータの制御と可視性を失います。
より安全なアプローチは、図 3 のように、Private Service Connect インターフェース、Private Service Connect エンドポイント、VPC ファイアウォール ルールを使用する方法です。
この方法では、コンシューマー ネットワークはあるサブネット内のエンドポイントを介してデータベース アプリケーションに接続し、別のサブネット内のネットワーク アタッチメントを介して分析アプリケーションに接続します。分析アプリケーションからのトラフィックは、Private Service Connect インターフェースとネットワーク アタッチメントを通過し、コンシューマー ネットワークを通過して、endpoint-subnet
のエンドポイントを介して下り(外向き)でデータベース アプリケーションに到達します。
コンシューマーの VPC ネットワークでは、VPC ファイアウォール ルールにより attachment-subnet
からのすべての下り(外向き)トラフィックが拒否されます。優先度の高い別のファイアウォール ルールにより、attachment-subnet
と consumer-private-subnet
からエンドポイントへの下り(外向き)トラフィックが許可されます。その結果、分析アプリケーションからのトラフィックはデータベース アプリケーションの VPC ネットワークに到達できますが、このトラフィックはコンシューマのエンドポイントを通過する必要があります。
次のファイアウォール ルールにより、図 4 に示す構成が実現されます。
ファイアウォール ルールにより、
attachment-subnet
からの下り(外向き)トラフィックがすべてブロックされます。gcloud compute firewall-rules create consumer-deny-all-egress \ --network=consumer-vpc \ --action=DENY \ --rules=all \ --direction=EGRESS \ --priority=65534 \ --source-ranges="10.0.1.48/28" \ --destination-ranges="0.0.0.0/0"
ファイアウォール ルールにより、
attachment-subnet
とconsumer-private-subnet
からエンドポイントへのポート 80 での下り(外向き)TCP トラフィックが許可されます。gcloud compute firewall-rules create consumer-allow-80-egress \ --network=intf-consumer-vpc \ --allow=tcp:80 \ --direction=EGRESS \ --source-ranges="10.0.1.48/28,10.10.2.0/24" \ --destination-ranges="10.0.1.66/32" \ --priority=1000