Docs 菜单
Docs 主页
/
MongoDB 阿特拉斯
/ /

为专用集群设置私有端点

在此页面上

  • 必需的访问权限
  • 先决条件、注意事项与限制
  • 按照以下步骤操作
  • 采取后续步骤

注意

此功能不适用于 M0免费集群、 M2M5集群。要详细了解哪些功能不可用,请参阅 Atlas M 0 (自由集群)、M 2和 M 5限制。

请按照以下步骤启用客户端,使用私有端点连接 Atlas 专用集群。

要了解有关在 Atlas 中使用私有端点的更多信息,请参阅了解 Atlas 中的私有端点

如需设置针对无服务器实例的专用端点,请参阅设置针对无服务器实例的专用端点。

要为专用集群设置私有端点,须拥有该项目的 Organization OwnerProject Owner 访问权限。

若要了解设置私有端点的先决条件、注意事项和限制,请参阅以下资源:

要通过 Atlas CLI 设置 AWS PrivateLink,请安装 Atlas CLI从 Atlas CLI 进行连接。然后,完成以下步骤:

1
  1. 运行 Atlas CLI 命令以启动在 Atlas 中设置 AWS PrivateLink。 Atlas 以私有端点服务的形式表示这些资源。确保--region的值与部署集群的区域匹配:

    atlas privateEndpoints aws create [options]

    要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas privateEndpoints aws create

    如果您拥有多区域或多云集群,但未启用区域化私有端点,则必须为每个提供程序和区域配置一个端点。

  2. 请注意响应中私有端点服务的 ID。在此示例中,ID 为 6344ac8f51b94c6356527881

    Private endpoint '6344ac8f51b94c6356527881' created.
2

注意

Atlas 可能需要一些时间来配置私有端点。 完成此步骤前请等待 1-2 分钟。

  1. 运行 Atlas CLI 命令,使用相应的 ID 来描述专用端点

    atlas privateEndpoints aws describe <privateEndpointId> [options]

    要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas privateEndpoints aws describe

  2. 请注意响应中 ENDPOINT SERVICE 的值,其中显示了与此私有端点关联的私有端点服务的名称。本示例中,端点服务名称为 com.amazonaws.vpce.us-east-1.vpce-svc-0705499aae25ac77c

    ID ENDPOINT SERVICE STATUS ERROR
    6344ac8f51b94c6356527881 com.amazonaws.vpce.us-east-1.vpce-svc-0705499aae25ac77c AVAILABLE

    如果 STATUS 值为 INITIATING,请再等待 1-2 分钟,以便 Atlas 配置私有端点。然后再次尝试这一步骤。

3
  1. AWS CLI 中运行命令,用您的值替换以下占位符:

    占位符
    说明
    {VPC-ID}
    标识对等 AWS VPC 的唯一字符串。在您的 AWS 帐户的 VPC 仪表盘上找到此值。
    {REGION}
    您的集群所在的 AWS 区域
    {SUBNET-IDS}

    标识AWS VPC使用的子网的唯一字符串。在您的AWS帐户的 Subnet仪表盘上找到这些值。

    重要

    您必须至少指定一个子网。否则, AWS 将不会在您的 VPC 中预配 接口端点 VPC 中的客户端需要接口端点才能向私有端点发送流量。

    {SERVICE-NAME}
    唯一字符串,用于标识以前检索的 私有端点服务。
    aws ec2 create-vpc-endpoint --vpc-id {VPC-ID} \
    --region {REGION} --service-name {SERVICE-NAME} \
    --vpc-endpoint-type Interface --subnet-ids {SUBNET-IDS}

    要了解有关 AWS CLI 的更多信息,请参阅 创建接口端点。

  2. 请注意响应中字段VpcEndpointId的值。这是一个包含22字符的字母数字字符串,用于标识您的私有端点。您还可以在AWS VPC 仪表盘的Endpoints > VPC ID下找到此值。

4
  1. 运行 Atlas CLI 命令,使用 Atlas 端点服务 ID 和 VPC 端点 ID 向 Atlas 提供接口端点信息。本示例中,您需要设置以下参数:

    参数
    类型
    示例值
    endpointServiceId
    参数
    6344ac8f51b94c6356527881
    privateEndpointId
    选项
    vpce-00713b5e644e830a3
    atlas privateEndpoints aws interfaces create <endpointServiceId> [options]

    要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas privateEndpoints aws interfaces create

5

对于需要使用 AWS PrivateLink 连接到集群的每个资源,该资源的安全群组必须允许出站流量流向所有端口上接口端点的私有 IP 地址。

请参阅 向安全群组添加规则 以了解更多信息。

6

此安全群组必须允许需要使用 AWS PrivateLink 连接到 Atlas 集群的 每个资源的所有端口的入站流量:

  1. Amazon Web Services控制台中,导航到VPC Dashboard

  2. 单击 Security Groups,然后单击 Create security group

  3. 使用向导创建安全组。确保从 VPC 列表中选择您的 VPC。

  4. 选择您刚刚创建的群组,然后单击 Inbound Rules 标签页。

  5. 单击 Edit Rules(连接)。

  6. 添加规则,允许 VPC 中要连接到 Atlas 集群的 所有资源的所有入站流量。

  7. 单击 Save Rules(连接)。

  8. 单击 Endpoints,然后单击 VPC 的端点。

  9. 单击 Security Groups 标签页,然后单击 Edit Security Groups

  10. 添加刚刚创建的安全组,然后单击 Save

要了解有关 VPC 安全群组的更多信息,请参阅 AWS 文档。

7

Atlas 完成所有资源配置且私有端点可用后,您可以使用 AWS PrivateLink 私有端点连接到集群。

要验证AWS私有端点是否可用,请执行以下操作:

  1. 运行 Atlas CLI 命令, 使用接口端点的 ID 来描述此接口端点。本示例中, 您需要设置以下参数:

    参数
    类型
    示例值
    interfaceEndpointId
    参数
    vpce-00713b5e644e830a3
    endpointServiceId
    选项
    6344ac8f51b94c6356527881
    atlas privateEndpoints aws interfaces describe <interfaceEndpointId> [options]

    要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas privateEndpoints aws interfaces describe

  2. 验证 STATUS 字段的值是否为 AVAILABLE,如以下示例所示:

    ID STATUS ERROR
    vpce-00713b5e644e830a3 AVAILABLE

