安全性最佳实践

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

确保 Cloud Composer 环境的安全对于保护敏感数据和防止未经授权的访问至关重要。本页面概述了一些关键的最佳实践,包括有关网络安全、身份和访问权限管理、加密以及环境配置管理的建议。

如需详细了解 Cloud Composer 提供的安全功能,请参阅安全概览

使用版本控制管理环境配置和 DAG

Airflow CI/CD 流水线示例
图 1. Airflow CI/CD 流水线示例(点击可放大)
  • 使用 Terraform 创建环境。这样,您就可以将环境的配置作为代码存储在代码库中。这样,您就可以在环境配置更改应用之前进行审核,还可以通过分配权限较少的角色来减少有权更改配置的用户数量。

  • 使用 CI/CD 流水线在环境中部署 DAG,以便从代码库检索 DAG 代码。这样,DAG 会先经过审核和批准,然后再将更改合并到版本控制系统。在审核过程中,审批人会确保 DAG 符合其团队内制定的安全标准。审核步骤至关重要,可防止部署的 DAG 修改环境存储分区中的内容。

  • 在身份和访问权限管理中,禁止常规用户直接访问 DAG 和环境的配置,如身份和访问权限管理部分中所详述。

网络安全

  • 使用专用 IP 环境,以便运行环境集群的 Airflow 组件不会被分配公共 IP 地址,并且只能通过 Google 的内部网络进行通信。

  • 实施严格的防火墙规则,以控制进出环境集群的流量。

  • 通过 private.googleapis.com 网域配置与 Google API 和服务的连接,以便您的环境通过仅可从 Google Cloud路由的 IP 地址访问 Google API 和服务。

  • 检查项目中以及环境所在的 VPC 网络中的常规防火墙规则。根据您的配置方式,您环境中的 Airflow 组件(例如运行 DAG 的 Airflow 工作器)可能会访问互联网。

Identity and Access Management

  • 隔离权限。 创建环境服务账号,并为不同的环境使用不同的服务账号。请仅向这些服务账号分配操作这些环境以及执行它们运行的 Airflow DAG 中定义的操作所绝对必要的权限。

  • 避免使用具有广泛权限的服务账号。虽然可以创建使用具有广泛权限(例如“编辑者”基本角色授予的权限)的账号的环境,但这会导致 DAG 使用超出预期的权限。

  • 请勿依赖 Cloud Composer 使用的 Google 服务的默认服务账号。通常,如果要减少这些服务账号的权限,就无法避免同时影响项目中的其他 Google 服务。

  • 确保您熟悉环境服务账号的安全注意事项,并了解此账号如何与您向项目中的各个用户授予的权限和角色进行交互。

  • 遵循最小权限原则。仅向用户授予刚好可以满足其需要的必要权限。例如,分配 IAM 角色,以便只有管理员可以访问环境的存储分区和环境的集群,并为普通用户停用直接访问权限。例如,Composer 用户角色只能访问 DAG 界面和 Airflow 界面。

  • 强制执行 Airflow 界面访问权限控制,以便根据用户的 Airflow 角色来降低 Airflow 界面和 DAG 界面中的可见性,还可用于为各个 DAG 分配 DAG 级权限。

  • 定期查看。定期审核 IAM 权限和角色,以识别和移除任何多余或未使用的特权。

  • 请注意传递和存储敏感数据时要遵循以下准则:

    • 传递存储个人身份信息或密码等敏感数据时,请务必谨慎。根据需要,使用 Secret Manager 安全地存储 Airflow 连接以及 Airflow 密文、API 密钥、密码和证书。请勿将此类信息存储在 DAG 或环境变量中。

    • 仅向可信用户授予对环境存储分区的 IAM 权限。请尽可能使用按对象的权限。 环境服务账号的安全注意事项列出了有权访问环境存储分区的用户可以通过哪些方式代表环境服务账号执行操作。

    • 确保您熟悉快照中存储的数据,并仅向受信任的用户授予创建环境快照和访问存储快照的存储分区的权限。

    • Cloud Composer 的所有外部接口默认都使用加密。连接到外部产品和服务时,请务必使用加密通信 (SSL/TLS)。

后续步骤