使用机密在 MWAA 中设置电子邮件

Python and Bash

在 MWAA 中设置安全电子邮件

管理 Amazon Managed Workflows for Apache Airflow (MWAA) 通常涉及发送自动电子邮件,这可以通过 SMTP 配置进行设置。通常,SMTP 设置直接放置在配置文件中或通过环境的设置页面进行调整。但是,为了增强安全性和可管理性,将这些敏感详细信息存储在 AWS Secret Manager 中是更好的方法。

使用 Secret Manager 不仅可以保护连接详细信息免遭未经授权的访问,还可以简化不同环境中的配置过程,而无需对敏感信息进行硬编码。此设置可确保电子邮件工作流程安全高效,允许用户在其 MWAA 实例中动态且安全地管理凭据。

将 AWS Secrets Manager 与 MWAA 集成以发送电子邮件通知

使用 Boto3 和 Airflow 的 Python 脚本

import boto3
from airflow.models import Variable
from airflow.utils.email import send_email_smtp
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime
def get_secret(secret_name):
    client = boto3.client('secretsmanager')
    response = client.get_secret_value(SecretId=secret_name)
    return response['SecretString']
def send_email():
    email_config = json.loads(get_secret('my_smtp_secret'))
    send_email_smtp('example@example.com', 'Test Email', 'This is a test email from MWAA.', smtp_mail_from=email_config['username'])
default_args = {'owner': 'airflow', 'start_date': datetime(2021, 1, 1)}
dag = DAG('send_email_using_secret', default_args=default_args, schedule_interval='@daily')
send_email_task = PythonOperator(task_id='send_email_task', python_callable=send_email, dag=dag)

使用 AWS CLI 在 MWAA 中配置环境变量

用于 AWS CLI 操作的 Bash 脚本

#!/bin/bash
AWS_SECRET_NAME="my_smtp_secret"
AWS_REGION="us-east-1"
# Retrieve SMTP configuration from AWS Secrets Manager
SMTP_SECRET=$(aws secretsmanager get-secret-value --secret-id $AWS_SECRET_NAME --region $AWS_REGION --query SecretString --output text)
# Parse and export SMTP settings as environment variables
export SMTP_HOST=$(echo $SMTP_SECRET | jq -r .host)
export SMTP_PORT=$(echo $SMTP_SECRET | jq -r .port)
export SMTP_USER=$(echo $SMTP_SECRET | jq -r .username)
export SMTP_PASSWORD=$(echo $SMTP_SECRET | jq -r .password)
# Example usage in a script that sends an email
python3 send_email.py

使用 AWS Secrets Manager 增强 MWAA 安全性

在处理 Amazon Managed Workflows for Apache Airflow (MWAA) 中的工作流自动化时,敏感数据(例如电子邮件通知的 SMTP 凭证)的安全性至关重要。 AWS Secrets Manager 通过安全存储和管理这些凭证提供了强大的解决方案。将 Secrets Manager 与 MWAA 集成不仅有助于隐藏工作流脚本中的敏感详细信息,还有助于遵守数据保护法规。此方法确保可以在不修改工作流脚本的情况下轮换和管理凭证,从而降低安全漏洞的风险。

此外,使用 Secrets Manager 允许开发人员实施细粒度的访问控制和审核功能。可以根据 IAM 角色和策略限制对密钥的访问,并且可以使用 AWS CloudTrail 跟踪密钥的使用情况。这种集成不仅简化了复杂环境中的凭证管理,而且还提供了有关何时以及由谁访问凭证的清晰审计跟踪,从而增强了企业的整体安全状况。

  1. 什么是 AWS Secrets Manager?
  2. AWS Secrets Manager 是一项服务,可帮助您保护对应用程序、服务和 IT 资源的访问,而无需运营自己的基础设施的前期投资和持续维护成本。
  3. 集成 Secrets Manager 如何增强 MWAA 安全性?
  4. 它通过加密静态信息来保护敏感数据(例如 SMTP 凭证),并通过 IAM 策略实现受控访问,从而增强数据保护和合规性。
  5. Secrets Manager 可以处理自动凭证轮换吗?
  6. 是的,AWS Secrets Manager 支持自动凭证轮换,这有助于通过定期更改访问密钥而无需人工干预来维护安全性。
  7. 当凭证发生变化时是否需要修改工作流程脚本?
  8. 不需要,使用 Secrets Manager 允许您在不修改工作流脚本的情况下管理凭证,因为可以在运行时动态获取凭证。
  9. 如何审核机密的使用情况?
  10. AWS CloudTrail 可用于记录和监控对 Secrets Manager 密钥的所有访问,从而对密钥使用情况进行详细的审计跟踪。

总之,将 AWS Secrets Manager 与 Amazon MWAA 集成来处理 SMTP 设置,为管理工作流程中电子邮件通信所需的敏感信息提供了一种安全高效的方法。该解决方案不仅可以保护数据免遭未经授权的访问,还可以简化管理任务并增强对安全策略的合规性。通过集中存储敏感信息,组织可以改善其安全状况并降低与硬编码凭据相关的操作风险。