Private Service Connect コンシューマーのセキュリティを管理する

このページでは、Private Service Connect を使用するコンシューマー組織と VPC ネットワークのセキュリティをサービス ユーザーが構成する方法について説明します。

組織のポリシーを使用すると、管理者は Private Service Connect エンドポイントとバックエンドを使用して、プロジェクトに接続できる VPC ネットワークまたは組織を幅広く制御できます。VPC ファイアウォール ルールとファイアウォール ポリシーを使用すると、ネットワーク管理者は Private Service Connect リソースへのネットワーク レベルのアクセスを制御できます。組織のポリシーとファイアウォール ルールは相互補完的に使用できます。

ロール

組織のポリシーを管理するために必要な権限を取得するには、組織に対する組織ポリシー管理者roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

ファイアウォール ルールの作成に必要な権限を取得するには、VPC ネットワークに対する Compute ネットワーク管理者roles/compute.networkAdmin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

コンシューマーに関する組織のポリシー

組織のポリシーリスト型制約を使用すると、Private Service Connect のエンドポイントまたはバックエンドのデプロイを制御できます。エンドポイントまたはバックエンドがコンシューマーの組織のポリシーによってブロックされている場合、リソースの作成は失敗します。

詳細については、コンシューマー側の組織のポリシーをご覧ください。

エンドポイントとバックエンドが未承認のサービス アタッチメントに接続できないようにする

リソース: エンドポイントとバックエンド

gcloud

  1. 新しいポリシーを保存するために、/tmp/policy.yaml という名前の一時ファイルを作成します。次の内容をファイルに追加します。

    name: organizations/CONSUMER_ORG/policies/compute.restrictPrivateServiceConnectProducer
    spec:
      rules:
        - values:
            allowedValues:
            - under:organizations/PRODUCER_ORG_NUMBER
            - under:organizations/433637338589
    

    次のように置き換えます。

    • CONSUMER_ORG: エンドポイントとバックエンドの接続を制御する組織の組織リソース ID
    • PRODUCER_ORG_NUMBER: エンドポイントとバックエンドを接続するプロデューサー組織の数値リソース ID。

    エンドポイントとバックエンドが Google 所有のサービス アタッチメントに接続しないようにするには、allowedValues セクションから - under:organizations/433637338589 を削除します。

    プロジェクト内のサービス アタッチメントに接続できる組織を追加で指定するには、allowedValues セクションに追加のエントリを含めます。

    組織に加えて、承認済みのフォルダとプロジェクトを次の形式で指定できます。

    • under:folders/FOLDER_ID

      FOLDER_ID は数値 ID である必要があります。

    • under:projects/PROJECT_ID

      PROJECT_ID は文字列 ID である必要があります。

    たとえば、次のコードを使用すると、サービス アタッチメントが許可された値またはその子孫に関連付けられていない限り、Consumer-org-1 のエンドポイントとバックエンドがサービス アタッチメントに接続できないようにする組織のポリシーを作成できます。指定できる値は、組織 Producer-org-1、プロジェクト Producer-project-1、フォルダ Producer-folder-1 です。

    name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
    spec:
        rules:
          - values:
              allowedValues:
              - under:organizations/Producer-org-1
              - under:projects/Producer-project-1
              - under:folders/Producer-folder-1
    
  2. ポリシーを適用します。

    gcloud org-policies set-policy /tmp/policy.yaml
    
  3. 有効なポリシーを表示します。

    gcloud org-policies describe compute.restrictPrivateServiceConnectProducer \
        --effective \
        --organization=CONSUMER_ORG
    

コンシューマーによる接続タイプごとのエンドポイントのデプロイをブロックする

リソース: エンドポイント

gcloud

  1. 新しいポリシーを保存するために、/tmp/policy.yaml という名前の一時ファイルを作成します。

    • コンシューマー組織のユーザーが Google API に接続するエンドポイントを作成できないようにするには、次の内容をファイルに追加します。

      name: organizations/CONSUMER_ORG/policies/compute.disablePrivateServiceConnectCreationForConsumers
      spec:
        rules:
          - values:
              allowedValues:
              - SERVICE_PRODUCERS
      
    • コンシューマー組織のユーザーが公開サービスに接続するエンドポイントを作成できないようにするには、次の内容をファイルに追加します。

      name: organizations/CONSUMER_ORG/policies/compute.disablePrivateServiceConnectCreationForConsumers
      spec:
        rules:
          - values:
              allowedValues:
              - GOOGLE_APIS
      

    CONSUMER_ORG は、エンドポイントのデプロイを制御するコンシューマー組織の名前に置き換えます。

  2. ポリシーを適用します。

    gcloud org-policies set-policy /tmp/policy.yaml
    
  3. 有効なポリシーを表示します。

    gcloud org-policies describe compute.restrictPrivateServiceConnectProducer \
        --effective \
        --organization=CONSUMER_ORG
    

ファイアウォール ルール

リソース: すべて

VPC ファイアウォール ルールまたはファイアウォール ポリシーを使用して、Private Service Connect リソースへのアクセスを制御できます。下り(外向き)ファイアウォール ルールでは、VM インスタンスからエンドポイントやバックエンドの IP アドレスまたはサブネットへのアクセスをブロックまたは許可できます。

たとえば、図 1 は、ファイアウォール ルールによって Private Service Connect エンドポイントが接続されているサブネットへのアクセスを制御する構成を示しています。

ファイアウォール ルールは、エンドポイント サブネットへのトラフィックを制御します。vm-1 からのトラフィックはエンドポイント サブネットに到達できますが、vm-2 からのトラフィックはブロックされます(クリックして拡大)。
  1. 次のファイアウォール ルールは、エンドポイント サブネットへのすべての下り(外向き)トラフィックを拒否します。

    gcloud compute firewall-rules create deny-all \
        --network=vpc-1 \
        --direction=egress \
        --action=deny \
        --destination-ranges=10.33.0.0/24
        --priority=1000
    
  2. 次の優先度の高いファイアウォール ルールでは、allow-psc ネットワーク タグを持つ VM のエンドポイント サブネットへの下り(外向き)トラフィックが許可されます。

    gcloud compute firewall-rules create allow-psc \
        --network=vpc-1 \
        --direction=egress \
        --action=allow \
        --target-tags=allow-psc \
        --destination-ranges=10.33.0.0/24
        --priority=100
    

ファイアウォール ルールを使用してエンドポイントまたはバックエンドへのアクセスを制限する

VM からエンドポイントまたはバックエンド サブネットへのアクセスを制限するには、次のようにします。

  1. エンドポイントまたはバックエンド サブネットへの下り(外向き)トラフィックを拒否するファイアウォール ルールを作成します。

    gcloud compute firewall-rules create deny-all \
        --network=NETWORK \
        --direction=egress \
        --action=deny \
        --destination-ranges=ENDPOINT_SUBNET_RANGE \
        --priority=1000
    

    次のように置き換えます。

    • NETWORK: エンドポイントまたはバックエンドのネットワークの名前。
    • ENDPOINT_SUBNET_RANGE: アクセスを制御するエンドポイントまたはバックエンド サブネットの IP CIDR 範囲。
  2. タグ付けされた VM からエンドポイントまたはバックエンド サブネットへの下り(外向き)トラフィックを許可する 2 つ目のファイアウォール ルールを作成します。

    gcloud compute firewall-rules create allow-psc \
        --network=NETWORK \
        --direction=egress \
        --action=allow \
        --target-tags=allow-psc \
        --destination-ranges=ENDPOINT_SUBNET_RANGE \
        --priority=100