要通过 Atlas UI 设置 AWS PrivateLink:

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击Security标题下的Network Access

    显示“网络访问”页面。

2

单击 Dedicated Cluster,针对专用 Atlas 集群的私有端点。(默认)

3

单击 Add Private Endpoint 按钮。

注意

如果您尚未为组织配置付款方式,则必须在 Edit Payment Method 表单中提供帐单信息。

4

单击Amazon Web Services徽标,然后单击Next

5
  1. Atlas Region 列表中,选择要在其中创建私有终结点的区域。

  2. 单击 Next(连接)。

注意

如果您的组织没有存储付款信息,Atlas 会提示您在继续之前添加付款信息。

6
  1. 输入有关您的 AWS VPC 的以下详细信息:

    Your VPC ID
    对等 AWS VPC 的唯一标识符。在您的 AWS 帐户的 VPC 仪表盘上找到此值。
    Your Subnet IDs

    AWS VPC使用的子网的唯一标识符。

    在您的AWS帐户的Subnet仪表盘上查找这些值。

    重要

    您必须至少指定一个子网。否则, AWS 将不会在您的 VPC 中预配 接口端点 VPC 中的客户端需要接口端点才能向私有端点发送流量。

  2. 复制对话框显示的命令并使用AWS CLI 运行。

    注意

    在 Atlas 完成后台VPC资源创建之前,您无法复制命令。

    请参阅 创建接口端点 以使用 AWS CLI 执行此任务。

  3. 单击 Next(连接)。

7
  1. 输入您的VPC Endpoint ID 。 这是一个包含 22 个字符的字母数字string ,用于标识您的私有端点。 在Amazon Web Services VPC仪表盘的 Endpoints > VPC ID 下找到此值。

  2. 单击 Create(连接)。

8

对于需要使用 AWS PrivateLink 连接到集群的每个资源,该资源的安全群组必须允许出站流量流向所有端口上接口端点的私有 IP 地址。

请参阅 向安全群组添加规则 以了解更多信息。

9

此安全群组必须允许需要使用 AWS PrivateLink 连接到 Atlas 集群的 每个资源的所有端口的入站流量:

  1. Amazon Web Services控制台中,导航到VPC Dashboard

  2. 单击 Security Groups,然后单击 Create security group

  3. 使用向导创建安全组。确保从 VPC 列表中选择您的 VPC。

  4. 选择您刚刚创建的群组,然后单击 Inbound Rules 标签页。

  5. 单击 Edit Rules(连接)。

  6. 添加规则,允许 VPC 中要连接到 Atlas 集群的 所有资源的所有入站流量。

  7. 单击 Save Rules(连接)。

  8. 单击 Endpoints,然后单击 VPC 的端点。

  9. 单击 Security Groups 标签页,然后单击 Edit Security Groups

  10. 添加刚刚创建的安全组,然后单击 Save

要了解有关 VPC 安全群组的更多信息,请参阅 AWS 文档。

10
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击Security标题下的Network Access

    显示“网络访问”页面。

11

当所有资源均已配置且私有端点可用时,您可以使用 AWS PrivateLink 私有端点连接到 Atlas 集群。

验证 AWS PrivateLink 私有端点是否可用:

Private Endpoint 标签页上,选择集群类型并验证包含您要使用 AWS PrivateLink 连接的集群的区域的以下状态:

Atlas Endpoint Service Status
可用
Endpoint Status
可用

要了解有关可能状态值的更多信息,请参阅排除私有端点连接问题

如果看不到这些状态,请参阅排除私有端点连接问题了解更多信息。

要通过 Atlas CLI 设置 AWS PrivateLink,请安装 Atlas CLI从 Atlas CLI 进行连接。然后,完成以下步骤:

1
  1. 运行 Atlas CLI 命令 在 Atlas 中创建私有端点和私有端点服务。 确保 --region 的值与您部署集群的区域匹配:

    atlas privateEndpoints azure create [options]

    如需了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas privateEndpoints azure create

    如果您拥有多区域或多云集群,但未启用区域化私有端点,则必须为每个提供程序和区域配置一个端点。

  2. 请注意响应中私有端点服务的 ID。在此示例中,ID 为 6344ac8f51b94c6356527881

    Private endpoint '6344ac8f51b94c6356527881' created.
2

注意

Atlas 可能需要一些时间来配置私有端点。 完成此步骤前请等待 1-2 分钟。

  1. 运行 Atlas CLI 命令以使用服务 ID 描述私有端点:

    atlas privateEndpoints azure describe <privateEndpointId> [options]

    要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档的 atlas privateEndpoints azure describe 部分。

  2. 请注意响应中 ENDPOINT SERVICE 的值,其中显示了端点服务名称。本示例中,端点服务名称为 pls_6344ac8f51b94c6356527881

    ID ENDPOINT SERVICE STATUS ERROR
    6344ac8f51b94c6356527881 pls_6344ac8f51b94c6356527881 AVAILABLE

    如果 STATUS 值为 INITIATING,请再等待 1-2 分钟,以便 Atlas 配置私有端点。然后再次尝试这一步骤。

