安全性方面的最佳做法

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

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

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

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

  • 在 Identity and Access Management 中,按照身份和访问权限管理部分中的详细说明,为常规用户停用对 DAG 和环境配置的直接访问权限。

  • 使用 CI/CD 流水线在环境中部署 DAG,以便从代码库中检索 DAG 代码。这样,在将更改合并到版本控制系统之前,DAG 会先经过审核和批准。在审核过程中,审批者会确保 DAG 符合其团队内制定的安全标准。审核步骤对于防止部署可能执行不必要操作的 DAG 至关重要。

    在审核 DAG 时,需要考虑的一些重要安全方面包括:

    • 修改环境存储桶内容的 DAG 不得修改其他 DAG 的代码或访问敏感数据,除非有意为之。

    • 除非有意为之,否则 DAG 不得直接查询 Airflow 数据库。Cloud Composer 环境中的 DAG 可以访问 Airflow 数据库中的所有表。您可以从任何表中检索信息、处理信息,然后将其存储在 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)。

后续步骤