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