3
  1. Azure CLI 中运行az network private-endpoint create命令,将以下占位符替换为您的值:

    占位符
    说明
    {RESOURCE-GROUP-NAME}
    包含要用于连接到 Atlas 的 VNet 的Azure资源组的名称。您可以在Azure仪表盘的Resource Group Properties页面上找到此值。
    {VIRTUAL-NETWORK-NAME}
    要用于连接到 Atlas 的 VNet 的名称。您可以在Azure仪表盘的Virtual Network页面上找到此值。
    {SUBNET-NAME}
    Azure VNet 中子网的名称。您可以在Azure仪表盘的Virtual Network Subnets页面上找到此值。
    {PRIVATE-ENDPOINT-NAME}
    人类可读标签,用于标识Azure资源组中的私有端点。
    {SUBSCRIPTION-ID}
    Azure中标识订阅的唯一字符串。您可以在AzureSubscriptions页面上找到此值。
    {RESOURCE-GROUP-ID}

    用于标识 Atlas 上的Azure资源组的唯一字符串。您可以在 Atlas 用户界面Network Access页面的Private Endpoint标签页下找到此值。

    该值以rg_开头,包含字母和数字的组合,类似于rg_65c66a56a3a43...

    {ENDPOINT-SERVICE-NAME}
    标识端点服务的唯一字符串。这是上一步中返回的端点服务名称。
    az network private-endpoint create --resource-group {RESOURCE-GROUP-NAME} --name {PRIVATE-ENDPOINT-NAME} --vnet-name {VIRTUAL-NETWORK-NAME} --subnet {SUBNET-NAME} --private-connection-resource-id /subscriptions/{SUBSCRIPTION-ID}/resourceGroups/{RESOURCE-GROUP-ID}/providers/Microsoft.Network/privateLinkServices/{ENDPOINT-SERVICE-NAME} --connection-name {ENDPOINT-SERVICE-NAME} --manual-request true

    要了解有关 Azure CLI 的更多信息,请参阅 使用 Azure CLI 创建私有端点。

  2. 复制并保存以下值:

    Resource ID

    用于标识Azure VNet 中的私有端点的唯一字符串。通过以下方式之一查找该值:

    • 使用Azure仪表盘检索此值。 Azure仪表盘上私有端点的Properties页面会在Resource ID字段中显示此属性。

    • 使用以下命令的输出,该命令返回 id 字段中突出显示的值:

      1azure network private-endpoint create
      1{
      2 "customDnsConfigs": [],
      3 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
      4 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink",
      5 "location": "eastus2",
      6 "manualPrivateLinkServiceConnections": [
      7 {
      8 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
      9 "groupIds": null,
      10 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink/manualPrivateLinkServiceConnections/pls_5f860388d432510d5a6e1a3e",
      11 "name": "pls_5f860388d432510d5a6e1a3e",
      12 "privateLinkServiceConnectionState": {
      13 "actionsRequired": "None",
      14 "description": "Connection deleted by service provider",
      15 "status": "Disconnected"
      16 },
      17 "privateLinkServiceId": "pls_5f860388d432510d5a6e1a3e.00000000-0000-0000-0000-000000000000.eastus2.privatelinkservice",
      18 "provisioningState": "Succeeded",
      19 "requestMessage": null,
      20 "resourceGroup": "privatelink",
      21 "type": "Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections"
      22 }
      23 ],
      24 "name": "privatelink",
      25 "networkInterfaces": [
      26 {
      27 "dnsSettings": null,
      28 "dscpConfiguration": null,
      29 "enableAcceleratedNetworking": null,
      30 "enableIpForwarding": null,
      31 "etag": null,
      32 "hostedWorkloads": null,
      33 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/networkInterfaces/privatelink.nic.00000000-0000-0000-0000-000000000000",
      34 "ipConfigurations": null,
      35 "location": null,
      36 "macAddress": null,
      37 "name": null,
      38 "networkSecurityGroup": null,
      39 "primary": null,
      40 "privateEndpoint": null,
      41 "provisioningState": null,
      42 "resourceGroup": "privatelink",
      43 "resourceGuid": null,
      44 "tags": null,
      45 "tapConfigurations": null,
      46 "type": null,
      47 "virtualMachine": null
      48 }
      49 ],
      50 "privateLinkServiceConnections": [],
      51 "provisioningState": "Succeeded",
      52 "resourceGroup": "privatelink",
      53 "subnet": {
      54 "addressPrefix": null,
      55 "addressPrefixes": null,
      56 "delegations": null,
      57 "etag": null,
      58 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/virtualNetworks/privatelink/subnets/privatelink",
      59 "ipAllocations": null,
      60 "ipConfigurationProfiles": null,
      61 "ipConfigurations": null,
      62 "name": null,
      63 "natGateway": null,
      64 "networkSecurityGroup": null,
      65 "privateEndpointNetworkPolicies": null,
      66 "privateEndpoints": null,
      67 "privateLinkServiceNetworkPolicies": null,
      68 "provisioningState": null,
      69 "purpose": null,
      70 "resourceGroup": "privatelink",
      71 "resourceNavigationLinks": null,
      72 "routeTable": null,
      73 "serviceAssociationLinks": null,
      74 "serviceEndpointPolicies": null,
      75 "serviceEndpoints": null
      76 },
      77 "tags": null,
      78 "type": "Microsoft.Network/privateEndpoints"
      79}

      您也可以使用 azure network private-endpoint list CLI 命令返回此值。

    Private IP

    Azure VNet 中创建的私有端点网络接口的私有 IP 地址。通过以下方式之一查找该值:

    • 使用Azure仪表盘检索此值。 Azure仪表盘上私有端点的Overview页面会在Private IP字段中显示此属性。

    • 使用Azure CLI 检索此值:

      1. 使用以下命令的输出,该命令在突出显示的 networkInterfaces.id 字段中返回网络接口的 ID:

        1azure network private-endpoint create
        1{
        2 "customDnsConfigs": [],
        3 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
        4 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink",
        5 "location": "eastus2",
        6 "manualPrivateLinkServiceConnections": [
        7 {
        8 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
        9 "groupIds": null,
        10 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink/manualPrivateLinkServiceConnections/pls_5f860388d432510d5a6e1a3e",
        11 "name": "pls_5f860388d432510d5a6e1a3e",
        12 "privateLinkServiceConnectionState": {
        13 "actionsRequired": "None",
        14 "description": "Connection deleted by service provider",
        15 "status": "Disconnected"
        16 },
        17 "privateLinkServiceId": "pls_5f860388d432510d5a6e1a3e.00000000-0000-0000-0000-000000000000.eastus2.privatelinkservice",
        18 "provisioningState": "Succeeded",
        19 "requestMessage": null,
        20 "resourceGroup": "privatelink",
        21 "type": "Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections"
        22 }
        23 ],
        24 "name": "privatelink",
        25 "networkInterfaces": [
        26 {
        27 "dnsSettings": null,
        28 "dscpConfiguration": null,
        29 "enableAcceleratedNetworking": null,
        30 "enableIpForwarding": null,
        31 "etag": null,
        32 "hostedWorkloads": null,
        33 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/networkInterfaces/privatelink.nic.00000000-0000-0000-0000-000000000000",
        34 "ipConfigurations": null,
        35 "location": null,
        36 "macAddress": null,
        37 "name": null,
        38 "networkSecurityGroup": null,
        39 "primary": null,
        40 "privateEndpoint": null,
        41 "provisioningState": null,
        42 "resourceGroup": "privatelink",
        43 "resourceGuid": null,
        44 "tags": null,
        45 "tapConfigurations": null,
        46 "type": null,
        47 "virtualMachine": null
        48 }
        49 ],
        50 "privateLinkServiceConnections": [],
        51 "provisioningState": "Succeeded",
        52 "resourceGroup": "privatelink",
        53 "subnet": {
        54 "addressPrefix": null,
        55 "addressPrefixes": null,
        56 "delegations": null,
        57 "etag": null,
        58 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/virtualNetworks/privatelink/subnets/privatelink",
        59 "ipAllocations": null,
        60 "ipConfigurationProfiles": null,
        61 "ipConfigurations": null,
        62 "name": null,
        63 "natGateway": null,
        64 "networkSecurityGroup": null,
        65 "privateEndpointNetworkPolicies": null,
        66 "privateEndpoints": null,
        67 "privateLinkServiceNetworkPolicies": null,
        68 "provisioningState": null,
        69 "purpose": null,
        70 "resourceGroup": "privatelink",
        71 "resourceNavigationLinks": null,
        72 "routeTable": null,
        73 "serviceAssociationLinks": null,
        74 "serviceEndpointPolicies": null,
        75 "serviceEndpoints": null
        76 },
        77 "tags": null,
        78 "type": "Microsoft.Network/privateEndpoints"
        79}
      2. 运行 az network nic show --id {networkInterface.id} 使用带有 字段值的 Azure CLInetworkInterfaces.id ipConfigurations.privateIPAddress命令来检索私有端点网络接口的 。此字段的值为您的 。输入和输出应如下所示。请注意Private IP Private Endpoint IP Address字段的突出显示值。

        1az network nic show --id /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/networkInterfaces/privatelink.nic.00000000-0000-0000-0000-000000000000
        1{
        2 "dnsSettings": {
        3 "appliedDnsServers": [],
        4 "dnsServers": [],
        5 "internalDnsNameLabel": null,
        6 "internalDomainNameSuffix": "<>.cx.internal.cloudapp.net",
        7 "internalFqdn": null
        8 },
        9 "dscpConfiguration": null,
        10 "enableAcceleratedNetworking": false,
        11 "enableIpForwarding": false,
        12 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
        13 "hostedWorkloads": [],
        14 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/networkInterfaces/privatelink.nic.00000000-0000-0000-0000-000000000000",
        15 "ipConfigurations": [
        16 {
        17 "applicationGatewayBackendAddressPools": null,
        18 "applicationSecurityGroups": null,
        19 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
        20 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/networkInterfaces/privatelink.nic.00000000-0000-0000-0000-000000000000/ipConfigurations/privateEndpointIpConfig",
        21 "loadBalancerBackendAddressPools": null,
        22 "loadBalancerInboundNatRules": null,
        23 "name": "privateEndpointIpConfig",
        24 "primary": true,
        25 "privateIpAddress": "10.0.0.4",
        26 "privateIpAddressVersion": "IPv4",
        27 "privateIpAllocationMethod": "Dynamic",
        28 "privateLinkConnectionProperties": {
        29 "fqdns": [],
        30 "groupId": "",
        31 "requiredMemberName": ""
        32 },
        33 "provisioningState": "Succeeded",
        34 "publicIpAddress": null,
        35 "resourceGroup": "privatelink",
        36 "subnet": {
        37 "addressPrefix": null,
        38 "addressPrefixes": null,
        39 "delegations": null,
        40 "etag": null,
        41 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/virtualNetworks/privatelink/subnets/privatelink",
        42 "ipAllocations": null,
        43 "ipConfigurationProfiles": null,
        44 "ipConfigurations": null,
        45 "name": null,
        46 "natGateway": null,
        47 "networkSecurityGroup": null,
        48 "privateEndpointNetworkPolicies": null,
        49 "privateEndpoints": null,
        50 "privateLinkServiceNetworkPolicies": null,
        51 "provisioningState": null,
        52 "purpose": null,
        53 "resourceGroup": "privatelink",
        54 "resourceNavigationLinks": null,
        55 "routeTable": null,
        56 "serviceAssociationLinks": null,
        57 "serviceEndpointPolicies": null,
        58 "serviceEndpoints": null
        59 },
        60 "type": "Microsoft.Network/networkInterfaces/ipConfigurations",
        61 "virtualNetworkTaps": null
        62 }
        63 ],
        64 "location": "eastus2",
        65 "macAddress": "",
        66 "name": "privatelink.nic.00000000-0000-0000-0000-000000000000",
        67 "networkSecurityGroup": null,
        68 "primary": null,
        69 "privateEndpoint": {
        70 "customDnsConfigs": null,
        71 "etag": null,
        72 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink",
        73 "location": null,
        74 "manualPrivateLinkServiceConnections": null,
        75 "name": null,
        76 "networkInterfaces": null,
        77 "privateLinkServiceConnections": null,
        78 "provisioningState": null,
        79 "resourceGroup": "privatelink",
        80 "subnet": null,
        81 "tags": null,
        82 "type": null
        83 },
        84 "provisioningState": "Succeeded",
        85 "resourceGroup": "privatelink",
        86 "resourceGuid": "00000000-0000-0000-0000-000000000000",
        87 "tags": null,
        88 "tapConfigurations": [],
        89 "type": "Microsoft.Network/networkInterfaces",
        90 "virtualMachine": null
        91}
