Amazon MWAA 的安全最佳實務 - Amazon Managed Workflows for Apache Airflow

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon MWAA 的安全最佳實務

Amazon MWAA 提供多種安全功能,供您在開發和實作自己的安全政策時加以考量。以下最佳實務為一般準則,並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求,因此請將其視為實用建議就好,而不要當作是指示。

  • 使用最低許可政策。僅將許可授予使用者執行任務所需的資源或動作。

  • 使用 AWS CloudTrail 來監控您帳戶中的使用者活動。

  • 確保 Amazon S3 儲存貯體政策和物件 ACLs 將許可授予相關聯 Amazon MWAA 環境的使用者,以將物件放入儲存貯體。這可確保具有將工作流程新增至儲存貯體之許可的使用者也具有在 Airflow 中執行工作流程的許可。

  • 使用與 Amazon MWAA 環境相關聯的 Amazon S3 儲存貯體。Amazon S3 儲存貯體可以是任何名稱。請勿將其他物件存放在儲存貯體中,或搭配其他 服務使用儲存貯體。

Apache Airflow 中的安全最佳實務

Apache Airflow 不是多租戶。雖然有存取控制措施可將某些功能限制為 Amazon MWAA 實作的特定使用者,但 DAG 建立者確實能夠撰寫 DAGs,以變更 Apache Airflow 使用者權限並與基礎中繼資料庫互動。

我們建議在 Amazon MWAA 上使用 Apache Airflow 時執行下列步驟,以確保您環境的中繼資料庫和 DAGs是安全的。

  • 假設 Amazon MWAA 執行角色Apache Airflow 連線可存取的任何內容,也可以讓可寫入環境的使用者存取具有 DAG 寫入存取權的個別團隊,或能夠將檔案新增至 Amazon S3 /dags 資料夾。

  • 請勿直接提供 Amazon S3 DAGs 資料夾存取。反之,請使用 CI/CD 工具將 DAGs 寫入 Amazon S3,並執行驗證步驟,確保 DAG 程式碼符合團隊的安全準則。

  • 防止使用者存取您環境的 Amazon S3 儲存貯體。請改用 DAG 工廠, DAGs 以 YAML、JSON 或其他存放在 Amazon MWAA Amazon S3 儲存貯體中不同位置的定義檔案為基礎,產生 DAGs。

  • Secrets Manager 中存放秘密。雖然這不會阻止可以寫入 DAGs的使用者讀取秘密,但會阻止他們修改您環境使用的秘密。

偵測 Apache Airflow 使用者權限的變更

您可以使用 CloudWatch Logs Insights 來偵測 DAGs 變更 Apache Airflow 使用者權限的發生情況。若要這樣做,您可以在其中一個 DAGs變更 Apache Airflow 使用者權限時,使用 EventBridge 排程規則、Lambda 函數和 CloudWatch Logs Insights 來傳送通知至 CloudWatch 指標。

先決條件

若要完成下列步驟,您將需要下列項目:

設定 Apache Airflow 使用者權限變更的通知
  1. 建立 Lambda 函數,針對五個 Amazon MWAA Scheduler環境日誌群組 (DAGProcessing、、TaskWebServer、 和 ) 執行下列 CloudWatch Logs Insights 查詢字串Worker

    fields @log, @timestamp, @message | filter @message like "add-role" | stats count() by @log
  2. 建立依排程執行的 EventBridge 規則,並使用您在上一個步驟中建立的 Lambda 函數做為規則的目標。使用 Cron 或 Rate 表達式設定排程,以定期執行。