创建和管理网络连接

本页面介绍使用方网络管理员如何创建和管理 Private Service Connect 网络连接。网络连接允许服务提供方 VPC 网络发起与使用方 VPC 网络的连接。

准备工作

  • 您必须在项目中启用 Compute Engine API
  • 如果要手动指定哪些项目可以连接到网络连接,则需要知道这些项目的 ID。

角色

如需获得创建、查看和删除网络连接所需的权限,请让管理员针对您的项目向您授予 Compute Network Admin (roles/compute.networkAdmin) IAM 角色。 如需详细了解如何授予角色,请参阅管理访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

创建子网

创建网络连接时,可以为它分配一个常规子网。子网必须与网络连接位于同一区域。一个子网可以在多个网络连接之间共享。

当网络连接接受来自 Private Service Connect 接口的连接时,Google Cloud 会为该接口分配子网主要 IP 地址范围中的一个 IP 地址。如果子网为双栈,则提供方可以在创建时指定 Google Cloud 是仅为关联的 Private Service Connect 接口分配 IPv4 地址,还是同时分配 IPv4 和 IPv6 地址。

如需详细了解如何创建子网,请参阅创建和管理 VPC 网络

创建网络连接

网络连接是区域级资源,表示 Private Service Connect 接口连接的使用方端。如需成功创建虚拟机实例,网络连接必须与关联的 Private Service Connect 接口的虚拟机位于同一区域。

网络连接的连接政策确定网络连接是否可以接受来自 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 地址。

如果您替换网络连接的接受或拒绝列表,则现有连接不受影响。系统会根据更新后的列表接受或拒绝更新后创建的连接。

如需更新网络连接,您必须使用 Google Cloud 控制台或发送 API 请求。不支持使用 Google Cloud CLI 更新网络连接。

控制台

  1. 在 Google Cloud 控制台中,转到 Private Service Connect

    转到 Private Service Connect

  2. 点击网络连接

  3. 点击要更新的网络连接,然后点击修改

  4. 如需替换网络连接的子网,请点击子网,然后选择新的子网。

  5. 如需更新接受列表,请执行以下操作:

    1. 如需将项目添加到接受列表,请点击添加接受的项目,然后输入要接受的项目的 ID 或编号。
    2. 如需从接受列表中移除项目,请将指针悬停在该项目上,然后点击 删除接受的项目
  6. 如需更新拒绝列表,请执行以下操作:

    1. 如需将项目添加到拒绝列表,请点击添加拒绝的项目,然后输入要拒绝的项目的 ID 或编号。
    2. 如需从拒绝列表中移除项目,请将指针悬停在该项目上,然后点击 删除拒绝的项目
  7. 点击更新网络连接

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 接口。

如果您删除网络连接,然后创建同名的新连接,则 Google Cloud 会将网络连接视为两个单独的资源。

控制台

  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:网络连接的名称。

后续步骤