4
  1. 运行 Atlas CLI 命令,使用 Atlas 端点服务 ID、 Azure资源 ID 和Azure私有 IP 在 Atlas 中创建接口端点。在此示例中,您将设置以下参数:

    参数
    类型
    示例值
    endpointServiceId
    参数
    6344ac8f51b94c6356527881
    privateEndpointId
    选项
    /subscriptions/4e133d35-e734-4385-a565-c0945567ae346/ resourceGroups/rg_95847a959b876e255dbb9b33_dfragd7w/ providers/Microsoft.Network/privateEndpoints/ test-endpoint
    privateEndpointIpAddress
    选项
    10.0.0.4
    atlas privateEndpoints azure interfaces create <endpointServiceId> [options]

    要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档的 atlas privateEndpoints azure interfaces create 部分。

  2. 记下响应中私有端点的接口端点 ID。在此示例中,ID 为 /subscriptions/ 4e133d35-e734-4385-a565-c0945567ae346/resourceGroups/ rg_95847a959b876e255dbb9b33_dfragd7w/providers/ Microsoft.Network/privateEndpoints/cli-test

    Interface endpoint '/subscriptions/4e133d35-e734-4385-a565-c0945567ae346/resourceGroups/rg_95847a959b876e255dbb9b33_dfragd7w/providers/Microsoft.Network/privateEndpoints/cli-test' created.
