Как динамически создать соединение Airflow S3 с помощью сервиса IAM - PullRequest
0 голосов
/ 22 января 2019

Приложение My Airflow работает в экземпляре AWS EC2, который также выполняет роль IAM. В настоящее время я создаю соединение Airflow S3, используя жестко закодированный доступ и секретный ключ. Но я хочу, чтобы мое приложение получило эти учетные данные AWS из этого экземпляра.

Как этого добиться?

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

На вопрос дан ответ, но для дальнейшего использования это можно сделать, не полагаясь на aws_default и просто используя переменные среды. Вот пример для записи журналов в s3 с использованием соединения AWS в форме IAM:

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"
0 голосов
/ 22 января 2019

У нас похожая настройка, наш экземпляр Airflow запускается внутри контейнеров, развернутых на машине EC2.Мы настроили политики для доступа к S3 в профиле экземпляра машины EC2.Вам не нужно собирать учетные данные на машине EC2, потому что у машины есть профиль экземпляра, который должен иметь все необходимые вам разрешения.Со стороны Airflow мы используем только соединение aws_default, в дополнительном параметре мы только устанавливаем регион по умолчанию, но никаких учетных данных нет.Вот подробная статья о профилях Intance: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

...