GCP Private Service Connect 流量过滤器
Elastic Cloud Hosted
流量过滤以仅允许 Private Service Connect 连接是 Elastic Cloud 中可用的安全层之一。它允许您限制如何访问您的部署。
请参阅流量过滤以了解有关 Elastic Cloud Hosted 中流量过滤的更多信息,以及流量过滤规则的工作方式。
Private Service Connect 过滤仅支持 Google Cloud 区域。
Private Service Connect 在两个 Google Cloud VPC 之间建立安全连接。 VPC 可以属于不同的帐户,例如服务提供商及其服务消费者。 Google Cloud 在 Google Cloud 数据中心内路由 Private Service Connect 流量,并且永远不会将其暴露给公共互联网。在这种配置中,Elastic Cloud 是第三方服务提供商,客户是服务消费者。
Private Link 是 Private Service Connect 端点和服务附件之间的连接。了解有关在 Google Cloud 上使用 Private Service Connect 的更多信息。
Private Service Connect 连接是区域性的,您的 Private Service Connect 端点需要与您的部署位于同一区域。一旦您启用其 全局访问 功能,就可以从任何区域访问该端点。
服务附件由 Elastic 在所有受支持的 GCP 区域中根据以下 URI 进行设置
GCP 公共区域
区域 | 服务附件 URI | 专用区域 DNS 名称 |
---|---|---|
asia-east1 |
projects/cloud-production-168820/regions/asia-east1/serviceAttachments/proxy-psc-production-asia-east1-v1-attachment |
psc.asia-east1.gcp.elastic-cloud.com |
asia-northeast1 |
projects/cloud-production-168820/regions/asia-northeast1/serviceAttachments/proxy-psc-production-asia-northeast1-v1-attachment |
psc.asia-northeast1.gcp.cloud.es.io |
asia-northeast3 |
projects/cloud-production-168820/regions/asia-northeast3/serviceAttachments/proxy-psc-production-asia-northeast3-v1-attachment |
psc.asia-northeast3.gcp.elastic-cloud.com |
asia-south1 |
projects/cloud-production-168820/regions/asia-south1/serviceAttachments/proxy-psc-production-asia-south1-v1-attachment |
psc.asia-south1.gcp.elastic-cloud.com |
asia-southeast1 |
projects/cloud-production-168820/regions/asia-southeast1/serviceAttachments/proxy-psc-production-asia-southeast1-v1-attachment |
psc.asia-southeast1.gcp.elastic-cloud.com |
asia-southeast2 |
projects/cloud-production-168820/regions/asia-southeast2/serviceAttachments/proxy-psc-production-asia-southeast2-v1-attachment |
psc.asia-southeast2.gcp.elastic-cloud.com |
australia-southeast1 |
projects/cloud-production-168820/regions/australia-southeast1/serviceAttachments/proxy-psc-production-australia-southeast1-v1-attachment |
psc.australia-southeast1.gcp.elastic-cloud.com |
europe-north1 |
projects/cloud-production-168820/regions/europe-north1/serviceAttachments/proxy-psc-production-europe-north1-v1-attachment |
psc.europe-north1.gcp.elastic-cloud.com |
europe-west1 |
projects/cloud-production-168820/regions/europe-west1/serviceAttachments/proxy-psc-production-europe-west1-v1-attachment |
psc.europe-west1.gcp.cloud.es.io |
europe-west2 |
projects/cloud-production-168820/regions/europe-west2/serviceAttachments/proxy-psc-production-europe-west2-v1-attachment |
psc.europe-west2.gcp.elastic-cloud.com |
europe-west3 |
projects/cloud-production-168820/regions/europe-west3/serviceAttachments/proxy-psc-production-europe-west3-v1-attachment |
psc.europe-west3.gcp.cloud.es.io |
europe-west4 |
projects/cloud-production-168820/regions/europe-west4/serviceAttachments/proxy-psc-production-europe-west4-v1-attachment |
psc.europe-west4.gcp.elastic-cloud.com |
europe-west9 |
projects/cloud-production-168820/regions/europe-west9/serviceAttachments/proxy-psc-production-europe-west9-v1-attachment |
psc.europe-west9.gcp.elastic-cloud.com |
me-west1 |
projects/cloud-production-168820/regions/me-west1/serviceAttachments/proxy-psc-production-me-west1-v1-attachment |
psc.me-west1.gcp.elastic-cloud.com |
northamerica-northeast1 |
projects/cloud-production-168820/regions/northamerica-northeast1/serviceAttachments/proxy-psc-production-northamerica-northeast1-v1-attachment |
psc.northamerica-northeast1.gcp.elastic-cloud.com |
southamerica-east1 |
projects/cloud-production-168820/regions/southamerica-east1/serviceAttachments/proxy-psc-production-southamerica-east1-v1-attachment |
psc.southamerica-east1.gcp.elastic-cloud.com |
us-central1 |
projects/cloud-production-168820/regions/us-central1/serviceAttachments/proxy-psc-production-us-central1-v1-attachment |
psc.us-central1.gcp.cloud.es.io |
us-east1 |
projects/cloud-production-168820/regions/us-east1/serviceAttachments/proxy-psc-production-us-east1-v1-attachment |
psc.us-east1.gcp.elastic-cloud.com |
us-east4 |
projects/cloud-production-168820/regions/us-east4/serviceAttachments/proxy-psc-production-us-east4-v1-attachment |
psc.us-east4.gcp.elastic-cloud.com |
us-west1 |
projects/cloud-production-168820/regions/us-west1/serviceAttachments/proxy-psc-production-us-west1-v1-attachment |
psc.us-west1.gcp.cloud.es.io |
设置到您的集群的 Private Link 连接的过程分为 Google Cloud (例如,通过使用 Google Cloud 控制台) 和 Elastic Cloud UI。以下是高级步骤
Google Cloud 控制台 | Elastic Cloud UI |
---|---|
1. 使用 Elastic Cloud Service Attachment URI 创建 Private Service Connect 端点。 | |
2. 创建指向 Private Service Connect 端点的 DNS 记录。 | |
3. 使用 PSC 连接 ID 创建 Private Service Connect 规则集。 | |
4. 将 Private Service Connect 规则集与您的部署关联。 | |
5. 通过 Private Service Connect 与您的部署交互。 |
使用您所在区域的服务附件 URI 在您的 VPC 中创建 Private Service Connect 端点。
有关创建 Private Service Connect 端点以访问 Private Service Connect 服务的详细信息,请遵循 Google Cloud 说明。
使用 您所在区域的服务附件 URI。选择 已发布的服务 选项,然后输入所选的服务附件 URI 作为 目标服务。例如,对于区域
asia-southeast1
,服务附件 URI 为projects/cloud-production-168820/regions/asia-southeast1/serviceAttachments/proxy-psc-production-asia-southeast1-v1-attachment
注意您需要在您的 VPC 中 预留静态内部 IP 地址。该地址由 Private Service Connect 端点使用。
记下 PSC 连接 ID,例如
18446744072646845332
。创建 DNS 记录。
创建类型为 Private 的 DNS 区域。将 DNS 名称 设置为您所在区域的 专用区域 DNS 名称。例如,在 asia-southeast1 中,使用
psc.asia-southeast1.gcp.elastic-cloud.com
作为区域域名。确保该区域与您的 VPC 关联。然后,创建一个 DNS 记录集,其中包含指向 Private Service Connect 端点 IP 的 A 记录。使用
*
作为 DNS 名称,A
作为 资源记录类型,并将 Private Service Connect 端点 IP 地址作为记录值。有关创建指向您的 Private Service Connect 端点 IP 地址的 A 记录的详细信息,请遵循 Google Cloud 说明。
测试连接。
找出您的部署的 Elasticsearch 集群 ID。您可以通过在 Cloud UI 中选择 复制集群 ID 来做到这一点。它看起来像
9c794b7c08fa494b9990fa3f6f74c2f8
。提示Elasticsearch 集群 ID 与用户控制台中突出显示的部署 ID、自定义别名端点和 Cloud ID 值不同。
要通过 Private Link 访问您的 Elasticsearch 集群
如果您配置了 自定义端点别名,则可以使用自定义端点 URL 进行连接。
https://{{alias}}.{product}.{{private_hosted_zone_domain_name}}
例如
https://my-deployment-d53192.es.psc.asia-southeast1.gcp.elastic-cloud.com
或者,使用以下 URL 结构
https://{{elasticsearch_cluster_ID}}.{private_hosted_zone_domain_name}:9243
例如
https://6b111580caaa4a9e84b18ec7c600155e.psc.asia-southeast1.gcp.elastic-cloud.com:9243
您可以使用以下命令测试 Google Cloud 控制台部分设置(将区域和 Elasticsearch ID 替换为您的集群)
请求
$ curl -v https://6b111580caaa4a9e84b18ec7c600155e.psc.asia-southeast1.gcp.elastic-cloud.com:9243
响应
.. * Trying 192.168.100.2... .. < HTTP/2 403 .. {"ok":false,"message":"Forbidden"}
检查 IP 地址
192.168.100.2
。它应该与分配给您的 Private Service Connect 端点的 IP 地址相同。连接已建立,并且有效的证书已呈现给客户端。
403 Forbidden
是预期的,您尚未将任何部署与 Private Service Connect 端点关联。
请按照以下高级步骤将 private link 规则添加到您的部署。
- 查找您的 Private Service Connect 连接 ID.
- 使用 Private Service Connect 端点连接 ID 创建规则.
- 将 Private Service Connect 端点与您的部署关联.
- 通过 Private Service Connect 访问部署.
- 转到 Google Cloud 控制台中的 Private Service Connect 端点。
- 复制 PSC 连接 ID 的值。
当您拥有 Private Service Connect 端点连接 ID 时,您可以创建流量过滤规则集。
- 登录到 Elastic Cloud Console。
- 在主页或 托管部署 页面上找到您的部署,然后选择 管理 以访问其设置菜单。
- 在 功能 选项卡下,打开 流量过滤器 页面。
- 选择 创建过滤器。
选择 Private Service Connect 端点。
创建您的规则集,提供有意义的名称和描述。
选择规则集的区域。
输入您的 PSC 连接 ID。
选择是否应将此规则集自动附加到新的部署。
注意每个规则集都绑定到特定区域,并且只能分配给同一区域中的部署。
(可选) 您可以 声明您的 PSC 连接 ID,以便没有其他组织能够在流量过滤器规则集中使用它。
下一步是将规则集与您的部署关联。
将私有链接规则集与您的部署关联
- 转到部署。
- 在安全页面上的流量过滤器下,选择应用过滤器。
- 选择要应用的过滤器,然后选择应用过滤器。
要使流量通过 Private Service Connect 连接到部署,发出请求的客户端需要位于您创建 Private Service Connect 端点的 VPC 中。 您还可以设置网络流量,使其从其他地方(例如另一个 VPC 或来自公司网络的 VPN)流经原始 VPC。 这假定 Private Service Connect 端点和 DNS 记录也可在该上下文中使用。 有关设置说明,请查看您的云服务提供商文档。
使用您设置为 CNAME A 记录的别名来访问您的部署。
例如,如果您的 Elasticsearch ID 是 6b111580caaa4a9e84b18ec7c600155e
并且它位于 asia-southeast1
区域,您可以通过以下 URL 访问它
https://6b111580caaa4a9e84b18ec7c600155e.psc.asia-southeast1.gcp.elastic-cloud.com:9243
请求
$ curl -u 'username:password' -v https://6b111580caaa4a9e84b18ec7c600155e.psc.asia-southeast1.gcp.elastic-cloud.com:9243
响应
< HTTP/1.1 200 OK
..
如果您将 Private Service Connect 与 Fleet 一起使用,并使用 Private Service Connect URL 注册 Elastic Agent,则需要配置 Fleet Server 以使用和传播 Private Service Connect URL,方法是更新 Kibana 的Fleet 设置部分中的 Fleet Server 主机字段。 否则,Elastic Agent 将重置为使用默认地址而不是 Private Service Connect URL。 该 URL 需要遵循以下模式:https://<Fleet component ID/deployment alias>.fleet.<private zone DNS name>:443
。
同样,需要更新 Elasticsearch 主机以传播 Private Service Connect URL。 Elasticsearch URL 需要遵循以下模式:https://<Elasticsearch cluster ID/deployment alias>.es.<private zone DNS name>:443
。
在 Kibana 中启用此配置所需的设置 xpack.fleet.agents.fleet_server.hosts
和 xpack.fleet.outputs
目前仅在本地可用,而不在Elastic Cloud 中的 Kibana 设置中可用。
您可以编辑规则集名称或更改 PSC 连接 ID。
- 从帐户菜单中,选择流量过滤器。
- 找到要编辑的规则集。
- 选择编辑图标。
如果您需要删除规则集,必须先删除与部署的所有关联。
要删除包含所有规则的规则集
- 删除任何部署关联.
- 从帐户菜单中,选择流量过滤器。
- 找到要编辑的规则集。
- 选择删除图标。 如果有部署分配给该规则集,则该图标处于非活动状态。
如果您想从部署中删除任何流量限制或删除规则集,您需要首先删除任何规则集关联。 要通过 UI 删除关联
- 转到部署。
- 在安全页面上的流量过滤器下,选择删除。