5

Atlas 完成所有资源配置且私有端点可用后,您可以使用 Azure Private Link 私有端点连接到集群。

要验证Azure私有端点是否可用,请执行以下操作:

  1. 运行 Atlas CLI 命令,使用接口端点的 ID 和您在上一步中检索到的接口端点 ID 来描述接口端点。本示例中,您需要设置以下参数:

    参数
    类型
    示例值
    privateEndpointResourceId
    参数
    /subscriptions/4e133d35-e734-4385-a565-c0945567ae346/ resourceGroups/rg_95847a959b876e255dbb9b33_dfragd7w/ providers/Microsoft.Network/privateEndpoints/cli-test
    endpointServiceId
    选项
    6344ac8f51b94c6356527881
    atlas privateEndpoints azure interfaces describe <privateEndpointResourceId> [options]

    要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas privateEndpoints azure interfaces describe 部分。

  2. 验证 STATUS 字段的值是否为 AVAILABLE,如以下示例所示:

    ID STATUS ERROR
    pls_6344ac8f51b94c6356527881 AVAILABLE

要通过 Atlas UI 设置 Azure Private Link,请执行以下操作:

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击Security标题下的Network Access

    显示“网络访问”页面。

2

单击 Dedicated Cluster,针对专用 Atlas 集群的私有端点。(默认)

3

单击 Add Private Endpoint 按钮。

注意

如果您尚未为组织配置付款方式,则必须在 Edit Payment Method 表单中提供帐单信息。

4

单击Azure徽标,然后单击Next

5
  1. Atlas Region 列表中,选择要在其中创建私有终结点的区域。

  2. 单击 Next(连接)。

注意

如果您的组织没有存储付款信息,Atlas 会提示您在继续之前添加付款信息。

6
  1. 输入有关Azure VNet 的以下详细信息:

    Resource Group Name
    包含要用于连接到 Atlas 的 VNet 的资源组的名称。在Azure仪表盘的Resource Group Properties页面上查找此值。
    Virtual Network Name
    要用于连接到 Atlas 的 VNet 的名称。在Azure仪表盘的Virtual Network页面上查找此值。
    Subnet Name
    Azure VNet 中子网的名称。在Azure仪表盘的Virtual Network Subnets页面上查找此值。
  2. Private Endpoint Name 字段中输入私有端点的唯一名称。

  3. 通过复制对话框显示的az network private-endpoint create命令并使用Azure CLI 运行该命令,在 VNet 中创建私有端点。

    注意

    在 Atlas 在后台完成创建 VNet 资源之前,无法复制该命令。

    有关此命令的更多信息,请参阅 Azure 文档。

  4. 创建私有端点时,您可能会收到如下错误:

    ServiceError: code: LinkedAuthorizationFailed - , The client has permission to perform action 'Microsoft.Network/privateLinkServices/PrivateEndpointConnectionsApproval/action' on scope '/subscriptions/<subscription-id>/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink', however the current tenant '<tenant-id>' is not authorized to access linked subscription '<tenant-id>'.

    如果收到此错误,则必须将--manual-request true参数添加到用于创建私有端点的Azure CLI 命令中,然后再次运行该命令。

  5. 单击 Next(连接)。

