Managed Airflow(第 3 代) | Managed Airflow(第 2 代) | Managed Airflow(旧版第 1 代)
确保 Managed Airflow 环境的安全对于保护敏感数据和防止未经授权的访问至关重要。本页面概述了重要的最佳实践,包括网络安全、Identity and Access Management、加密和环境配置管理的建议。
如需详细了解 Managed Airflow 中提供的安全功能,请参阅安全概览。
使用版本控制管理环境配置和 DAG
使用 Terraform 创建环境。 这样,您就可以将环境的配置作为代码存储在代码库中。这样,您就可以在应用环境配置之前查看更改,并且可以通过分配权限较少的角色来减少有权更改配置的用户数量。
在 Identity and Access Management 中,按照 Identity and Access Management部分中的详细说明,禁止普通用户直接访问 DAG 和环境的 配置。
使用 CI/CD 流水线在环境中部署 DAG, 以便从代码库检索 DAG 代码。这样,系统会在将更改合并到版本控制系统之前审核并批准 DAG。在审核过程中,审批者会确保 DAG 符合其团队内建立的安全标准。审核步骤对于防止部署可能会执行不必要操作的 DAG 至关重要。
审核 DAG 时需要考虑的一些重要安全方面包括:
修改环境存储桶内容的 DAG 不得修改其他 DAG 的代码或访问敏感数据,除非有意这样做。
DAG 不得直接查询 Airflow 数据库,除非有意这样做。Managed Airflow 环境中的 DAG 可以访问 Airflow 数据库中的所有表。它可以从任何表中检索信息、处理信息,然后将其存储在 Airflow 数据库之外。
网络安全
为环境使用 专用 IP 网络类型,以便 环境的 Airflow 组件无法访问互联网,并且 其专用 Google 访问通道通过
private.googleapis.com范围进行配置,从而能够访问 Google API、 服务和此范围支持的网域。安装 PyPI 软件包时,禁止访问互联网。 请改用 Artifact Registry 代码库 作为软件包的唯一来源。
查看 连接到环境的 VPC 网络(如果 已连接)中的防火墙规则。根据配置方式的不同,环境的 Airflow 组件(例如运行 DAG 的 Airflow 工作器)可能会通过 VPC 网络访问互联网。
Identity and Access Management
隔离权限。 创建环境服务账号 并为不同的环境使用不同的服务账号。仅向这些服务账号分配运行这些环境以及执行其运行的 Airflow DAG 中定义的操作所必需的权限。
避免使用具有广泛权限的服务账号。虽然可以创建使用具有广泛权限的账号(例如由编辑者 基本角色授予的权限)的环境,但这会带来 DAG 使用超出预期范围的权限的风险。
请勿依赖 Managed Airflow 使用的 Google 服务的默认服务账号。通常,如果不影响项目中的其他 Google 服务,就无法减少这些服务账号可用的权限。
确保您熟悉 环境服务账号的安全注意事项 ,并了解此账号如何与您在项目中授予各个用户的权限和角色互动。
遵循最小权限原则。仅向用户授予必要的最低权限。例如, 分配 IAM 角色,以便只有 管理员可以访问环境的存储桶 , 并禁止普通用户直接访问。例如,Composer User 角色仅允许访问 DAG 界面和 Airflow 界面。
强制执行 Airflow 界面访问权限控制,该控制可根据用户的 Airflow 角色降低 Airflow 界面和 DAG 界面中的可见性,并可用于 为各个 DAG 分配 DAG 级权限。
定期审核。定期审核 IAM 权限和角色,以识别并移除任何过多或未使用的特权。
注意传递和存储敏感数据:
在传递和存储个人身份信息或密码等敏感数据时,请务必小心。在需要时, 使用 Secret Manager 安全地存储 Airflow 连接和 Airflow 密文、API 密钥、 密码和证书。请勿将此信息存储在 DAG 或环境变量中。
仅向受信任的用户授予对环境存储桶的 IAM 权限。如果可能,请使用按对象权限。 环境服务账号的安全注意事项 列出了具有环境存储桶访问权限的用户可以代表环境服务账号执行操作的几种方式。
确保您熟悉 快照中存储的数据,并且仅向受信任的用户授予创建环境快照和访问存储 快照的存储桶的 权限。
默认情况下,所有 Managed Airflow 的外部接口都使用加密。连接到外部产品和服务时,请确保使用加密通信 (SSL/TLS)。