Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración de una conexión Apache Airflow mediante un secreto AWS Secrets Manager
AWS Secrets Manager es un backend alternativo de Apache Airflow compatible en un entorno Amazon Managed Workflows para Apache Airflow. En este tema se muestra cómo almacenar de AWS Secrets Manager forma segura los secretos de las variables de Apache Airflow y una conexión de Apache Airflow en Amazon Managed Workflows for Apache Airflow.
nota
-
Se le cobrará por los secretos que cree. Para obtener información sobre precios, consulte Precios de AWS
. -
AWS Amazon MWAA también admite Systems Manager Parameter Store como backend de secretos. Para obtener más información, consulte la documentación de Amazon Provider Package
.
Contenido
Primer paso: otorgar permiso a Amazon MWAA para acceder a las claves secretas de Secrets Manager
El rol de ejecución de su entorno de Amazon MWAA necesita acceso de lectura a la clave secreta de AWS Secrets Manager. La siguiente política de IAM permite el acceso de lectura y escritura mediante la política administrada. AWS SecretsManagerReadWrite
Pasos para asociar la política a su rol de ejecución
-
Abra la página Entornos
en la consola de Amazon MWAA. -
Seleccione un entorno.
-
Elija su rol de ejecución en el panel Permisos.
-
Seleccione Asociar políticas.
-
Escriba
SecretsManagerReadWrite
en el campo de texto Filtrar políticas. -
Elija Asociar política.
Si no desea utilizar una política de permisos AWS gestionados, puede actualizar directamente el rol de ejecución de su entorno para permitir cualquier nivel de acceso a sus recursos de Secrets Manager. Por ejemplo, la siguiente declaración de política otorga acceso de lectura a todos los secretos que cree en una AWS región específica en Secrets Manager.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": "arn:aws:secretsmanager:us-west-2:012345678910:secret:*" }, { "Effect": "Allow", "Action": "secretsmanager:ListSecrets", "Resource": "*" } ] }
Segundo paso: crear el backend de Secrets Manager como opción de configuración de Apache Airflow
En la siguiente sección se describe cómo crear una opción de configuración de Apache Airflow en la consola de Amazon MWAA para el backend. AWS Secrets Manager Si utiliza un ajuste de configuración con el mismo nombre en airflow.cfg
, la configuración que cree en los siguientes pasos tendrá prioridad y anulará los ajustes de configuración.
-
Abra la página Entornos
en la consola de Amazon MWAA. -
Seleccione un entorno.
-
Elija Editar.
-
Elija Siguiente.
-
Seleccione Agregar configuración personalizada en el panel Opciones de configuración de Airflow. Agregue los siguientes pares clave-valor:
-
:secrets.backend
airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
-
:secrets.backend_kwargs
Esto configura Apache Airflow para que se puedan buscar cadenas de conexión y variables en rutas de{"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}
airflow/connections/*
yairflow/variables/*
.Puede utilizar un patrón de búsqueda
para reducir el número de llamadas a la API que Amazon MWAA realiza a Secrets Manager en su nombre. Si no especifica un patrón de búsqueda, Apache Airflow busca todas las conexiones y variables en el backend configurado. Al especificar un patrón, se reducen las posibles rutas que busca Apache Airflow. Así de reducen los costos relacionados con el uso de Secrets Manager con Amazon MWAA. Para especificar un patrón de búsqueda, especifique los parámetros
connections_lookup_pattern
yvariables_lookup_pattern
. Estos parámetros aceptan una RegEx cadena como entrada. Por ejemplo, para buscar secretos que comiencen portest
, introduzca lo siguiente parasecrets.backend_kwargs
:{ "connections_prefix": "airflow/connections", "connections_lookup_pattern": "^test", "variables_prefix" : "airflow/variables", "variables_lookup_pattern": "^test" }
nota
Para usar
connections_lookup_pattern
yvariables_lookup_pattern
, debe instalar la versión 7.3.0 o superior deapache-airflow-providers-amazon
. Para obtener más información sobre la actualización de los paquetes de proveedores a versiones más recientes, consulte Especificar paquetes de proveedores más nuevos.
-
-
Seleccione Guardar.
Paso tres: generar una cadena URI de AWS conexión de Apache Airflow
Para crear una cadena de conexión, utilice la tecla “tab” del teclado para aplicar los pares clave-valor en el objeto Conexiónextra
en la sesión del intérprete de comandos. En la siguiente sección, se explican los pasos para generar una cadena URI de conexión a Apache Airflow
Paso cuatro: añadir las variables en Secrets Manager
En la siguiente sección se describe cómo crear el secreto de una variable en Secrets Manager.
Pasos para crear el secreto
-
Abra la consola de AWS Secrets Manager
. -
Elija Almacenar un secreto nuevo.
-
Elija Otro tipo de secreto.
-
En el panel Especificar los pares clave-valor para almacenarlos en este secreto, elija Texto simple.
-
Añada el valor de la variable como Texto simple en el siguiente formato.
"
YOUR_VARIABLE_VALUE
"Por ejemplo, para especificar un número entero:
14
Por ejemplo, para especificar una cadena:
"mystring"
-
Para la clave de cifrado, elija una opción de AWS KMS clave de la lista desplegable.
-
Introduzca un nombre en el campo de texto para el nombre del secreto con el formato que se indica a continuación.
airflow/variables/
YOUR_VARIABLE_NAME
Por ejemplo:
airflow/variables/test-variable
-
Elija Next (Siguiente).
-
En la página Configurar secreto, en el panel Nombre y descripción del secreto, haga lo siguiente.
-
En Nombre del secreto, proporcione un nombre para el secreto.
-
(Opcional) En Descripción, escriba una descripción del nombre de su secreto.
Elija Next (Siguiente).
-
-
En Configurar la rotación. Opcional, deje las opciones predeterminadas y seleccione Siguiente.
-
Repita estos pasos en Secrets Manager para cualquier variable adicional que desee añadir.
-
En la página Revisar, revise los detalles de su secreto y, a continuación, elija Almacenar.
Paso cinco: añadir la conexión en Secrets Manager
En la siguiente sección se describe cómo crear el secreto para el URI de la cadena de conexión en Secrets Manager.
Pasos para crear el secreto
-
Abra la consola de AWS Secrets Manager
. -
Elija Almacenar un secreto nuevo.
-
Elija Otro tipo de secreto.
-
En el panel Especificar los pares clave-valor para almacenarlos en este secreto, elija Texto simple.
-
Añada la cadena URI de conexión como Texto simple con el formato que se indica a continuación.
YOUR_CONNECTION_URI_STRING
Por ejemplo:
mysql://288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com%2Fhome?role_arn=arn%3Aaws%3Aiam%3A%3A001122332255%3Arole%2Fservice-role%2FAmazonMWAA-MyAirflowEnvironment-iAaaaA®ion_name=us-east-1
aviso
Apache Airflow analiza cada uno de los valores de la cadena de conexión. No debe usar comillas simples ni dobles, pues al hacerlo se analizaría la conexión como una sola cadena.
-
Para la clave de cifrado, elija una opción de AWS KMS clave de la lista desplegable.
-
Introduzca un nombre en el campo de texto para el nombre del secreto con el formato que se indica a continuación.
airflow/connections/
YOUR_CONNECTION_NAME
Por ejemplo:
airflow/connections/myconn
-
Elija Next (Siguiente).
-
En la página Configurar secreto, en el panel Nombre y descripción del secreto, haga lo siguiente.
-
En Nombre del secreto, proporcione un nombre para el secreto.
-
(Opcional) En Descripción, escriba una descripción del nombre de su secreto.
Elija Next (Siguiente).
-
-
En Configurar la rotación. Opcional, deje las opciones predeterminadas y seleccione Siguiente.
-
Repita estos pasos en Secrets Manager para cualquier variable adicional que desee añadir.
-
En la página Revisar, revise los detalles de su secreto y, a continuación, elija Almacenar.
Código de muestra
-
Aprenda a usar la clave secreta para la conexión de Apache Airflow (
myconn
) en esta página usando el código de ejemplo que se encuentra en Uso de una clave secreta AWS Secrets Manager para una conexión de Apache Airflow. -
Aprenda a usar la clave secreta para la variable de Apache Airflow (
test-variable
) en esta página usando el código de ejemplo que se encuentra en Uso de una clave secreta AWS Secrets Manager para una variable de Apache Airflow.
Recursos
-
Para obtener más información sobre cómo configurar los secretos de Secrets Manager mediante la consola y el AWS CLI, consulte Crear un secreto en la Guía del AWS Secrets Manager usuario.
-
Utilice un script de Python para migrar un gran volumen de variables y conexiones de Apache Airflow a Secrets Manager en Mueva sus conexiones y variables de Apache Airflow a AWS Secrets Manager
.
Siguientes pasos
-
Aprenda a generar un token para acceder a la interfaz de usuario de Apache Airflow en Acceso a Apache Airflow.