7
  1. 输入有关私有端点的以下详细信息:

    Private Endpoint Resource ID

    Azure VNet 中创建的私有端点的唯一标识符。通过以下方式之一查找该值:

    • Azure仪表盘上私有端点的Properties页面会在Resource ID字段中显示此属性。

    • 您之前为创建私有端点而运行的以下命令的输出会返回 id 字段中突出显示的值:

      1azure network private-endpoint create
      1{
      2 "customDnsConfigs": [],
      3 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
      4 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink",
      5 "location": "eastus2",
      6 "manualPrivateLinkServiceConnections": [
      7 {
      8 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
      9 "groupIds": null,
      10 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink/manualPrivateLinkServiceConnections/pls_5f860388d432510d5a6e1a3e",
      11 "name": "pls_5f860388d432510d5a6e1a3e",
      12 "privateLinkServiceConnectionState": {
      13 "actionsRequired": "None",
      14 "description": "Connection deleted by service provider",
      15 "status": "Disconnected"
      16 },
      17 "privateLinkServiceId": "pls_5f860388d432510d5a6e1a3e.00000000-0000-0000-0000-000000000000.eastus2.privatelinkservice",
      18 "provisioningState": "Succeeded",
      19 "requestMessage": null,
      20 "resourceGroup": "privatelink",
      21 "type": "Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections"
      22 }
      23 ],
      24 "name": "privatelink",
      25 "networkInterfaces": [
      26 {
      27 "dnsSettings": null,
      28 "dscpConfiguration": null,
      29 "enableAcceleratedNetworking": null,
      30 "enableIpForwarding": null,
      31 "etag": null,
      32 "hostedWorkloads": null,
      33 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/networkInterfaces/privatelink.nic.00000000-0000-0000-0000-000000000000",
      34 "ipConfigurations": null,
      35 "location": null,
      36 "macAddress": null,
      37 "name": null,
      38 "networkSecurityGroup": null,
      39 "primary": null,
      40 "privateEndpoint": null,
      41 "provisioningState": null,
      42 "resourceGroup": "privatelink",
      43 "resourceGuid": null,
      44 "tags": null,
      45 "tapConfigurations": null,
      46 "type": null,
      47 "virtualMachine": null
      48 }
      49 ],
      50 "privateLinkServiceConnections": [],
      51 "provisioningState": "Succeeded",
      52 "resourceGroup": "privatelink",
      53 "subnet": {
      54 "addressPrefix": null,
      55 "addressPrefixes": null,
      56 "delegations": null,
      57 "etag": null,
      58 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/virtualNetworks/privatelink/subnets/privatelink",
      59 "ipAllocations": null,
      60 "ipConfigurationProfiles": null,
      61 "ipConfigurations": null,
      62 "name": null,
      63 "natGateway": null,
      64 "networkSecurityGroup": null,
      65 "privateEndpointNetworkPolicies": null,
      66 "privateEndpoints": null,
      67 "privateLinkServiceNetworkPolicies": null,
      68 "provisioningState": null,
      69 "purpose": null,
      70 "resourceGroup": "privatelink",
      71 "resourceNavigationLinks": null,
      72 "routeTable": null,
      73 "serviceAssociationLinks": null,
      74 "serviceEndpointPolicies": null,
      75 "serviceEndpoints": null
      76 },
      77 "tags": null,
      78 "type": "Microsoft.Network/privateEndpoints"
      79}
    Private Endpoint IP Address

    Azure VNet 中创建的私有端点网络接口的私有 IP 地址。通过以下方式之一查找该值:

    • 使用Azure仪表盘检索此值。 Azure仪表盘上私有端点的Overview页面会在Private IP字段中显示此属性。

    • 使用Azure CLI 检索此值:

      1. 您之前运行的用于创建私有端点的以下命令的输出在突出显示的 networkInterfaces.id 字段中包含网络接口的 ID:

        1azure network private-endpoint create
        1{
        2 "customDnsConfigs": [],
        3 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
        4 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink",
        5 "location": "eastus2",
        6 "manualPrivateLinkServiceConnections": [
        7 {
        8 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
        9 "groupIds": null,
        10 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink/manualPrivateLinkServiceConnections/pls_5f860388d432510d5a6e1a3e",
        11 "name": "pls_5f860388d432510d5a6e1a3e",
        12 "privateLinkServiceConnectionState": {
        13 "actionsRequired": "None",
        14 "description": "Connection deleted by service provider",
        15 "status": "Disconnected"
        16 },
        17 "privateLinkServiceId": "pls_5f860388d432510d5a6e1a3e.00000000-0000-0000-0000-000000000000.eastus2.privatelinkservice",
        18 "provisioningState": "Succeeded",
        19 "requestMessage": null,
        20 "resourceGroup": "privatelink",
        21 "type": "Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections"
        22 }
        23 ],
        24 "name": "privatelink",
        25 "networkInterfaces": [
        26 {
        27 "dnsSettings": null,
        28 "dscpConfiguration": null,
        29 "enableAcceleratedNetworking": null,
        30 "enableIpForwarding": null,
        31 "etag": null,
        32 "hostedWorkloads": null,
        33 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/networkInterfaces/privatelink.nic.00000000-0000-0000-0000-000000000000",
        34 "ipConfigurations": null,
        35 "location": null,
        36 "macAddress": null,
        37 "name": null,
        38 "networkSecurityGroup": null,
        39 "primary": null,
        40 "privateEndpoint": null,
        41 "provisioningState": null,
        42 "resourceGroup": "privatelink",
        43 "resourceGuid": null,
        44 "tags": null,
        45 "tapConfigurations": null,
        46 "type": null,
        47 "virtualMachine": null
        48 }
        49 ],
        50 "privateLinkServiceConnections": [],
        51 "provisioningState": "Succeeded",
        52 "resourceGroup": "privatelink",
        53 "subnet": {
        54 "addressPrefix": null,
        55 "addressPrefixes": null,
        56 "delegations": null,
        57 "etag": null,
        58 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/virtualNetworks/privatelink/subnets/privatelink",
        59 "ipAllocations": null,
        60 "ipConfigurationProfiles": null,
        61 "ipConfigurations": null,
        62 "name": null,
        63 "natGateway": null,
        64 "networkSecurityGroup": null,
        65 "privateEndpointNetworkPolicies": null,
        66 "privateEndpoints": null,
        67 "privateLinkServiceNetworkPolicies": null,
        68 "provisioningState": null,
        69 "purpose": null,
        70 "resourceGroup": "privatelink",
        71 "resourceNavigationLinks": null,
        72 "routeTable": null,
        73 "serviceAssociationLinks": null,
        74 "serviceEndpointPolicies": null,
        75 "serviceEndpoints": null
        76 },
        77 "tags": null,
        78 "type": "Microsoft.Network/privateEndpoints"
        79}
      2. 运行 az network nic show --id {networkInterface.id} 使用带有 networkInterfaces.id 字段值的 Azure CLI 命令来检索私有端点网络接口的 ipConfigurations.privateIPAddress 。此字段的值为您的Private Endpoint IP Address 。输入和输出应如下所示。请注意Private Endpoint IP Address 字段的突出显示值。

        1az network nic show --id /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/networkInterfaces/privatelink.nic.00000000-0000-0000-0000-000000000000
        1{
        2 "dnsSettings": {
        3 "appliedDnsServers": [],
        4 "dnsServers": [],
        5 "internalDnsNameLabel": null,
        6 "internalDomainNameSuffix": "<>.cx.internal.cloudapp.net",
        7 "internalFqdn": null
        8 },
        9 "dscpConfiguration": null,
        10 "enableAcceleratedNetworking": false,
        11 "enableIpForwarding": false,
        12 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
        13 "hostedWorkloads": [],
        14 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/networkInterfaces/privatelink.nic.00000000-0000-0000-0000-000000000000",
        15 "ipConfigurations": [
        16 {
        17 "applicationGatewayBackendAddressPools": null,
        18 "applicationSecurityGroups": null,
        19 "etag": "W/\"00000000-0000-0000-0000-000000000000\"",
        20 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/networkInterfaces/privatelink.nic.00000000-0000-0000-0000-000000000000/ipConfigurations/privateEndpointIpConfig",
        21 "loadBalancerBackendAddressPools": null,
        22 "loadBalancerInboundNatRules": null,
        23 "name": "privateEndpointIpConfig",
        24 "primary": true,
        25 "privateIpAddress": "10.0.0.4",
        26 "privateIpAddressVersion": "IPv4",
        27 "privateIpAllocationMethod": "Dynamic",
        28 "privateLinkConnectionProperties": {
        29 "fqdns": [],
        30 "groupId": "",
        31 "requiredMemberName": ""
        32 },
        33 "provisioningState": "Succeeded",
        34 "publicIpAddress": null,
        35 "resourceGroup": "privatelink",
        36 "subnet": {
        37 "addressPrefix": null,
        38 "addressPrefixes": null,
        39 "delegations": null,
        40 "etag": null,
        41 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/virtualNetworks/privatelink/subnets/privatelink",
        42 "ipAllocations": null,
        43 "ipConfigurationProfiles": null,
        44 "ipConfigurations": null,
        45 "name": null,
        46 "natGateway": null,
        47 "networkSecurityGroup": null,
        48 "privateEndpointNetworkPolicies": null,
        49 "privateEndpoints": null,
        50 "privateLinkServiceNetworkPolicies": null,
        51 "provisioningState": null,
        52 "purpose": null,
        53 "resourceGroup": "privatelink",
        54 "resourceNavigationLinks": null,
        55 "routeTable": null,
        56 "serviceAssociationLinks": null,
        57 "serviceEndpointPolicies": null,
        58 "serviceEndpoints": null
        59 },
        60 "type": "Microsoft.Network/networkInterfaces/ipConfigurations",
        61 "virtualNetworkTaps": null
        62 }
        63 ],
        64 "location": "eastus2",
        65 "macAddress": "",
        66 "name": "privatelink.nic.00000000-0000-0000-0000-000000000000",
        67 "networkSecurityGroup": null,
        68 "primary": null,
        69 "privateEndpoint": {
        70 "customDnsConfigs": null,
        71 "etag": null,
        72 "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/privatelink/providers/Microsoft.Network/privateEndpoints/privatelink",
        73 "location": null,
        74 "manualPrivateLinkServiceConnections": null,
        75 "name": null,
        76 "networkInterfaces": null,
        77 "privateLinkServiceConnections": null,
        78 "provisioningState": null,
        79 "resourceGroup": "privatelink",
        80 "subnet": null,
        81 "tags": null,
        82 "type": null
        83 },
        84 "provisioningState": "Succeeded",
        85 "resourceGroup": "privatelink",
        86 "resourceGuid": "00000000-0000-0000-0000-000000000000",
        87 "tags": null,
        88 "tapConfigurations": [],
        89 "type": "Microsoft.Network/networkInterfaces",
        90 "virtualMachine": null
        91}
  2. 输入端点的可选描述。

  3. 单击 Create(连接)。

