Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3
借助 VPC Service Controls,组织可以为 Google Cloud 资源定义边界,从而降低数据渗漏风险。
Cloud Composer 环境可以部署在服务边界内。通过使用 VPC Service Controls 配置您的环境,您可以在利用 Cloud Composer 的全代管式工作流编排功能的同时确保敏感数据的私密性。
VPC Service Controls 对 Cloud Composer 的支持意味着:
- 现在可以选择 Cloud Composer 作为 VPC Service Controls 边界内的安全服务。
- 将 Cloud Composer 使用的所有底层资源都配置为支持 VPC Service Controls 架构并遵循其规则。
使用 VPC Service Controls 部署 Cloud Composer 环境时,您可以:
- 降低数据泄露风险。
- 防止因访问权限控制配置错误而导致数据泄露。
- 降低恶意用户将数据复制到未经授权的 Google Cloud 资源或外部攻击者从互联网访问 Google Cloud 资源的风险。
VPC Service Controls 模式下的 Airflow 网络服务器
在 VPC Service Controls 模式下,对 Web 服务器的访问受 边界外的访问将被阻止。
如需允许从服务边界外访问,请配置 访问权限级别。
创建服务边界
如需了解如何创建和配置服务边界,请参阅创建服务边界。确保选择 Cloud Composer 作为边界内保护的一项服务。
在边界中创建环境
在边界内部署 Cloud Composer 需要执行一些额外步骤。创建 Cloud Composer 环境时:
为您的项目启用 Access Context Manager API 和 Cloud Composer API。如需参考,请参阅启用 API。
确保您的服务边界具有以下 VPC 可访问服务。 否则您的环境可能无法创建:
- Cloud Composer API (composer.googleapis.com)
- Compute Engine API (compute.googleapis.com)
- Kubernetes Engine API (container.googleapis.com)
- Container Registry API (containerregistry.googleapis.com)
- Artifact Registry API (artifactregistry.googleapis.com)
- Cloud Storage API (storage.googleapis.com)
- Cloud SQL Admin API (sqladmin.googleapis.com)
- Cloud Build API (cloudbuild.googleapis.com)
- Cloud Logging API (logging.googleapis.com)
- Cloud Monitoring API (monitoring.googleapis.com)
- Cloud Pub/Sub API (pubsub.googleapis.com)
- Security Token Service API (sts.googleapis.com)
- Cloud Resource Manager API (cloudresourcemanager.googleapis.com)
- Service Directory API (servicedirectory.googleapis.com)
- Cloud Key Management Service API (cloudkms.googleapis.com)(如果您使用的是 Cloud KMS 或 CMEK 密钥)
- Secret Manager API (secretmanager.googleapis.com)(如果您将 Secret Manager 用作 Secret 后端)
创建启用专用 IP 的新 Cloud Composer 环境。 请注意,必须在环境创建期间配置此设置。
默认情况下,仅允许从 安全边界您想将其设为在安全级别以外的地方使用 然后按照说明 允许从边界外访问受保护的资源。
使用 VPC Service Controls 配置现有环境
在以下情况下,您可以将环境所属的项目添加到边界:
安装 PyPI 软件包
在默认 VPC Service Controls 配置中,Cloud Composer 仅支持从可从 VPC 网络的专用 IP 地址空间访问的专用代码库安装 PyPI 软件包。此过程的推荐配置是设置私有 PyPI 代码库,使用组织使用的经过审核的软件包填充,然后配置 Cloud Composer 以从私有代码库安装 Python 依赖项。
您还可以从专用 IP 空间之外的代码库安装 PyPI 软件包。请按照以下步骤操作:
使用此设置时,确保您了解使用外部代码库的风险。请务必信任任何外部代码库的内容和完整性,因为这些连接可能会被用作泄露矢量。
配置与 Google API 和服务的连接
在 VPC Service Controls 配置中,如需控制网络流量,
通过
restricted.googleapis.com
。此网域禁止访问 Google API 和
不支持 VPC Service Controls 的服务。
Cloud Composer 环境使用以下网域:
*.googleapis.com
用于访问其他 Google 服务。*.composer.cloud.google.com
用于为您的 Cloud Storage 存储分区 没有障碍在创建 环境- 或者,您也可以为特定区域创建规则。为此,
请使用
REGION.composer.cloud.google.com
。 将REGION
替换为环境所在的区域, 示例:us-central1
。
- 或者,您也可以为特定区域创建规则。为此,
请使用
(可选)访问
*.composer.googleusercontent.com
时 您的环境的 Airflow Web 服务器。只有在以下情况下,才需要指定此规则: 从运行 VPC 网络,则不需要。一种常见的情况是 就是当您要在 VPC 网络内调用 Airflow REST API 时。- 此外,您还可以为特定环境创建规则。接收者
为此,请使用
ENVIRONMENT_WEB_SERVER_NAME.composer.googleusercontent.com
,了解所有最新动态。将ENVIRONMENT_WEB_SERVER_NAME
替换为 环境的 Airflow 界面网址bffe6ce6c4304c55acca0e57be23128c-dot-us-central1
。
- 此外,您还可以为特定环境创建规则。接收者
为此,请使用
*.pkg.dev
用于获取环境映像,例如在创建或 更新环境*.gcr.io
GKE 需要连接到 Container Registry 网域,而不考虑 Cloud Composer 版本。
配置与 restricted.googleapis.com
端点的连接:
网域 | DNS 名称 | CNAME 记录 | A 记录 |
---|---|---|---|
*.googleapis.com
|
googleapis.com. |
DNS 名称:*.googleapis.com. 资源记录类型: CNAME 规范名称: googleapis.com. |
资源记录类型:A IPv4 地址: 199.36.153.4 、199.36.153.5 、199.36.153.6 、199.36.153.7
|
*.composer.cloud.google.com
|
composer.cloud.google.com. |
DNS 名称:*.composer.cloud.google.com. 资源记录类型: CNAME 规范名称: composer.cloud.google.com. |
资源记录类型:A IPv4 地址: 199.36.153.4 、199.36.153.5 、199.36.153.6 、199.36.153.7
|
*.composer.googleusercontent.com
(可选,参见说明) |
composer.googleusercontent.com. |
DNS 名称:*.composer.googleusercontent.com. 资源记录类型: CNAME 规范名称: composer.googleusercontent.com. |
资源记录类型:A IPv4 地址: 199.36.153.4 、199.36.153.5 、199.36.153.6 、199.36.153.7
|
*.pkg.dev
|
pkg.dev. |
DNS 名称:*.pkg.dev. 资源记录类型: CNAME 规范名称: pkg.dev. |
资源记录类型:A IPv4 地址: 199.36.153.4 、199.36.153.5 、199.36.153.6 、199.36.153.7
|
*.gcr.io
|
gcr.io. |
DNS 名称:*.gcr.io. 资源记录类型: CNAME 规范名称: gcr.io. |
资源记录类型:A IPv4 地址: 199.36.153.4 、199.36.153.5 、199.36.153.6 、199.36.153.7
|
如需创建 DNS 规则,请执行以下操作:
创建一个新的 DNS 区域并使用 DNS 名称作为 DNS 名称 资源。
示例:
pkg.dev.
为 CNAME 记录添加记录集。
示例:
- DNS 名称:
*.pkg.dev.
- 资源记录类型:
CNAME
- 规范名称:
pkg.dev.
- DNS 名称:
为 A 记录添加一个记录集:
示例:
- 资源记录类型:
A
- IPv4 地址:
199.36.153.4
、199.36.153.5
、199.36.153.6
、199.36.153.7
- 资源记录类型:
如需了解详情,请参阅 设置与 Google API 和服务的专用连接。
配置防火墙规则
如果您的项目具有非默认防火墙规则(例如 覆盖规则 隐式防火墙规则,或者 您可在以下位置修改预先填充的规则 默认网络,然后验证以下防火墙规则是否 配置。
例如,如果存在以下情况,Cloud Composer 可能无法创建环境:
您有一条拒绝所有出站流量的防火墙规则。为避免出现问题
定义遵循列表且具有更高优先级的选择性 allow
规则
全局规则deny
。
将您的 VPC 网络配置为允许来自您环境的流量:
说明 | 方向 | 操作 | 来源或目标 | 协议 | 端口 |
---|---|---|---|---|---|
DNS 按照 Cloud DNS 的 VPC Service Controls 支持中的说明进行配置 |
- | - | - | - | - |
Google API 和服务 | 出站 | 允许 | 您用于 Google API 和服务的 restricted.googleapis.com 的 IPv4 地址。 |
TCP | 443 |
环境的集群节点 | 出站 | 允许 | 环境的子网主要 IP 地址范围 | TCP、UDP | 全部 |
环境的集群 Pod | 出站 | 允许 | 环境子网中 Pod 的次要 IP 地址范围 | TCP、UDP | 全部 |
环境的集群控制平面 | 出站 | 允许 | GKE 控制平面 IP 地址范围 | TCP、UDP | 全部 |
(如果您的环境使用 Private Service Connect)连接子网 | 出站 | 允许 | Cloud Composer 连接子网范围 | TCP | 3306、3307 |
(如果您的环境使用 VPC 对等互连)租户网络 | 出站 | 允许 | Cloud Composer 租户网络 IP 地址范围 | TCP | 3306、3307 |
要获取 IP 范围,请执行以下操作:
Pod、Service 和控制平面地址范围 环境集群的集群页面上:
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
点击查看集群详情链接。
您可以查看环境的 环境配置标签页上的 Cloud Composer 租户网络 IP 范围。
您可以查看环境的 环境配置标签页上显示的子网 ID 和 Cloud Composer 连接子网 ID。获取 IP 子网的 IP 地址范围,请转到 VPC 网络页面,然后点击 网络名称以查看详情:
VPC Service Controls 日志
排查环境创建问题时,您可以分析审核日志 VPC Service Controls
除了其他日志消息之外,您还可以查看日志
cloud-airflow-prod@system.gserviceaccount.com
和
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
服务账号。
Cloud Composer 服务使用
cloud-airflow-prod@system.gserviceaccount.com
个服务账号需要管理
您的环境中的租户项目组件。
通过
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
服务账号(也称为Composer Service Agent Service Account
)
环境中的
服务项目和宿主项目。
限制
- 所有 VPC Service Controls 网络限制条件也适用于您的 Cloud Composer 环境。如需了解详情,请参阅 VPC Service Controls 文档。
- 当 Cloud Composer 在边界内运行时,对公共 PyPI 代码库的访问权限会受到限制。请参阅安装 Python 依赖项,了解如何在专用 IP 模式下安装 PyPI 模块。