Amazon MWAA 的安全最佳实践 - Amazon Managed Workflows for Apache Airflow

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon MWAA 的安全最佳实践

Amazon MWA3 提供了在您开发和实施自己的安全策略时需要考虑的大量安全特征。以下最佳实践是一般指导原则,并不代表完整安全解决方案。这些最佳实践可能不适合环境或不满足环境要求,请将其视为有用的考虑因素而不是惯例。

  • 使用最低许可的权限策略。仅向用户执行任务所需的资源或操作授予权限。

  • AWS CloudTrail 用于监控您账户中的用户活动。

  • 确保 Amazon S3 存储桶策略和对象向关联的 Amazon MWAA 环境中的用户 ACLs 授予将对象放入存储桶的权限。这样可以确保有权向存储桶添加工作流程的用户也拥有在 Airflow 中运行工作流程的权限。

  • 使用与 Amazon MWAA 环境关联的 Amazon S3 存储桶。Amazon S3 存储桶可以是任何名称。请勿在存储桶中存储其他对象,也不要将该存储桶与其他服务一起使用。

Apache Airflow 中的安全最佳实践

Apache Airflow 不是多租户的。虽然有一些访问控制措施可以将某些功能限制为特定用户使用,Amazon MWAA 实施了这些措施,但 DAG 创建者确实可以编写 DAGs 可以更改 Apache Airflow 用户权限并与底层元数据库交互的内容。

在亚马逊 MWAA 上使用 Apache Airflow 时,我们建议您执行以下步骤,以确保您的环境的元数据库是安全的。 DAGs

  • 为具有 DAG 写入权限或能够将文件添加到 Amazon S3 /dags 文件夹的不同团队使用不同的环境,前提是可以写入环境的用户也可以访问 Amazon MWAA 执行角色Apache Airflow 连接访问的任何内容。

  • 请勿提供直接的 Amazon S3 DAGs 文件夹访问权限。取而代之的是,使用 CI/CD 工具写入 DAGs Amazon S3,并通过验证步骤确保 DAG 代码符合团队的安全准则。

  • 阻止用户访问环境的 Amazon S3 存储桶。相反,请使用 DAGs 基于 YAML、JSON 或其他定义文件生成的 DAG 工厂,该文件存储在与您存储的 Amazon MWAA Amazon S3 存储桶不同的位置。 DAGs

  • Secrets Manager 中管理密钥 虽然这不会阻止可以写入 DAGs 的用户读取密钥,但会阻止他们修改您的环境使用的密钥。

检测 Apache Airflow 用户权限的更改

你可以使用 CloudWatch Logs Insights 来检测 Apache Airflow 用户权限 DAGs 发生更改的情况。为此,只要您 DAGs 更改了 Apache Airflow 用户权限,您就可以使用 EventBridge 计划规则、Lambda 函数和 L CloudWatch ogs Insights 向 CloudWatch 指标发送通知。

先决条件

要完成本节中的步骤,您需要以下满足以下条件:

要配置有关 Apache Airflow 用户权限更改的通知,请执行以下操作
  1. 创建一个 Lambda 函数,该函数针对五个 Amazon MWAA 环境 CloudWatch 日志组(DAGProcessing、、、Scheduler和)运行以下 Logs Insights 查询字符串。Task WebServer Worker

    fields @log, @timestamp, @message | filter @message like "add-role" | stats count() by @log
  2. 使用您在@@ 上一步中创建的 Lambda 函数作为 EventBridge 规则的目标,创建按计划运行的规则。使用 cron 或 rate 表达式配置计划程序,使其定期运行。