ネットワーク アタッチメントの作成と管理

このページでは、コンシューマ ネットワーク管理者が Private Service Connect ネットワーク アタッチメントを作成および管理する方法について説明します。ネットワーク アタッチメントを使用すると、サービス プロデューサーの VPC ネットワークがコンシューマの VPC ネットワークへの接続を開始できます。

始める前に

  • プロジェクトで Compute Engine API有効にする必要があります。
  • ネットワーク アタッチメントに接続できるプロジェクトを手動で指定する場合は、プロジェクトの ID が必要です。

ロール

ネットワーク アタッチメントを作成、表示、削除するために必要な権限を取得するには、プロジェクトで Compute ネットワーク管理者roles/compute.networkAdmin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

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

サブネットの作成

ネットワーク アタッチメントを作成するときに、単一の通常のサブネットを割り当てます。このサブネットは、ネットワーク アタッチメントと同じリージョンに存在する必要があります。1 つのサブネットを複数のネットワーク アタッチメント間で共有できます。サブネットは IPv4 のみまたはデュアルスタックにできます。デュアルスタック サブネットは、内部 IPv6 範囲を使用する必要があります。

サブネットの作成の詳細については、VPC ネットワークの作成と管理をご覧ください。

ネットワーク アタッチメントを作成する

ネットワーク アタッチメントは、Private Service Connect インターフェース接続のコンシューマー側を表すリージョン リソースです。仮想マシン(VM)インスタンスを正常に作成するには、ネットワーク アタッチメントが、関連する Private Service Connect インターフェースの VM と同じリージョンに存在する必要があります。

ネットワーク アタッチメントの接続ポリシーにより、ネットワーク アタッチメントが Private Service Connect インターフェースからの接続を受け入れられるかどうかが決まります。

ネットワーク アタッチメントのサブネット、承認リスト、拒否リスト、説明を更新できます。

接続を手動で受け入れるネットワーク アタッチメントを作成する

接続を手動で受け入れるネットワーク アタッチメントを作成できます。このタイプのアタッチメントを作成する前に、受け入れるプロジェクトの ID を把握しておく必要があります。

コンソール

  1. Google Cloud コンソールで [Private Service Connect] に移動します。

    [Private Service Connect] に移動

  2. [ネットワーク アタッチメント] をクリックします。

  3. [ネットワーク アタッチメントの作成] をクリックします。

  4. 名前を入力します。

  5. ネットワークを選択します。

  6. リージョンを選択します。

  7. サブネットワークを選択します。

  8. [選択したプロジェクトの接続を受け入れる] をクリックします。

  9. [承認済みプロジェクトを追加] をクリックし、接続を承認するプロジェクトの ID を入力します。

  10. (省略可)[不承認となったプロジェクトを追加] をクリックして、接続を明示的に拒否する各プロジェクトの ID を入力します。

  11. [ネットワーク アタッチメントの作成] をクリックします。

gcloud

network-attachments create コマンドを使用します。

gcloud compute network-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --connection-preference=ACCEPT_MANUAL \
    --producer-accept-list=ACCEPTED_PROJECTS \
    --producer-reject-list=REJECTED_PROJECTS \
    --subnets=SUBNET_NAME

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

  • ATTACHMENT_NAME: ネットワーク アタッチメントの名前。
  • REGION: ネットワーク アタッチメントのリージョン。
  • ACCEPTED_PROJECTS: このネットワーク アタッチメントに接続できるプロジェクトの ID。複数の値をカンマ区切りリストで指定できます。
  • REJECTED_PROJECTS: このネットワーク アタッチメントに接続できないプロジェクトの ID。複数の値をカンマ区切りリストで指定できます。
  • SUBNET_NAME: このネットワーク アタッチメントに関連付けるサブネットの名前。

API

