Имперсонация в Yandex Managed Service for Apache Airflow™
Имперсонацией в Managed Service for Apache Airflow™ называется выполнение кластером Apache Airflow™ действий с пользовательскими ресурсами от имени сервисного аккаунта пользователя.
По умолчанию кластер Apache Airflow™ не имеет прав доступа к пользовательским ресурсам. Чтобы обеспечить доступ к таким ресурсам, создайте сервисный аккаунт с нужными ролями и привяжите его к кластеру Apache Airflow™ при создании или изменении кластера. После этого из кода DAG-файлов можно будет аутентифицироваться от имени сервисного аккаунта.
Благодаря имперсонации кластер Apache Airflow™ поддерживает интеграцию с другими сервисами Yandex Cloud через Yandex Cloud Python SDK
Сервис Managed Service for Apache Airflow™ также поддерживает интеграцию с Yandex Lockbox как с хранилищем секретов Apache Airflow™.
Интеграция с Yandex Cloud через Python SDK
Yandex Cloud Python SDKyandexcloud.SDK()
без указания параметров аутентификации. DAG-файл будет аутентифицироваться с помощью IAM-токена сервисного аккаунта, который привязан к кластеру.
Пример интеграции см. в разделе Отправка запросов к API Yandex Cloud через Yandex Cloud Python SDK.
Интеграция с Yandex Cloud через Airflow Provider
В кластерах Managed Service for Apache Airflow™ с включенной имперсонацией автоматически настроено соединение yandexcloud_default
, которое используется всеми операторами в Airflow Yandex Provider по умолчанию. Чтобы использовать его, создайте DAG-файл без указания параметра yandex_conn_id
. Оператор будет аутентифицироваться с помощью IAM-токена сервисного аккаунта, который привязан к кластеру.
Пример интеграции см. в разделе Автоматизация задач Yandex Query с помощью Yandex Managed Service for Apache Airflow™.
Интеграция с Yandex Lockbox
Yandex Lockbox — это сервис для централизованного хранения секретов. В Yandex Lockbox можно размещать данные для использования в DAG-файлах, например конфигурационные данные, переменные и параметры подключений Apache Airflow™.
По умолчанию Apache Airflow™ хранит чувствительные данные в хранилище метаданных. В этом случае управлять секретами для каждого кластера Apache Airflow™ приходится вручную, через UI или API. Чтобы автоматизировать управление секретами, храните их в Yandex Lockbox. Подробнее см. в документации Apache Airflow™
Чтобы использовать возможности Yandex Lockbox в кластере Apache Airflow™, создайте секрет с нужными данными и выдайте доступ к нему сервисному аккаунту, который привязан к кластеру. После этого данные из секрета можно будет использовать в DAG-файлах кластера.
Пример интеграции см. в разделе Хранение подключений и переменных Apache Airflow™ в Yandex Lockbox.