8
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击Security标题下的Network Access

    显示“网络访问”页面。

9

当所有资源均已配置且私有端点可用时,您可以使用 Azure Private Link 私有端点连接到 Atlas 集群。

要验证 Azure Private Link 私有端点是否可用,请执行以下操作:

Private Endpoint 选项卡上,选择一个集群类型并验证包含您要使用 Azure Private Link 连接的集群的区域的以下状态:

Atlas Endpoint Service Status
可用
Endpoint Status
可用

要了解有关可能状态值的更多信息,请参阅排除私有端点连接问题

如果看不到这些状态,请参阅排除私有端点连接问题了解更多信息。

要通过 Atlas CLI 在 Google Cloud 中设置 GCP Private Service Connect,请安装 Atlas CLI从 Atlas CLI 进行连接。然后,完成以下步骤:

1
  1. 运行 Atlas CLI 命令以在 Atlas 中创建私有端点。确保--region的值与部署集群的区域匹配:

    atlas privateEndpoints gcp create [options]

    要了解有关命令语法和参数的更多信息,请参阅atlas privateEndpoints gcp create 的 Atlas CLI 文档。

    如果您拥有多区域或多云集群,但未启用区域化私有端点,则必须为每个提供程序和区域配置一个端点。

  2. 记下响应中私有端点的 ID。在此示例中,ID 为6344ac8f51b94c6356527881

    Private endpoint '6344ac8f51b94c6356527881' created.
2

注意

Atlas 可能需要一些时间来配置私有端点。 完成此步骤前请等待 1-2 分钟。

运行 Atlas CLI 命令以使用其 ID 描述私有端点:

atlas privateEndpoints gcp describe <privateEndpointId> [options]

要了解有关命令语法和参数的更多信息,请参阅atlas privateEndpoints gcp describe 的 Atlas CLI 文档。

输出示例如下:

ID GROUP NAME REGION STATUS ERROR
6344ac8f51b94c6356527881 N/A CENTRAL_US AVAILABLE

如果 STATUS 值为 INITIATING,请再等待 1-2 分钟,以便 Atlas 配置私有端点。然后再次尝试这一步骤。

