本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon MWAA 的安全最佳實務
Amazon MWAA 提供多種安全功能,供您在開發和實作自己的安全政策時加以考量。以下最佳實務為一般準則,並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求,因此請將其視為實用建議就好,而不要當作是指示。
-
使用最低許可政策。僅將許可授予使用者執行任務所需的資源或動作。
-
使用 AWS CloudTrail 來監控您帳戶中的使用者活動。
-
確保 Amazon S3 儲存貯體政策和物件 ACLs 將許可授予相關聯 Amazon MWAA 環境的使用者,以將物件放入儲存貯體。這可確保具有將工作流程新增至儲存貯體之許可的使用者也具有在 Airflow 中執行工作流程的許可。
-
使用與 Amazon MWAA 環境相關聯的 Amazon S3 儲存貯體。Amazon S3 儲存貯體可以是任何名稱。請勿將其他物件存放在儲存貯體中,或搭配其他 服務使用儲存貯體。
Apache Airflow 中的安全最佳實務
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
INFO
日誌類型的 Amazon MWAA 環境。如需詳細資訊,請參閱在 Amazon CloudWatch 中檢視 Airflow 日誌。
設定 Apache Airflow 使用者權限變更的通知
-
建立 Lambda 函數,針對五個 Amazon MWAA
Scheduler
環境日誌群組 (DAGProcessing
、、Task
WebServer
、 和 ) 執行下列 CloudWatch Logs Insights 查詢字串Worker
。fields @log, @timestamp, @message | filter @message like "add-role" | stats count() by @log
-
建立依排程執行的 EventBridge 規則,並使用您在上一個步驟中建立的 Lambda 函數做為規則的目標。使用 Cron 或 Rate 表達式設定排程,以定期執行。