我的Airflow应用程序正在具有IAM角色的AWS EC2实例中运行。目前,我正在使用硬编码访问和密钥创建Airflow S3连接。但是我希望我的应用程序从此实例本身中获取此AWS凭证。
如何实现?
答案 0 :(得分:2)
我们有一个类似的设置,我们的Airflow实例在EC2机器内部署的容器中运行。我们设置了策略以访问EC2计算机实例配置文件上的S3。您无需在EC2计算机中获取凭据,因为该计算机具有实例配置文件,该配置文件应具有所需的所有权限。从Airflow方面,我们仅使用aws_default连接,在extra参数中,我们仅设置默认区域,但没有任何凭据。 以下是有关Intance个人资料的详细文章:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html
答案 1 :(得分:0)
该问题已得到解答,但为将来参考,可以不依赖aws_default
而是仅通过环境变量来完成此问题。这是一个使用AWS连接从IAM中受益的将日志写入s3的示例:
AIRFLOW_CONN_AWS_LOG="aws://"
AIRFLOW__CORE__REMOTE_LOG_CONN_ID=aws_log
AIRFLOW__CORE__REMOTE_LOGGING=true
AIRFLOW__CORE__REMOTE_BASE_LOG_FOLDER="s3://path to bucket"