3
  1. 创建一个名为setup_psc.sh的 Shell 脚本文件。

  2. 将以下代码复制并粘贴到setup_psc.sh文件中,用您的值替换以下占位符:

    占位符
    说明
    {GCP-PROJECT-ID}
    用于在 Google Cloud 中标识 Google Cloud 项目的唯一字符串。
    {ATLAS-GCP-PROJECT-ID}
    用于标识 Atlas 在其中部署资源的 Google Cloud 项目的唯一字符串。
    {ENDPOINT}
    标识私有端点的唯一字符串。这是您创建的所有转发规则的前缀。
    {REGION}
    集群所在的 Google Cloud 区域。
    {SUBNET}
    创建“私有服务连接”端点时,您需要在 VPC 网络中指定一个子网;您可以创建一个新的子网来封装端点,也可以使用现有的子网。此子网需要至少有50个未分配的 IP 地址。
    {VPC-NAME}
    要用于连接到 Atlas 的 VNet 的名称。您可以在 Google Cloud 仪表盘的“VPC 网络”页面上找到此值。
    {GROUP-ID}
    唯一的24字符十六进制字符串,用于在 Atlas 中标识您的项目。
    #!/bin/bash
    gcloud config set project {GCP-PROJECT-ID}
    for i in {0..49}
    do
    gcloud compute addresses create {ENDPOINT}-ip-$i --region={REGION} --subnet={SUBNET}
    done
    for i in {0..49}
    do
    if [ $(gcloud compute addresses describe {ENDPOINT}-ip-$i --region={REGION} --format="value(status)") != "RESERVED" ]; then
    echo "{ENDPOINT}-ip-$i is not RESERVED";
    exit 1;
    fi
    done
    for i in {0..49}
    do
    gcloud compute forwarding-rules create {ENDPOINT}-$i --region={REGION} --network={VPC-NAME} --address={ENDPOINT}-ip-$i --target-service-attachment=projects/{ATLAS-GCP-PROJECT-ID}/regions/{REGION}/serviceAttachments/sa-{REGION}-{GROUP-ID}-$i
    done
  3. 运行 shell 文件

    sh setup_psc.sh
    Created [https://www.googleapis.com/compute/v1/projects/<PROJECT-ID>/regions/<REGION>/addresses/-ip-0].,
    Created [https://www.googleapis.com/compute/v1/projects/<PROJECT-ID>/regions/<REGION>/addresses/-ip-1].,
    ...
    Created [https://www.googleapis.com/compute/v1/projects/<PROJECT-ID>/regions/<REGION>/addresses/-ip-49].,
    Created [https://www.googleapis.com/compute/v1/projects/<PROJECT-ID>/regions/<REGION>/forwardingRules/-ip-0].,
    Created [https://www.googleapis.com/compute/v1/projects/<PROJECT-ID>/regions/<REGION>/forwardingRules/-ip-1].,
    ...
    Created [https://www.googleapis.com/compute/v1/projects/<PROJECT-ID>/regions/<REGION>/forwardingRules/-ip-49].
  4. 运行以下命令,生成 Google Cloud 转发地址列表,并将其存储在名为atlasEndpoints.txt的文件中,替换上一步中的以下占位符:

    占位符
    说明
    {REGION}
    集群所在的 Google Cloud 区域。
    {ENDPOINT}
    标识私有端点的唯一字符串。这是您创建的所有转发规则的前缀。
    gcloud compute forwarding-rules list --regions={REGION} --format="csv(name,IPAddress)" --filter="name:({ENDPOINT}*)" > atlasEndpoints.txt
4

运行以下命令以重新格式化atlasEndpoints.txt的内容:

sed -i '' '1d' atlasEndpoints.txt
tr -s ',' '@' <atlasEndpoints.txt>atlasEndpoints2.txt
tr -s '\n' ',' <atlasEndpoints2.txt>atlasEndpoints.txt
sed -i '' '$ s/.$//' atlasEndpoints.txt
rm atlasEndpoints2.txt

注意

您将在下一步中使用atlasEndpoints.txt的内容作为endpoint参数的值。

5
  1. 运行 Atlas CLI 命令,使用 Atlas 端点 ID 和 VPC 端点 ID 在 Atlas 中创建接口端点。在此示例中,您将设置以下参数:

    参数
    类型
    示例值
    endpointGroupId
    参数
    tester-1
    endpointServiceId
    选项
    6344ac8f51b94c6356527881
    gcpProjectId
    选项
    atlascli-private-endpoints
    endpoint
    选项

    tester-1@10.142.0.1,tester-2@10.142.0.2, ... , tester-49@10.142.0.49, tester-50@10.142.0.50

    注意

    ...表示其间的46个其他端点。

    要使用 Atlas CLI 为 Google Cloud 私有端点添加新接口,请运行以下命令:

    atlas privateEndpoints gcp interfaces create <endpointGroupId> [options]

    要了解有关命令语法和参数的更多信息,请参阅atlas privateEndpoints gcp interface create 的 Atlas CLI 文档。

6

在 Atlas 完成所有资源的配置并且私有端点可用后,您可以使用 GCP Private Service Connect 私有端点连接到集群。

要验证 Google Cloud 私有端点是否可用,请执行以下操作:

  1. 运行 Atlas CLI 命令以使用接口端点的 ID 来描述接口端点。在此示例中,您将使用上一步中的以下参数:

    参数
    类型
    示例值
    id
    参数
    tester-1
    endpointServiceId
    选项
    6344ac8f51b94c6356527881

    返回您指定的 Google Cloud 私有端点接口。使用 Atlas CLI,运行以下命令:

    atlas privateEndpoints gcp interfaces describe <id> [options]

    要了解有关命令语法和参数的更多信息,请参阅 Atlas PrivateEndpoints gcp 接口说明的 Atlas CLI 文档。

  2. 验证 STATUS 字段的值是否为 AVAILABLE,如以下示例所示:

    ENDPOINT STATUS DELETE REQUESTED
    tester-1 AVAILABLE false

    如果STATUS值为VERIFIED ,请再等待1 - 2分钟,以便 Atlas 使您的私有端点可用。

要通过 Atlas 用户界面在 Google Cloud 中设置 GCP Private Service Connect,请执行以下操作:

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击Security标题下的Network Access

    显示“网络访问”页面。

2
3

单击 Google Cloud 徽标,然后单击Next

4
  1. Atlas Region 列表中,选择要在其中创建私有终结点的区域。

  2. 单击 Next(连接)。

注意

如果您的组织没有存储付款信息,Atlas 会提示您在继续之前添加付款信息。

5
  1. 输入有关 Google Cloud VPC的以下详细信息:

    Google Cloud Project ID
    项目的唯一 ID。在 Google Cloud 平台的Dashboard页面上找到此值。
    VPC Name
    要用于连接到 Atlas 的VPC的名称。在 Google Cloud 信息中心的VPC Networks页面上找到此值。
    Subnet Name
    Google Cloud VPC中子网的名称。在 Google Cloud 信息中心的VPC Networks页面上找到此值。
  2. Private Service Connect Endpoint Prefix字段中输入私有端点的唯一名称。这将是创建的所有端点的前缀以及端点组的名称。单击Next

  3. 下载 Shell 脚本并使用 gcloud CLI 运行,在 Google Cloud VPC中创建转发规则。这将输出一个JSON文件,其中包含下一步所需的 IP 地址和端点名称列表。单击Next

  4. 单击Upload JSON File选择并上传输出的 JSON 文件。

  5. 单击 Create Private Endpoint(连接)。

6
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击Security标题下的Network Access

    显示“网络访问”页面。

7

当所有资源均已配置且私有端点可用时,您可以使用 GCP Private Service Connect 私有端点连接到 Atlas 集群。

要验证 GCP Private Service Connect 私有端点是否可用,请执行以下操作:

Private Endpoint标签页上,验证包含要使用 GCP Private Service Connect 连接到的集群的区域的以下状态:

Atlas Endpoint Service Status
可用
Endpoint Status
可用

要了解有关可能状态值的更多信息,请参阅排除私有端点连接问题

如果看不到这些状态,请参阅排除私有端点连接问题了解更多信息。

后退

概述

来年

无服务器实例