Docs 菜单
Docs 主页
/ /
Atlas App Services
/

使用 VPC 私有端点(预览)

在此页面上

  • 开始之前
  • 添加私有端点
  • 添加通用端点
  • 添加同步端点
  • 更改访问限制
  • 私有端点忽略 IP 访问列表
  • 支持的 SDK 版本
  • 私有端点限制

您可以使用私有端点从虚拟私有云 (VPC) 内访问 Atlas App Services。 这是与Atlas App Services的私有连接,不Go公共互联网。 来自 VPC 外部的请求会返回 404错误。

私有端点仅适用于本地部署到Atlas App Services 中某个地区的Amazon Web Services 应用程序。它们使用 连接到您的Amazon Web ServicesVPC AWS PrivateLink。要学习;了解详情,请参阅 什么是AWS PrivateLink ? 在Amazon Web Services 文档中。

App Services私有端点有两种:

  • 常规:使用services.cloud.mongodb.com进行客户端 HTTP 请求的端点。

  • 同步:使用services.cloud.mongodb.com进行同步 WebSocket 连接的端点。

重要

私有端点不支持自定义HTTPS endpointsData API端点。

收集以下信息:

  • 您的VPCID ,您可以在 仪表盘盘中找到该 ID,也可以通过运行Amazon Web ServicesVPC describe-vpcs Amazon Web ServicesCLI中的命令。

  • 您的 子网 ID ,您可以在Amazon Web ServicesVPC 仪表盘或通过运行 describe-subnets Amazon Web ServicesCLI中的命令。

为您的VPC设置私有托管区域。 为此,您需要VPC ID 。 使用 ModifyVpcAttribute 设立以下VPC属性设置为 true:

  • EnableDnsHostnames

  • EnableDnsSupport

您还必须安装并验证Amazon Web Services CLI 。

您可以使用App Services用户界面或 Admin API添加新的常规端点或同步端点。

1
  1. 在App Services用户界面中,导航到 App Settings ,然后单击Private Endpoints标签页。

  2. 单击 Add Private Endpoint,然后单击 General

  3. 在各自的字段中添加VPC ID和子网 ID(逗号分隔列表),然后点击Next

  4. 复制生成的VPC Interface Endpoint Command 。 该命令应如下所示:

    aws ec2 create-vpc-endpoint \
    --vpc-endpoint-type Interface
    --service-name <App Services Endpoint Service Name> \
    --vpc-id <your-vpc-id> \
    --region <your-aws-deployment-region> \
    --subnet-ids <your-subnet-ids>
  5. 在终端中,执行生成的Amazon Web Services CLI命令以创建VPC端点。

2

现在您已经在 VPC 中创建了接口端点,您需要将其添加到您的应用中。

  1. 在上一步中运行的 VPCID命令的输出中,或在CLIAmazon Web ServicesVPC 仪表盘的 端点详细信息 屏幕上,找到 Endpoint 。该值以vpce-开头。

  2. 复制新VPC端点的ID并将其粘贴到App Services用户界面中的Your VPC Endpoint ID字段中,然后单击Next

  3. 如果这是您创建的第一个私有端点,您将看到一个开关,您可以使用它来限制或开放 PrivateLink 连接之外的请求的所有访问权限。默认情况下,App Services 会阻塞 PrivateLink 连接之外的所有请求。此设置适用于该端点和您创建的所有其他端点。有关更多信息,请参阅更改访问限制

  4. 单击 Finish Endpoint Creation(连接)。

1
  1. 调用列出VPC私有端点服务端点。

  2. 筛选响应对象以查找应用的部署地区和要创建的端点类型的条目。

    curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoint_service_infos \
    -H "Authorization: Bearer <access_token>"
    [
    {
    "cloud_provider_region": "aws-us-east-1",
    "service_name": "com.amazonaws.vpce.us-east-1.vpce-svc-0718bec2c0bdeab5c",
    "endpoint_type": "general"
    },
    ...
    ]
  3. 从上一步中所需的条目中获取service_name字段。

  4. VPC使用Amazon Web ServicesCLI 创建 端点 create-vpc-endpoint 命令。您需要App Services端点服务名称、 VPC ID 、子网 ID 和Amazon Web Services部署地区。 该命令应如下所示:

aws ec2 create-vpc-endpoint \
--vpc-endpoint-type Interface
--service-name <App Services Endpoint Service Name> \
--vpc-id <your-vpc-id> \
--region <your-aws-deployment-region> \
--subnet-ids <your-subnet-ids>
2

现在您已经在 VPC 中创建了接口端点,您需要将其添加到您的应用中。

  1. 在上一步中运行的 VPCID命令的输出中,或在CLIAmazon Web ServicesVPC 仪表盘的 端点详细信息 屏幕上,找到 Endpoint 。该值以vpce-开头。

  2. 获得VPC端点的ID后,使用端点ID、云部署地区和端点类型调用创建VPC私有端点。 示例,使用aws-us-east-1

curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoints \
-X POST \
-H "Authorization: Bearer <accessToken>" \
-H "Content-Type: application/json" \
-d '{
"cloud_provider_region": "<your-cloud-deployment-region>",
"cloud_provider_endpoint_id": "<your-vpc-endpoint-id>",
"endpoint_type": "general",
"comment": "Optional: add a comment describing the endpoint."
}'

每个同步端点都必须与一个通用端点配对。

