什么是私有端点 (Private End Point)
私有端点利用 AWS、Azure和Google Cloud 提供的网络解决方案,在AWS中是虚拟私有云(VPCs),在Azure中是虚拟网络(VNETs)。这种连接方法非常安全,因为它确保Atlas无法发起回到您的环境的连接。所有拥有专用集群的Atlas的用戶都可使用私有端点,可以通过用户界面(UI)、API、命令行界面(CLI)和Terraform提供程序为每个Atlas项目创建私有端点。
而不同的云服务提供商对于私有端点有不同命名方式,分别为以下三种:
AWS: PrivateLink
Google Cloud: Private Service Connect(PSC)
Azure: Private Link
为什么我们会在Atlas中提供私有终端?
私有端点为客户提供了在其云服务提供商环境中使用私有IP连接到Atlas虚拟私有云(VPC)的能力。通过私有端点,Atlas被视为一个企业级解决方案,因为我们具有网络控制,确保没有流量离开各自的私有网络,同时Atlas无法发起连接返回到客户环境。
这意味着客户可以通过私有端点在其云服务提供商的环境中以私有IP地址连接到Atlas VPC。私有端点的使用提供了额外的网络控制,确保数据在私有网络内部进行传输,同时防止Atlas主动发起连接返回到客户环境,这有助于提高安全性和隔离性。
使用私有端点如何帮助到客户?
确保单向连接输出提高安全性和隔离性:用戶通过其虚拟私有云(VPC)内的私有IP进行连接(在Azure中称为VNet),并且单向连接字符串确保Atlas VPC无法发起连接回用戶的VPC
跨应用程序的安全控制整合:您可以在其云服务提供商内配置对Atlas的访问权限,无需实施额外的安全控制措施,如防火墙规则、访问控制列表(ACLs)、安全组来阻止来自Atlas VPC的网络访问。
从对等和本地环境的传递性连接:开发者可以通过私有终端从其他对等的VPC(在AWS中)或VNet(在Azure中)以及本地/本地环境连接到Atlas,无需使用IP访问列表。
AWS: PrivateLink
如何在Atlas设置 - AWS 私有端点
注意:
此功能不适用于 M0 免费集群、M2 和 M5 集群。要了解哪些功能不可用,请参阅 Atlas M0(免费集群)、M2 和 M5 的限制
通过Atlas UI设置AWS PrivateLink:
如果尚未显示,请从导航栏的“Organizations”菜单中选择包含您期望项目的组织。
如果尚未显示,请从导航栏的“Projects”菜单中选择您期望的项目。
对于专用Atlas集群的私有端点,请点击“Dedicated Cluster”(默认选项)。
点击“Add Private Endpoint”按钮。
点击AWS标志,然后点击“Next”(下一步)。
从Atlas区域列表中,选择您想要创建私有端点的区域。
点击“Next”(下一步)。
注意:
如果您的组织尚未存储任何付款信息,Atlas会在继续之前提示您添加付款信息。
如果您有一个跨多个地区或多个云的集群,并且您没有启用区域化私有端点,您必须为每个提供商和地区都提供一个端点。
Atlas会在您选择的区域创建VPC资源。这可能需要几分钟来完成。
输入关于您的AWS VPC的以下详细信息:
您的VPC ID:对等AWS VPC的唯一标识符。在您的AWS帐户的VPC仪表板上找到此值。
您的子网ID:您的AWS VPC使用的子网的唯一标识符。在您的AWS帐户的子网仪表板上找到这些值。
重要:
您必须至少指定一个子网。如果您没有指定子网,AWS将不会在您的VPC中提供接口端点。接口端点对于您的VPC中的客户端将流量发送到私有端点是必需的。
复制对话框显示的命令并使用AWS CLI运行它。
注意:
在Atlas完成后台创建VPC资源之前,您无法复制该命令。
查看创建接口端点以使用AWS CLI执行此任务。
点击“Next”(下一步)。
输入您的VPC端点ID。这是一个包含22个字母数字字符的字符串,用于标识您的私有端点。在AWS VPC仪表板的“Endpoints” > “VPC ID”下找到此值。
点击“Create”(创建)。
对于每个需要使用AWS PrivateLink连接到您的Atlas集群的资源,该资源的安全组必须允许对接口端点的私有IP地址的所有端口进行出站流量。
查看向安全组添加规则以获取更多信息。
此安全组必须允许从每个需要使用AWS PrivateLink连接到您的Atlas集群的资源的所有端口接收入站流量:
在AWS控制台中,导航到VPC仪表板。
点击“Security Groups”,然后点击“Create security group”。
使用向导创建一个安全组。确保从VPC列表中选择您的VPC。
选择您刚创建的安全组,然后点击“Inbound Rules”选项卡。
点击“Edit Rules”。
添加规则,允许从您的VPC中每个要连接到Atlas集群的资源接收所有入站流量。
点击“Save Rules”。
点击“Endpoints”,然后点击您VPC的端点。
点击“Security Groups”选项卡,然后点击“Edit Security Groups”。
添加您刚创建的安全组,然后点击“Save”。
了解更多关于VPC安全组 的信息,请参阅AWS文档。
当所有资源都配置好并且私有端点可用时,您可以使用AWS PrivateLink私有端点连接到Atlas数据库部署。
要验证AWS PrivateLink私有端点是否可用:
在左侧导航的“Security”部分中,点击“Network Access”。
在“Private Endpoint”选项卡上,选择数据库部署类型,并验证包含您想要使用AWS PrivateLink连接的数据库部署的区域的以下状态:
Atlas端点服务状态:Available(可用)
端点状态:Available(可用)
要了解更多可能的状态值,请参阅Troubleshoot Private Endpoint Connection Issues。
如果您没有看到这些状态,请参阅Troubleshoot Private Endpoint Connection Issues获取额外的信息。
定价示例
Atlas私有端点容量单元(Capacity Units)是衡量Atlas私有端点处理流量的维度。所测量的维度包括:
新连接或流量: 每秒新建立的连接或流的数量。
活动连接或流量: 每分钟采样的峰值并发连接或流的数量。
处理的字节: 私有端点处理的字节数,以千兆字节(GB)为单位
对于TLS流量,一个Atlas私有端点容量单元包含:
新连接或流量: 每秒50个新的TLS连接或流。
活动连接或流量: 每分钟采样的3,000个活动TLS连接或流的数量。
处理的字节: 每小时1千兆字节(GB)。
计算价格时,取三个维度中,容量单位取值最大维度,乘以该维度对应的单价,即图所示 -
GCP: Private Service Connect(PSC)
如何在Atlas设置 GCP Private Service Connect
注意:
此功能不适用于 M0 免费集群、M2 和 M5 集群。要了解哪些功能不可用,请参阅 Atlas M0(免费集群)、M2 和 M5 的限制
通过Atlas UI设置 GCP Private Service Connect
如果尚未显示,请从导航栏的“Organizations”菜单中选择包含您期望项目的组织。
如果尚未显示,请从导航栏的“Projects”菜单中选择您期望的项目。
在侧边栏中点击“Network Access”。
对于专用Atlas集群的私有端点,请点击“Dedicated Cluster”(默认选项)。
注意:
如果您的组织(organization)尚未配置付款方式,您必须在“编辑付款方式”表单中提供结算信息。
在“Atlas 区域”列表中,选择您想要创建私有端点的区域。
点击“下一步”。
注意:
如果您的组织尚未存储任何付款信息,Atlas会在继续之前提示您添加付款信息。
如果您有一个跨多个地区或多个云的集群,并且您没有启用区域化私有端点,您必须为每个提供商和地区都提供一个端点。
Atlas会在您选择的区域创建VPC资源。这可能需要几分钟来完成。
输入以下关于您的 Google Cloud VPC 详细信息:
i. Google Cloud Project ID: 可在您的 Google Cloud 平台上的仪表板页面确认。
ii. VPC Name (用来连接至 Atlas 的 VPC 名称): 可在您的 Google Cloud 仪表板上的 VPC 网络页面确认此值。
iii. Subnet Name: 可以在 Google Cloud 仪表板上的 VPC 网络页面中确认。
在“Private Service Connect Endpoint Prefix”字段中输入您的私有端点的唯一名称。这将成为创建的所有端点的前缀以及端点组的名称。点击“下一步”。
通过下载 shell 脚本并使用 gcloud CLI 运行它,在您的Google Cloud VPC 中创建转发规则。这将输出一个包含 IP 地址和端点名称列表的 JSON 文件,您将在下一步中需要这个文件。点击“下一步”。
点击“上传 JSON 文件”选择并上传输出的 JSON 文件。
点击“创建私有端点”。
在左侧导航的“Security”部分,点击“Network Access”。
在“Private Endpoint”选项卡上,验证包含您想通过Private Service Connect接到的集群的区域的以下状态:
Atlas端点服务状态:Available(可用)
端点状态:Available(可用)
要了解更多可能的状态值,请参阅Troubleshoot Private Endpoint Connection Issues。
如果您没有看到这些状态,请参阅Troubleshoot Private Endpoint Connection Issues获取额外的信息。
收费参考
MongoDB Atlas 支持在 Google Cloud 上使用 Private Service Connect 功能的私有端点。 对于Dedicated Cluster(专用集群),Atlas 将根据以下维度的使用情况向您收费:
Atlas Private Endpoint: 针对您在GCP上部署私有端点每小时的费用会根据不同的地区而有所不同。
注意:
尽管 Atlas 在每个区域创建了 50 个负载均衡器和服务附件,但 Atlas 并不会对每个负载均衡器和服务附件单独收费。Atlas 对整个区域收取统一的小时费率。
Atlas Private Endpoint Capacity Units: Atlas 根据您使用私有端点容量单位的情况收费。每个单位相当于通过 Google Cloud 私有端点处理的 1 GB 数据。传入和传出的数据都会产生费用。
Google Cloud 亦会对您创建的每个用于访问 Atlas 的私有服务连接端点(转发规则)收费。请参考 Google Cloud 的官方文档Private Service Connect Pricing,以获取有关其收费方式的详细信息。
參考文件
GCP Atlas 集群的专用连接示例
https://cloud.google.com/integration-connectors/docs/configure-mongo-atlas-psc?hl=zh-cn#syntax
GCP 网络订价说明
https://cloud.google.com/vpc/network-pricing?hl=zh-cn
如何从私有端点管理和连接
点击左上角的“Database”:在 Atlas 的界面上,点击位于左上角的“数据库”选项。
在Database Deployments中,点击您想要连接的数据库部署旁的“Connect”:这将引导您到设置连接的选项。
选择“Private Endpoint”连接类型:在提供的连接类型选项中,选择“私有端点”。
选择您想要连接的private endpoint:从列出的私有端点中选择一个进行连接。
创建数据库用户:要访问数据库部署,您需要一个 MongoDB 用户,该用户需要有权限访问项目中数据库部署上的指定数据库或多个数据库。如果您的项目中没有 MongoDB 用户,Atlas 会提示您创建一个具有 Atlas 管理员角色的新用户。
输入新用户的用户名。
为这个新用户输入一个密码,或点击自动生成安全密码。
点击创建数据库用户以保存该用户。
重要:
如果 Atlas 在设置连接安全步骤中显示您的项目中至少配置了一个数据库用户,那么您可以跳过此步骤。
关注获取更多精彩内容
中国官方网站
www.mongodb.com/zh-cn