ネットワーク アタッチメントのセキュリティを構成する

このページでは、コンシューマ ネットワーク管理者がネットワーク アタッチメントを使用する VPC ネットワークのセキュリティを管理する方法について説明します。

Private Service Connect インターフェースはプロデューサー組織によって作成、管理されますが、コンシューマ VPC ネットワーク内にあります。コンシューマー側のセキュリティでは、コンシューマーの VPC ネットワークの IP アドレス範囲に基づくファイアウォール ルールを作成することをおすすめします。このアプローチにより、コンシューマーは、プロデューサーのネットワーク タグに依存せずに Private Service Connect インターフェースからのトラフィックを制御できます。

ファイアウォール ルールでネットワーク タグを使用することもできますが、これらのタグはコンシューマーで制御されないため、この方法はおすすめしません。

プロデューサーからコンシューマへの上り(内向き)を制限する

図 1 の構成例について考えてみましょう。ここでは、コンシューマがプロデューサーに producer-ingress-subnet へのアクセスを許可し、restricted-subnet へのアクセスをブロックしています。

図 1. ファイアウォール ルールにより、プロデューサー サブネットからのトラフィックは attachment-subnetproducer-ingress-subnet サブネットの VM にのみ到達できます。

次のファイアウォール ルールでは、プロデューサーからコンシューマーへの制限付きの上り(内向き)が許可されています。

  1. 優先度の低いルールにより、ネットワーク アタッチメントのサブネット 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"
    
  2. 優先度の高いルールにより、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"
    
  3. 上り(内向き)の許可ルールにより、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 に許可しています。

図 2. 上り(内向き)許可ファイアウォール ルールにより、subnet-1 は Private Service Connect 接続を介してプロデューサー ネットワークにアクセスできますが、subnet-2 は暗黙の上り(内向き)拒否ルールによってブロックされます(クリックして拡大)。

次のファイアウォール ルールにより、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 ファイアウォール ルールを使用する方法です。

図 3.データベース アプリケーションにバインドされている分析アプリケーションからのトラフィックは、コンシューマーの VPC ネットワークを通過します。VPC ファイアウォール ルールは、送信元の IP アドレス範囲に基づいて下り(外向き)トラフィックを制限します(クリックして拡大)。

この方法では、コンシューマー ネットワークはあるサブネット内のエンドポイントを介してデータベース アプリケーションに接続し、別のサブネット内のネットワーク アタッチメントを介して分析アプリケーションに接続します。分析アプリケーションからのトラフィックは、Private Service Connect インターフェースとネットワーク アタッチメントを通過し、コンシューマー ネットワークを通過して、endpoint-subnet のエンドポイントを介して下り(外向き)でデータベース アプリケーションに到達します。

コンシューマーの VPC ネットワークでは、VPC ファイアウォール ルールにより attachment-subnet からのすべての下り(外向き)トラフィックが拒否されます。優先度の高い別のファイアウォール ルールにより、attachment-subnetconsumer-private-subnet からエンドポイントへの下り(外向き)トラフィックが許可されます。その結果、分析アプリケーションからのトラフィックはデータベース アプリケーションの VPC ネットワークに到達できますが、このトラフィックはコンシューマのエンドポイントを通過する必要があります。

次のファイアウォール ルールにより、図 4 に示す構成が実現されます。

  1. ファイアウォール ルールにより、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"
    
  2. ファイアウォール ルールにより、attachment-subnetconsumer-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