networkAttachments.insert メソッドPOST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/networkAttachments
{
  "connectionPreference": "ACCEPT_MANUAL",
  "name": "ATTACHMENT_NAME",
  "producerAcceptLists": [
    "ACCEPTED_PROJECT_LIST"
  ],
  "producerRejectLists": [
    "REJECTED_PROJECT_LIST"
  ],
  "subnetworks": [
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
  ]
}

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

  • PROJECT_ID: ネットワーク アタッチメントを作成するプロジェクトの ID。
  • REGION: ネットワーク アタッチメントのリージョン
  • ATTACHMENT_NAME: ネットワーク アタッチメントの名前
  • ACCEPTED_PROJECT_LIST: このネットワーク アタッチメントに接続できるプロジェクトの ID。複数の ID を使用する場合は、"id-one", "id-two" の形式で指定します。
  • REJECTED_PROJECT_LIST: このネットワーク アタッチメントに接続できないプロジェクトの ID。複数の ID を使用する場合は、"id-one", "id-two" の形式で指定します。
  • SUBNET_NAME: ネットワーク アタッチメントに関連付けるサブネットの名前。

接続を自動的に受け入れるネットワーク アタッチメントを作成する

ネットワーク アタッチメントを参照する Private Service Connect インターフェースからの接続を自動的に受け入れるネットワーク アタッチメントを作成できます。

コンソール

  1. Google Cloud コンソールで [Private Service Connect] に移動します。

    [Private Service Connect] に移動

  2. [ネットワーク アタッチメント] をクリックします。

  3. [ネットワーク アタッチメントの作成] をクリックします。

  4. 名前を入力します。

  5. ネットワークを選択します。

  6. リージョンを選択します。

  7. サブネットワークを選択します。

  8. [すべてのプロジェクトの接続を自動的に受け入れる] をクリックします。

  9. [ネットワーク アタッチメントの作成] をクリックします。

gcloud

network-attachments create コマンドを使用します。

gcloud compute network-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --connection-preference=ACCEPT_AUTOMATIC \
    --subnets=SUBNET_NAME

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

  • ATTACHMENT_NAME: ネットワーク アタッチメントの名前。
  • REGION: ネットワーク アタッチメントのリージョン。
  • SUBNET_NAME: このネットワーク アタッチメントに関連付けるサブネットの名前。

API

networkAttachments.insert メソッドPOST リクエストを送信します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/networkAttachments
{
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "name": "ATTACHMENT_NAME",
  "subnetworks": [
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
  ]
}

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

  • PROJECT_ID: ネットワーク アタッチメントを作成するプロジェクトの ID。
  • REGION: ネットワーク アタッチメントのリージョン
  • ATTACHMENT_NAME: ネットワーク アタッチメントの名前
  • SUBNET_NAME: ネットワーク アタッチメントに関連付けるサブネットの名前。

ネットワーク アタッチメントを一覧取得する

コンソール

  1. Google Cloud コンソールで [Private Service Connect] に移動します。

    [Private Service Connect] に移動

  2. [ネットワーク アタッチメント] をクリックします。

gcloud

  • プロジェクト内のすべてのネットワーク アタッチメントを一覧表示するには、network-attachments list コマンドを使用します。

    gcloud compute network-attachments list
    
  • 特定のリージョンのネットワーク アタッチメントを一覧表示するには、network-attachments list コマンドを使用してリージョンを指定します。

    gcloud compute network-attachments list
       --regions=REGIONS
    

    REGIONS は、ネットワーク アタッチメントを一覧表示するリージョンに置き換えます。複数のリージョンをカンマ区切りリストで指定できます。

API

特定のリージョンのネットワーク アタッチメントを一覧表示するには、networkAttachments.list メソッドGET リクエストを送信します。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/networkAttachments

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

  • PROJECT_ID: プロジェクトの ID。
  • REGION: ネットワーク アタッチメントのリージョン。

ネットワーク アタッチメントの説明を取得する

ネットワーク アタッチメントの説明を取得して、関連する Private Service Connect インターフェース接続などの詳細を確認できます。接続ごとに、Private Service Connect インターフェースに割り当てられた IP アドレスを確認できます。

