Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
借助 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 资源的风险。
Cloud Composer 中的 VPC Service Controls 简介
- 所有 VPC Service Controls 网络限制条件也适用于您的 Cloud Composer 环境。如需了解详情,请参阅 VPC Service Controls 文档。
如果 Cloud Composer 环境受边界保护,对公共 PyPI 代码库的访问权限会受到限制。如需了解详情,请参阅在 VPC Service Controls 中安装 PyPI 软件包。
如果您的环境使用专用 IP 网络,所有内部流量都会路由到您的 VPC 网络,但通过专用 Google 访问通道可供专用 IP 环境使用的 Google API、服务和网域的流量除外。
根据您配置 VPC 网络的方式,专用 IP 环境可以通过您的 VPC 网络访问互联网。
在 VPC Service Controls 模式下,对网站服务器的访问受边界保护,并且会阻止来自边界外的访问。如需允许从服务边界外访问,请根据需要配置访问权限级别或入站和出站规则。此外,您还可以将对 Web 服务器的访问权限限制为特定 IP 地址范围。
VPC Service Controls 中与 Google API 和服务的连接简介
Cloud Composer 3 会通过 restricted.googleapis.com
将流量路由到 Google 服务,从而支持访问此范围支持的 Google API、服务和网域。
如需了解详情以及通过 restricted.googleapis.com
提供的服务和网域列表,请参阅虚拟私有云文档中的网络配置部分。
Cloud Composer 3 会阻止对所需 API 和服务列表中未列出的 Google API、服务和网域的调用。如果您想从 DAG 调用 API,请务必:
- 将服务添加到受限服务
- 将服务添加到 VPC 可访问服务
例如,如果您使用 VertexAI 运算符,请将 aiplatform.googleapis.com
添加到受限服务和 VPC 可访问服务。
如需了解详情,请参阅 VPC Service Controls 文档中的管理服务边界。
创建服务边界
如需了解如何创建和配置服务边界,请参阅创建服务边界。确保选择 Cloud Composer 作为边界内保护的一项服务。
在边界中创建环境
如需在边界内部署 Cloud Composer,您需要执行以下步骤:
为您的项目启用 Access Context Manager API 和 Cloud Composer API。如需参考,请参阅启用 API。
请确保您的服务边界包含以下 VPC 可访问的 Google 服务,否则您的环境可能会无法创建:
- Cloud Composer API (composer.googleapis.com)
- Artifact Registry API (artifactregistry.googleapis.com)
- Compute Engine API (compute.googleapis.com)
- Kubernetes Engine API (container.googleapis.com)
- Container File System API (containerfilesystem.googleapis.com)
- Cloud DNS API (dns.googleapis.com)
- Service Account Credentials API (iamcredentials.googleapis.com)
- Cloud Logging API (logging.googleapis.com)
- Cloud Monitoring API (monitoring.googleapis.com)
- Cloud Pub/Sub API (pubsub.googleapis.com)
- Cloud SQL Admin API (sqladmin.googleapis.com)
- Cloud Storage API (storage.googleapis.com)
创建新的 Cloud Composer 环境:
- 使用 Google Cloud CLI 创建环境。
- 使用
--enable-private-environment
参数启用专用 IP。 - 使用
--web-server-allow-all
、--web-server-allow-ip
或--web-server-deny-all
参数为网络服务器指定访问权限参数。如需详细了解如何使用这些实参,请参阅创建环境。为提高保护级别,请仅允许从特定 IP 范围访问 Web 服务器。 使用
--enable-private-builds-only
参数禁止通过公共互联网代码库安装软件包。示例:
gcloud composer environments create example-environment \ --location us-central1 \ --enable-private-environment \ --web-server-allow-all \ --enable-private-builds-only
默认情况下,只有在安全边界内才能访问 Airflow 界面和 API。如果您想在安全边界之外提供该服务,请配置访问权限级别或入站和出站规则。
将现有环境添加到边界
如果您的环境使用专用 IP,并且已停用从公共代码库安装 PyPI 软件包,您可以将环境所属的项目添加到边界。
如需将现有 Cloud Composer 3 环境更新为此配置,请执行以下操作:
- 确保您已按照上一部分中的说明创建或配置了边界。
- 使用 Google Cloud CLI 更新您的环境。
- 使用
--enable-private-environment
参数启用专用 IP。 - 使用
--enable-private-builds-only
参数禁止通过公共互联网代码库安装软件包。 - 如果需要,请配置对 Airflow Web 服务器的访问权限。为提高保护级别,请仅允许从特定 IP 范围访问 Web 服务器。
示例:
gcloud composer environments update example-environment \
--location us-central1 \
--enable-private-environment \
--enable-private-builds-only
在 VPC Service Controls 中安装 PyPI 软件包
在默认 VPC Service Controls 配置中,Cloud Composer 仅支持从可从 VPC 网络的内部 IP 地址空间访问的专用代码库安装 PyPI 软件包。
默认情况下,VPC Service Controls 边界内的所有 Cloud Composer 环境都无法访问公共 PyPI 代码库。
从私有代码库安装
建议的配置是设置私有 PyPI 代码库:
使用组织使用的经过审核的软件包填充该代码库,然后配置 Cloud Composer 以从私有代码库安装 Python 依赖项。
从公共代码库安装
如需从外部代码库安装 PyPI 软件包,请执行以下操作:
- 创建 Artifact Registry 远程代码库。
- 向此代码库授予对上游源代码的访问权限。
- 配置 Airflow 以从 Artifact Registry 代码库安装软件包。
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 服务账号)用于管理服务项目和宿主项目中的环境组件。