1
  1. 在App Services用户界面中,导航到App Settings ,然后单击Private Endpoints标签页。

  2. 单击 Add Private Endpoint,然后单击 Sync

  3. 在各自的字段中添加VPC ID和子网 ID(逗号分隔列表),然后点击Next

  4. 复制生成的VPC Interface Endpoint Command 。 该命令应如下所示:

    aws ec2 create-vpc-endpoint \
    --vpc-endpoint-type Interface
    --service-name <App Services Endpoint Service Name> \
    --vpc-id <your-vpc-id> \
    --region <your-aws-deployment-region> \
    --subnet-ids <your-subnet-ids>
  5. 在终端中,执行生成的Amazon Web Services CLI命令以创建VPC端点。

  6. 您还必须使用App Services生成的命令创建常规端点。

2

现在您已经在 VPC 中创建了接口端点,您需要将它们添加到您的应用中。

  1. 在上一步中运行的 命令的输出中,或在 仪表盘的端点详细信息屏幕上,找到 Sync 和 GeneralVPC Endpoint IDs CLIAmazon Web ServicesVPC。该值以vpce-开头。

  2. 复制新的VPC端点 ID,并将其粘贴到App Services用户界面中各自的Your VPC Endpoint ID字段中,然后单击Next

  3. 如果这是您创建的第一个私有端点,您将看到一个开关,您可以使用它来限制或开放 PrivateLink 连接之外的请求的所有访问权限。默认情况下,App Services 会阻塞 PrivateLink 连接之外的所有请求。此设置适用于该端点和您创建的所有其他端点。有关更多信息,请参阅更改访问限制

  4. 您还必须按照本页面上创建一般私有端点的步骤创建一般私有端点。

  5. 单击 Finish Endpoint Creation(连接)。

1
  1. 调用列出VPC私有端点服务端点。

  2. 筛选响应对象以查找应用的部署地区和要创建的端点类型的条目。

    curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoint_service_infos \
    -H "Authorization: Bearer <access_token>"
    [
    {
    "cloud_provider_region": "aws-us-east-1",
    "service_name": "com.amazonaws.vpce.us-east-1.vpce-svc-0718bec2c0bdeab5c",
    "endpoint_type": "sync"
    },
    ...
    ]
  3. 从上一步中所需的条目中获取service_name字段。

  4. VPC使用Amazon Web ServicesCLI 创建 端点 create-vpc-endpoint 命令。您需要App Services端点服务名称、 VPC ID 、子网 ID 和Amazon Web Services部署地区。 该命令应如下所示:

aws ec2 create-vpc-endpoint \
--vpc-endpoint-type Interface
--service-name <App Services Endpoint Service Name> \
--vpc-id <your-vpc-id> \
--region <your-aws-deployment-region> \
--subnet-ids <your-subnet-ids>
2

现在您已经在 VPC 中创建了接口端点,您需要将其添加到您的应用中。

  1. 在上一步中运行的 命令的输出中,或在 仪表盘的端点详细信息屏幕上,找到同步VPC 端点IDCLIAmazon Web ServicesVPC 。该值以vpce-开头。

  2. 通过调用创建VPC私有端点及其端点ID、云部署地区和端点类型来创建同步私有端点。 示例,使用aws-us-east-1

    curl https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/security/private_endpoints \
    -X POST \
    -H "Authorization: Bearer <accessToken>" \
    -H "Content-Type: application/json" \
    -d '{
    "cloud_provider_region": "<your-cloud-deployment-region>",
    "cloud_provider_endpoint_id": "<your-vpc-endpoint-id>",
    "endpoint_type": "sync",
    "comment": "Optional: add a comment describing the endpoint."
    }'
  3. 您还必须按照本页面上创建一般私有端点的步骤创建一般私有端点。

默认情况下,所有私有端点仅处理内部请求。您可以选择开放 PrivateLink 连接之外的所有请求的访问。

重要

此设置对所有端点都是全局的。

您可以通过三种方式切换此设置:

  • 在用户界面的Private Endpoints标签页的端点列表中,单击Restrict Access按钮。

  • 在用户界面中,创建第一个私有端点时,您可以选择在Modify Your VPC Private DNS步骤中切换此设置。

  • 在 Admin API中,使用布尔值调用“切换非VPC请求”( true可删除默认限制, false可恢复默认限制。)

启用私有端点时,您仍然可以使用其他方法启用对App Services应用程序的访问权限,例如将公共 IP 添加到IP访问权限列表。

无需将私有 IP 添加到 IP 访问列表,因为通过私有端点的请求会忽略 IP 访问列表。

Atlas Device SDK 可以访问权限常规端点和同步端点。 但是,它们必须使用支持新域的版本。

  • 您不能将私有端点与全球部署的应用程序或部署到 Azure 或 GCP 的本地应用程序一起使用。

  • 如果启用了私有端点,则无法使用公共互联网连接访问权限您的应用程序。 所有请求都必须通过私有端点发出。

  • 如果更改部署模型,则必须为应用程序的新地区创建新的私有端点。

  • 您不能同时使用私有端点并允许通过MongoDB传输协议进行连接。 如果已启用其中一个,则无法启用另一个。

  • 默认,私有端点仅处理源自VPC内部的请求。 您可以将应用配置为也接受来自公共互联网的请求。 要学习;了解如何操作,请参阅更改访问限制。

  • 所有出站请求(例如App Services trigger调用外部API ) Go会通过公共互联网。

后退

管理开发者访问权限