コンソール

  1. Google Cloud コンソールで [Private Service Connect] に移動します。

    [Private Service Connect] に移動

  2. [ネットワーク アタッチメント] をクリックします。

  3. ネットワーク アタッチメントを選択すると、その詳細と接続されているプロジェクトのリストが表示されます。

  4. プロジェクトの個々の Private Service Connect インターフェース接続を表示するには、プロジェクトの名前をクリックします。

    プロジェクトの接続ステータスによって、そのプロジェクトからの Private Service Connect インターフェース接続のステータスが特定できるとは限りません。たとえば、プロジェクトからの接続を承認した後にそのプロジェクトを拒否リストに追加すると、プロジェクトのステータスは「拒否」になりますが、既存の接続は開いたままになります。そのプロジェクトからの新しい接続は拒否されます。

gcloud

network-attachments describe コマンドを使用します。

gcloud compute network-attachments describe ATTACHMENT_NAME \
    --region=REGION

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

  • ATTACHMENT_NAME: 説明を取得するネットワーク アタッチメントの名前。
  • REGION: ネットワーク アタッチメントのリージョン

API

ネットワーク アタッチメントとその詳細を表示するには、networkAttachments.get メソッドGET リクエストを送信します。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/networkAttachments/ATTACHMENT_NAME

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

  • PROJECT_ID: プロジェクトの ID。
  • REGION: ネットワーク アタッチメントのリージョン。
  • ATTACHMENT_NAME: ネットワーク アタッチメントの名前。

ネットワーク アタッチメントを更新する

ネットワーク アタッチメントを更新するには、サブネットや説明を置き換えることで更新できます。また、接続を手動で受け入れるように作成されたネットワーク アタッチメントの場合は、承認リストまたは拒否リストを置き換えることで更新できます。他のフィールドを更新する必要がある場合は、ネットワーク アタッチメントを削除してから、新しいネットワーク アタッチメントを作成します。

ネットワーク アタッチメントのサブネットを置き換えても、既存の接続は影響を受けません。更新後に作成された接続では、新しいサブネットの IP アドレスが使用されます。

ネットワーク アタッチメントの承認リストまたは拒否リストを置き換えても、既存の接続は影響を受けません。更新後に作成された接続は、更新されたリストに従って承認または拒否されます。

コンソール

  1. Google Cloud コンソールで [Private Service Connect] に移動します。

    [Private Service Connect] に移動

  2. [ネットワーク アタッチメント] をクリックします。

  3. 更新するネットワーク アタッチメントをクリックして、[編集] をクリックします。

  4. ネットワーク アタッチメントのサブネットワークを置き換えるには、[サブネットワーク] をクリックして、新しいサブネットワークを選択します。

  5. 承認リストを更新するには、次の操作を行います。

    1. プロジェクトを承認リストに追加するには、[承認済みプロジェクトを追加] をクリックし、承認するプロジェクトのプロジェクト ID またはプロジェクト番号を入力します。
    2. 承認リストからプロジェクトを削除するには、プロジェクトの上にポインタを置いて、[ 承認済みプロジェクトを削除] をクリックします。
  6. 拒否リストを更新するには、次の操作を行います。

    1. プロジェクトを拒否リストに追加するには、[不承認となったプロジェクトを追加] をクリックし、拒否するプロジェクトのプロジェクト ID またはプロジェクト番号を入力します。
    2. 承認リストからプロジェクトを削除するには、プロジェクトの上にポインタを置いて、[ 不承認となったプロジェクトを削除] をクリックします。
  7. [ネットワーク アタッチメントを更新] をクリックします。

gcloud

network-attachments update コマンドを使用します。ここに記載されているフィールドは、ネットワーク アタッチメントの識別に使用されるリージョンを除き、1 つ以上更新できます。ネットワーク アタッチメントの許可リストまたは拒否リストを更新する場合は、1 回の更新でリスト全体を置き換える必要があります。

gcloud compute network-attachments update ATTACHMENT_NAME \
    --region=REGION \
    --subnets=SUBNET \
    --producer-accept-list=ACCEPTED_PROJECTS \
    --producer-reject-list=REJECTED_PROJECTS \
    --description=DESCRIPTION

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

  • ATTACHMENT_NAME: ネットワーク アタッチメントの名前。
  • REGION: ネットワーク アタッチメントのリージョン。このフラグは、ネットワーク アタッチメントを識別するために使用されます。ネットワーク アタッチメントのリージョンは更新できません。
  • SUBNET: このネットワーク アタッチメントに関連付けるサブネットの名前。
  • ACCEPTED_PROJECTS: このネットワーク アタッチメントに接続できるプロジェクトの ID。複数の値をカンマ区切りリストで指定できます。ここで指定したリストで、既存の許可リストが置き換えられます。
  • REJECTED_PROJECTS: このネットワーク アタッチメントに接続できないプロジェクトの ID。複数の値をカンマ区切りリストで指定できます。ここで指定したリストで、既存の拒否リストが置き換えられます。
  • DESCRIPTION: ネットワーク アタッチメントの説明。

API

  1. API リクエストを送信して、更新するネットワーク アタッチメントの説明を取得します。
  2. ネットワーク アタッチメントの fingerprint フィールドの値をメモします。
  3. networkAttachments.patch メソッドPATCH リクエストを送信します。リクエスト本文から、置換しないフィールドを省略します(fingerprint を除く)。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/networkAttachments/ATTACHMENT_NAME
    {
      "fingerprint": "FINGERPRINT",
      "producerAcceptLists": [
        "ACCEPTED_PROJECT_LIST"
      ],
      "producerRejectLists": [
        "REJECTED_PROJECT_LIST"
      ],
      "subnetworks": [
        "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
      ],
      "description": "DESCRIPTION"
    }
    

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

    • PROJECT_ID: プロジェクトの ID。
    • REGION: ネットワーク アタッチメントのリージョン。
    • ATTACHMENT_NAME: ネットワーク アタッチメントの名前。
    • FINGERPRINT: 手順 2 で確認したフィンガープリント フィールドの値。
    • ACCEPTED_PROJECT_LIST: このネットワーク アタッチメントに接続できるプロジェクトの ID。複数の ID を使用する場合は、"id-one", "id-two" の形式で指定します。このリストを更新すると、以前に承認されたプロジェクト リストがすべて置き換えられます。
    • REJECTED_PROJECT_LIST: このネットワーク アタッチメントに接続できないプロジェクトの ID。複数の ID を使用する場合は、"id-one", "id-two" の形式で指定します。このリストを更新すると、以前に不承認となったプロジェクトのリストがすべて置き換えられます。
    • SUBNET_NAME: ネットワーク アタッチメントに関連付ける新しいサブネットの名前。
    • DESCRIPTION: ネットワーク アタッチメントの説明の更新。

ネットワーク アタッチメントを削除する

接続がない場合は、ネットワーク アタッチメントを削除できます。接続があるネットワーク アタッチメントを削除するには、プロデューサーが、関連付けられている Private Service Connect インターフェースを削除する必要があります。

ネットワーク アタッチメントを削除してから同じ名前の新しいネットワーク アタッチメントを作成すると、これらのネットワーク アタッチメントは 2 つの別々のリソースとして扱われます。

コンソール

  1. Google Cloud コンソールで [Private Service Connect] に移動します。

    [Private Service Connect] に移動

  2. [ネットワーク アタッチメント] をクリックします。

  3. ネットワーク アタッチメントを選択し、[削除] をクリックします。

  4. もう一度 [削除] をクリックして確定します。

gcloud

network-attachments delete コマンドを使用します。

gcloud compute network-attachments delete ATTACHMENT_NAME \
    --region=REGION

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

  • ATTACHMENT_NAME: 説明を取得するネットワーク アタッチメントの名前。
  • REGION: ネットワーク アタッチメントのリージョン

API

networkAttachments.delete メソッドDELETE リクエストを送信します。

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/networkAttachments/ATTACHMENT_NAME

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

  • PROJECT_ID: プロジェクトの ID。
  • REGION: ネットワーク アタッチメントのリージョン。
  • ATTACHMENT_NAME: ネットワーク アタッチメントの名前。

次のステップ