

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.

# Administración de las conexiones a Apache Airflow
<a name="manage-connections"></a>

En esta sección, se describen las diferentes formas de configurar una conexión de Apache Airflow para un entorno en Amazon Managed Workflows para Apache Airflow.

**Topics**
+ [Descripción general de las variables y conexiones de Apache Airflow](#manage-connections-t-overview)
+ [Paquetes de proveedores de Apache Airflow instalados en entornos Amazon MWAA](connections-packages.md)
+ [Información general sobre los tipos de conexión](manage-connection-types.md)
+ [Configuración de una conexión de Apache Airflow mediante un secreto AWS Secrets Manager](connections-secrets-manager.md)

## Descripción general de las variables y conexiones de Apache Airflow
<a name="manage-connections-t-overview"></a>

En ciertos casos, es posible que desee especificar conexiones o variables adicionales para un entorno, como un perfil de AWS, o añadir su rol de ejecución en un objeto de conexión del almacén de metadatos de Apache Airflow y, a continuación, consultar la conexión desde dentro de un DAG.
+ **Apache Airflow autoadministrado**. En una instalación autoadministrada de Apache Airflow, debe configurar las [opciones de configuración de Apache Airflow en `airflow.cfg`](https://airflow.apache.org/docs/apache-airflow/stable/howto/set-config.html).

  ```
  [secrets]
  backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
  backend_kwargs = {"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}
  ```
+ **Apache Airflow en Amazon MWAA**. En Amazon MWAA, debe añadir estos ajustes de configuración como [opciones de configuración de Apache Airflow](configuring-env-variables.md) en la consola de Amazon MWAA. Las opciones de configuración de Apache Airflow se escriben como variables de entorno para su entorno y anulan el resto de las configuraciones existentes para el mismo ajuste.

# Paquetes de proveedores de Apache Airflow instalados en entornos Amazon MWAA
<a name="connections-packages"></a>

En esta página, se enumeran los paquetes de proveedores de Apache Airflow que Amazon MWAA instala en todos los entornos compatibles de Apache Airflow. Para obtener más información sobre estos paquetes, consulte la [referencia de Apache Airflow para paquetes extra](https://airflow.apache.org/docs/apache-airflow/stable/extra-packages-ref.html).

**nota**  
Para garantizar que otras instalaciones de bibliotecas de Python no anulen la compatibilidad con el CloudWatch registro, Amazon MWAA instala la versión 2.0.1 de [Watchtower](https://pypi.org/project/watchtower/2.0.1/) después de ejecutarla. `pip3 install -r requirements.txt`

**Topics**
+ [Archivo de restricciones](#connections-packages-constraints)
+ [Paquetes de proveedores específicos para cada versión](#connections-packages-table)

## Archivo de restricciones
<a name="connections-packages-constraints"></a>

A partir de la versión 2.7.2 de Apache Airflow, su archivo de requisitos debe incluir una instrucción `--constraint`. Si no proporciona ninguna restricción, Amazon MWAA especificará una para garantizar que los paquetes que figuran en sus requisitos sean compatibles con la versión de Apache Airflow que se está usando.

Los archivos de restricciones de Apache Airflow especifican las versiones de proveedores disponibles en el momento de la publicación de Apache Airflow. En muchos casos, de todos modos, los proveedores más recientes son compatibles con esa versión de Apache Airflow. Como debe usar restricciones, para especificar una versión más reciente de un paquete de proveedores, puede modificar el archivo de restricciones para una versión de proveedor específica:

1. Descargue el archivo de restricciones específicas de la versión desde GitHub, por ejemplo, [https://raw.githubusercontent.com/apache/airflow/constraints-2.7.2/constraints-3.11.txt](https://raw.githubusercontent.com/apache/airflow/constraints-2.7.2/constraints-3.11.txt) (sustituya «2.7.2» por la versión que desee usar).

1. Guarde el archivo de restricciones modificado en la carpeta “Amazon S3 DAGs” (DAG de Amazon S3) de su entorno de Amazon MWAA como `constraints-3.11-updated.txt`, por ejemplo.

1. Especifique sus requisitos como se muestra a continuación.

   ```
   --constraint "/usr/local/airflow/dags/constraints-3.11-updated.txt"
   apache-airflow-providers-amazon==version-number
   ```
**nota**  
Si utiliza un servidor web privado, le recomendamos que [empaquete las bibliotecas necesarias como archivos WHL](best-practices-dependencies.md#best-practices-dependencies-python-wheels) utilizando. [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images)

## Paquetes de proveedores específicos para cada versión
<a name="connections-packages-table"></a>

La instalación de paquetes de proveedores le permite ver un tipo de conexión en la UI de Apache Airflow. También significa que no necesita especificar estos paquetes como una dependencia de Python en su archivo `requirements.txt`. En esta página, se enumeran los paquetes de proveedores de Apache Airflow que Amazon MWAA instala en todos los entornos compatibles de Apache Airflow.

**nota**  
Para Apache Airflow v2 y versiones posteriores, Amazon MWAA instala la [versión 2.0.1 de Watchtower](https://pypi.org/project/watchtower/2.0.1/) después de ejecutarla`pip3 install -r requirements.txt`, para garantizar que otras instalaciones de bibliotecas de Python no anulen la compatibilidad con CloudWatch el registro.

Puede especificar la última versión compatible de `apache-airflow-providers-amazon` para actualizar este proveedor.

**Versiones de Apache Airflow compatibles:**

------
#### [ v3.0.6 ]


| Tipo de conexión | Package | 
| --- | --- | 
|  AWS Conexión  |  [apache-airflow-providers-amazon[aiobotocore] ==9.9.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.9.0/index.html)  | 
|  Conexión Postgres  |  [apache-airflow-providers-postgres==6.2.1](https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.2.1/index.html)  | 
|  Conexión FTP  |  [apache-airflow-providers-ftp==3.13.1](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.13.1/index.html)  | 
|  Conexión Fab  |  [apache-airflow-providers-fab==2.3.0](https://airflow.apache.org/docs/apache-airflow-providers-fab/2.3.0/index.html)  | 
|  Conexión Celery  |  [apache-airflow-providers-celery==3.12.1](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.12.1/index.html)  | 
|  Conexión HTTP  |  [apache-airflow-providers-http==5.3.2](https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.2/index.html)  | 
|  Conexión IMAP  |  [apache-airflow-providers-imap==3.9.1](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.9.1/index.html)  | 
|  SQL común  |  [apache-airflow-providers-common-sql==1.27.3](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.3/index.html)  | 
|  SQLite Conexión  |  [apache-airflow-providers-sqlite==4.1.1](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/4.1.1/index.html)  | 

------
#### [ v2.11.0 ]


| Tipo de conexión | Package | 
| --- | --- | 
|  AWS Conexión  |  [apache-airflow-providers-amazon[aiobotocore] ==9.8.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.8.0/index.html)  | 
|  Conexión Postgres  |  [apache-airflow-providers-postgres==6.2.0](https://airflow.apache.org/docs/apache-airflow-providers-postgres/6.2.0/index.html)  | 
|  Conexión FTP  |  [apache-airflow-providers-ftp==3.13.0](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.13.0/index.html)  | 
|  Conexión Fab  |  [apache-airflow-providers-fab==1.5.3](https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.3/index.html)  | 
|  Conexión Celery  |  [apache-airflow-providers-celery==3.11.0](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.11.0/index.html)  | 
|  Conexión HTTP  |  [apache-airflow-providers-http==5.3.0](https://airflow.apache.org/docs/apache-airflow-providers-http/5.3.0/index.html)  | 
|  Conexión IMAP  |  [apache-airflow-providers-imap==3.9.0](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.9.0/index.html)  | 
|  SQL común  |  [apache-airflow-providers-common-sql==1.27.1](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.27.1/index.html)  | 
|  SQLite Conexión  |  [apache-airflow-providers-sqlite==4.1.0](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/4.1.0/index.html)  | 
|  Conexión SMTP  |  [apache-airflow-providers-smtp==2.1.0](https://airflow.apache.org/docs/apache-airflow-providers-smtp/2.1.0/index.html)  | 

------
#### [ v2.10.3 ]


| Tipo de conexión | Package | 
| --- | --- | 
|  AWS Conexión  |  [apache-airflow-providers-amazon[aiobotocore] ==9.0.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/9.0.0/index.html)  | 
|  Conexión Postgres  |  [apache-airflow-providers-postgres==5.13.1](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.13.1/index.html)  | 
|  Conexión FTP  |  [apache-airflow-providers-ftp==3.1.1](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.11.1/index.html)  | 
|  Conexión Fab  |  [apache-airflow-providers-fab==1.5.0](https://airflow.apache.org/docs/apache-airflow-providers-fab/1.5.0/index.html)  | 
|  Conexión Celery  |  [apache-airflow-providers-celery==3.8.3](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.8.3/index.html)  | 
|  Conexión HTTP  |  [apache-airflow-providers-http==4.13.2](https://airflow.apache.org/docs/apache-airflow-providers-http/4.13.2/index.html)  | 
|  Conexión IMAP  |  [apache-airflow-providers-imap==3.7.0](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.7.0/index.html)  | 
|  SQL común  |  [apache-airflow-providers-common-sql==1.19.0](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.19.0/index.html)  | 
|  SQLite Conexión  |  [apache-airflow-providers-sqlite==3.9.0](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.9.0/index.html)  | 
|  Conexión SMTP  |  [apache-airflow-providers-smtp==1.8.0](https://airflow.apache.org/docs/apache-airflow-providers-smtp/1.8.0/index.html)  | 

------
#### [ v2.10.1 ]


| Tipo de conexión | Package | 
| --- | --- | 
|  AWS Conexión  |  [apache-airflow-providers-amazon[aiobotocore] ==8.28.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/2.28.0/index.html)  | 
|  Conexión Postgres  |  [apache-airflow-providers-postgres==5.12.0](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.12.0/index.html)  | 
|  Conexión FTP  |  [apache-airflow-providers-ftp==3.11.0](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.11.0/index.html)  | 
|  Conexión Fab  |  [apache-airflow-providers-fab==1.3.0](https://airflow.apache.org/docs/apache-airflow-providers-fab/1.3.0/index.html)  | 
|  Conexión Celery  |  [apache-airflow-providers-celery==3.8.1](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.8.1/index.html)  | 
|  Conexión HTTP  |  [apache-airflow-providers-http==4.13.0](https://airflow.apache.org/docs/apache-airflow-providers-http/4.13.0/index.html)  | 
|  Conexión IMAP  |  [apache-airflow-providers-imap==3.7.0](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.7.0/index.html)  | 
|  SQL común  |  [apache-airflow-providers-common-sql==1.16.0](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.16.0/index.html)  | 
|  SQLite Conexión  |  [apache-airflow-providers-sqlite==3.9.0](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.9.0/index.html)  | 
|  Conexión SMTP  |  [apache-airflow-providers-smtp==1.8.0](https://airflow.apache.org/docs/apache-airflow-providers-smtp/1.8.0/index.html)  | 

------
#### [ v2.9.2 ]


| Tipo de conexión | Package | 
| --- | --- | 
|  AWS Conexión  |  [apache-airflow-providers-amazon[aiobotocore] ==8.24.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.24.0/index.html)  | 
|  Conexión Postgres  |  [apache-airflow-providers-postgres==5.1.1](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.11.1/index.html)  | 
|  Conexión FTP  |  [apache-airflow-providers-ftp==3.9.1](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.9.1/index.html)  | 
|  Conexión Fab  |  [apache-airflow-providers-fab==1.1.1](https://airflow.apache.org/docs/apache-airflow-providers-fab/1.1.1/index.html)  | 
|  Conexión Celery  |  [apache-airflow-providers-celery==3.7.2](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.7.2/index.html)  | 
|  Conexión HTTP  |  [apache-airflow-providers-http==4.1.1](https://airflow.apache.org/docs/apache-airflow-providers-http/4.11.1/index.html)  | 
|  Conexión IMAP  |  [apache-airflow-providers-imap==3.6.1](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.6.1/index.html)  | 
|  SQL común  |  [apache-airflow-providers-common-sql==1.14.0](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.14.0/index.html)  | 
|  SQLite Conexión  |  [apache-airflow-providers-sqlite==3.8.1](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.8.1/index.html)  | 
|  Conexión SMTP  |  [apache-airflow-providers-smtp==1.7.1](https://airflow.apache.org/docs/apache-airflow-providers-smtp/1.7.1/index.html)  | 

------
#### [ v2.8.1 ]


| Tipo de conexión | Package | 
| --- | --- | 
|  AWS Conexión  |  [apache-airflow-providers-amazon[aiobotocore] ==8.16.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.16.0/index.html)  | 
|  Conexión Postgres  |  [apache-airflow-providers-postgres==5.10.0](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.10.0/index.html)  | 
|  Conexión FTP  |  [apache-airflow-providers-ftp==3.7.0](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.7.0/index.html)  | 
|  Conexión Celery  |  [apache-airflow-providers-celery==3.5.1](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.5.1/index.html)  | 
|  Conexión HTTP  |  [apache-airflow-providers-http==4.8.0](https://airflow.apache.org/docs/apache-airflow-providers-http/4.8.0/index.html)  | 
|  Conexión IMAP  |  [apache-airflow-providers-imap==3.5.0](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.5.0/index.html)  | 
|  SQL común  |  [apache-airflow-providers-common-sql==1.10.0](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.10.0/index.html)  | 
|  SQLite Conexión  |  [apache-airflow-providers-sqlite==3.7.0](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.7.0/index.html)  | 

------
#### [ v2.7.2 ]


| Tipo de conexión | Package | 
| --- | --- | 
|  AWS Conexión  |  [apache-airflow-providers-amazon[aiobotocore] ==8.7.1](https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.7.1/index.html)  | 
|  Conexión Postgres  |  [apache-airflow-providers-postgres==5.6.1](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.6.1/index.html)  | 
|  Conexión FTP  |  [apache-airflow-providers-ftp==3.5.2](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.5.2/index.html)  | 
|  Conexión Celery  |  [apache-airflow-providers-celery==3.3.4](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.3.4/index.html)  | 
|  Conexión HTTP  |  [apache-airflow-providers-http==4.5.2](https://airflow.apache.org/docs/apache-airflow-providers-http/4.5.2/index.html)  | 
|  Conexión IMAP  |  [apache-airflow-providers-imap==3.3.2](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.3.2/index.html)  | 
|  SQL común  |  [apache-airflow-providers-common-sql==1.7.2](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.7.2/index.html)  | 
|  SQLite Conexión  |  [apache-airflow-providers-sqlite==3.4.3](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.4.3/index.html)  | 

------
#### [ v2.6.3 ]


| Tipo de conexión | Package | 
| --- | --- | 
|  AWS Conexión  |  [apache-airflow-providers-amazon[aiobotocore] ==8.2.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/8.2.0/index.html)  | 
|  Conexión Postgres  |  [apache-airflow-providers-postgres==5.5.1](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.5.1/index.html)  | 
|  Conexión FTP  |  [apache-airflow-providers-ftp==3.4.2](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.4.2/index.html)  | 
|  Conexión Celery  |  [apache-airflow-providers-celery==3.2.1](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.2.1/index.html)  | 
|  Conexión HTTP  |  [apache-airflow-providers-http==4.4.2](https://airflow.apache.org/docs/apache-airflow-providers-http/4.4.2/index.html)  | 
|  Conexión IMAP  |  [apache-airflow-providers-imap==3.2.2](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.2.2/index.html)  | 
|  SQL común  |  [apache-airflow-providers-common-sql==1.5.2](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.5.2/index.html)  | 
|  SQLite Conexión  |  [apache-airflow-providers-sqlite==3.4.2](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.4.2/index.html)  | 

------
#### [ v2.5.1 ]


| Tipo de conexión | Package | 
| --- | --- | 
|  AWS Conexión  |  [apache-airflow-providers-amazon==7.1.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/7.1.0/index.html)  | 
|  Conexión Postgres  |  [apache-airflow-providers-postgres==5.4.0](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.4.0/index.html)  | 
|  Conexión FTP  |  [apache-airflow-providers-ftp==3.3.0](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.3.0/index.html)  | 
|  Conexión Celery  |  [apache-airflow-providers-celery==3.1.0](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.1.0/index.html)  | 
|  Conexión HTTP  |  [apache-airflow-providers-http==4.1.1](https://airflow.apache.org/docs/apache-airflow-providers-http/4.4.1/index.html)  | 
|  Conexión IMAP  |  [apache-airflow-providers-imap==3.1.1](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.1.1/index.html)  | 
|  SQL común  |  [apache-airflow-providers-common-sql==1.3.3](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.3.3/index.html)  | 
|  SQLite Conexión  |  [apache-airflow-providers-sqlite==3.3.1](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.3.1/index.html)  | 

------
#### [ v2.4.3 ]


| Tipo de conexión | Package | 
| --- | --- | 
|  AWS Conexión  |  [apache-airflow-providers-amazon==6.0.0](https://airflow.apache.org/docs/apache-airflow-providers-amazon/6.0.0/index.html)  | 
|  Conexión Postgres  |  [apache-airflow-providers-postgres==5.2.2](https://airflow.apache.org/docs/apache-airflow-providers-postgres/5.2.2/index.html)  | 
|  Conexión FTP  |  [apache-airflow-providers-ftp==3.1.0](https://airflow.apache.org/docs/apache-airflow-providers-ftp/3.1.0/index.html)  | 
|  Conexión Celery  |  [apache-airflow-providers-celery==3.0.0](https://airflow.apache.org/docs/apache-airflow-providers-celery/3.0.0/index.html)  | 
|  Conexión HTTP  |  [apache-airflow-providers-http==4.0.0](https://airflow.apache.org/docs/apache-airflow-providers-http/4.0.0/index.html)  | 
|  Conexión IMAP  |  [apache-airflow-providers-imap==3.0.0](https://airflow.apache.org/docs/apache-airflow-providers-imap/3.0.0/index.html)  | 
|  SQL común  |  [apache-airflow-providers-common-sql==1.2.0](https://airflow.apache.org/docs/apache-airflow-providers-common-sql/1.2.0/index.html)  | 
|  SQLite Conexión  |  [apache-airflow-providers-sqlite==3.2.1](https://airflow.apache.org/docs/apache-airflow-providers-sqlite/3.2.1/index.html)  | 

------

# Información general sobre los tipos de conexión
<a name="manage-connection-types"></a>

Apache Airflow almacena las conexiones como un string de conexión de URI. Proporciona una plantilla de conexiones en la interfaz de usuario de Apache Airflow para generar el string de conexión de URI, independientemente del tipo de conexión. Si no hay ninguna plantilla de conexión disponible en la interfaz de usuario de Apache Airflow, se puede utilizar una plantilla de conexión alternativa para generar este string de conexión de URI, por ejemplo, mediante la plantilla de conexión HTTP. La principal diferencia es el prefijo URI, por ejemplo, `my-conn-type://`, que los proveedores de Apache Airflow suelen ignorar en una conexión. En esta página, se describe cómo utilizar las plantillas de conexión de la interfaz de usuario de Apache Airflow de manera intercambiable para distintos tipos de conexión.

**aviso**  
No sobrescriba la conexión [https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/connections/aws.html](https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/connections/aws.html) en Amazon MWAA. Amazon MWAA utiliza esta conexión para llevar a cabo diversas tareas críticas, como la recopilación de registros de tareas. Sobrescribir esta conexión puede provocar que se pierdan datos y se interrumpa la disponibilidad del entorno.

**Topics**
+ [Ejemplo de string de conexión de URI](#manage-connection-types-string-example)
+ [Ejemplo de plantilla de conexión](#manage-connection-types-template-example)
+ [Ejemplo de uso de una plantilla de conexión HTTP para una conexión Jdbc](#manage-connection-types-example)

## Ejemplo de string de conexión de URI
<a name="manage-connection-types-string-example"></a>

En el siguiente ejemplo, se muestra un string de conexión de URI para el tipo de conexión MySQL.

```
'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&region_name=us-east-1'
```

## Ejemplo de plantilla de conexión
<a name="manage-connection-types-template-example"></a>

En el siguiente ejemplo, se muestra la plantilla de conexión HTTP en la UI de Apache Airflow.

------
#### [ Apache Airflow v3 ]

![\[En esta imagen, se muestra el tipo de conexión HTTP en la UI de Apache Airflow.\]](http://docs.aws.amazon.com/es_es/mwaa/latest/userguide/images/airflow-connection-v3.0.6.png)


------
#### [ Apache Airflow v2 ]

![\[En esta imagen, se muestra el tipo de conexión HTTP en la UI de Apache Airflow.\]](http://docs.aws.amazon.com/es_es/mwaa/latest/userguide/images/airflow-connection-v2.0.2.png)


------

## Ejemplo de uso de una plantilla de conexión HTTP para una conexión Jdbc
<a name="manage-connection-types-example"></a>

En el siguiente ejemplo, se muestra cómo usar la plantilla de conexión **HTTP** para una conexión *Jdbc* en la UI de Apache Airflow.

------
#### [ Apache Airflow v3 ]

En el siguiente ejemplo, se muestra el string de conexión de URI generada por Apache Airflow para el ejemplo de esta sección.

```
http://myconnectionurl/some/path&login=mylogin&extra__jdbc__dry__path=usr/local/airflow/dags/classpath/redshif-jdbc42-2.0.0.1.jar&extra__jdbc__dry__clsname=redshift-jdbc42-2.0.0.1
```

En el siguiente ejemplo, se muestra cómo usar la plantilla de conexión HTTP para una conexión *Jdbc* para Apache Airflow v3 en la UI de Apache Airflow.

![\[En esta imagen, se muestra el tipo de conexión HTTP para una conexión Jdbc en la UI de Apache Airflow.\]](http://docs.aws.amazon.com/es_es/mwaa/latest/userguide/images/airflow-connection-jdbc-v3.0.6.png)


------
#### [ Apache Airflow v2 ]

En el siguiente ejemplo, se muestra el string de conexión de URI generada por Apache Airflow para el ejemplo de esta sección.

```
http://myconnectionurl/some/path&login=mylogin&extra__jdbc__dry__path=usr/local/airflow/dags/classpath/redshif-jdbc42-2.0.0.1.jar&extra__jdbc__dry__clsname=redshift-jdbc42-2.0.0.1
```

En el siguiente ejemplo, se muestra cómo usar la plantilla de conexión HTTP para una conexión *Jdbc* para Apache Airflow v2 en la UI de Apache Airflow.

![\[En esta imagen, se muestra el tipo de conexión HTTP para una conexión Jdbc en la UI de Apache Airflow.\]](http://docs.aws.amazon.com/es_es/mwaa/latest/userguide/images/airflow-connection-jdbc-v2.0.2.png)


------

# Configuración de una conexión de Apache Airflow mediante un secreto AWS Secrets Manager
<a name="connections-secrets-manager"></a>

AWS Secrets Manager es un backend alternativo de Apache Airflow compatible en un entorno Amazon Managed Workflows para Apache Airflow. En este tema se explica 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**  
Los secretos creados tendrán un costo. Para obtener información sobre el precio de Secrets Manager, consulte [precios de AWS](https://aws.amazon.com/secrets-manager/pricing/).
AWS Amazon MWAA también admite [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store) como backend de secretos. Para obtener más información, consulte la [documentación de Amazon Provider Package](https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/secrets-backends/aws-ssm-parameter-store.html).

**Contents**
+ [Primer paso: otorgar permiso a Amazon MWAA para acceder a las claves secretas de Secrets Manager](#connections-sm-policy)
+ [Segundo paso: crear el backend de Secrets Manager como opción de configuración de Apache Airflow](#connections-sm-aa-configuration)
+ [Paso tres: generar una cadena URI de AWS conexión de Apache Airflow](#connections-sm-aa-uri)
+ [Paso cuatro: añadir las variables en Secrets Manager](#connections-sm-createsecret-variables)
+ [Paso cinco: añadir la conexión en Secrets Manager](#connections-sm-createsecret-connection)
+ [Código de muestra](#connections-sm-samples)
+ [Recursos](#connections-sm-blogs)
+ [Siguientes pasos](#connections-sm-next-up)

## Primer paso: otorgar permiso a Amazon MWAA para acceder a las claves secretas de Secrets Manager
<a name="connections-sm-policy"></a>

El [rol de ejecución](mwaa-create-role.md) 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](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/SecretsManagerReadWrite$jsonEditor)

**Pasos para asociar la política a su rol de ejecución**

1. Abra la página [Entornos](https://console.aws.amazon.com/mwaa/home#/environments) en la consola de Amazon MWAA.

1. Seleccione un entorno.

1. Elija su rol de ejecución en el panel **Permisos**.

1. Seleccione **Asociar políticas**.

1. Escriba `SecretsManagerReadWrite` en el campo de texto **Filtrar políticas**.

1. 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 un archivo específico Región de AWS de Secrets Manager.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetResourcePolicy",
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*"
        },
        {
            "Effect": "Allow",
            "Action": "secretsmanager:ListSecrets",
            "Resource": "*"
        }
    ]
}
```

------

## Segundo paso: crear el backend de Secrets Manager como opción de configuración de Apache Airflow
<a name="connections-sm-aa-configuration"></a>

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 usa una 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.

1. Abra la página [Entornos](https://console.aws.amazon.com/mwaa/home#/environments) en la consola de Amazon MWAA.

1. Seleccione un entorno.

1. Elija **Editar**.

1. Elija **Siguiente**.

1. Seleccione **Agregar configuración personalizada** en el panel **Opciones de configuración de Airflow**. Agregue los siguientes pares clave-valor:

   1. **`secrets.backend`**: **`airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend`**

   1. **`secrets.backend_kwargs`**: Con **`{"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}`**, se configura Apache Airflow para poder buscar cadenas de conexión y variables en rutas de `airflow/connections/*` y `airflow/variables/*`.

      Puede utilizar un [patrón de búsqueda](https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/secrets-backends/aws-secrets-manager.html#optional-lookup) 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` y `variables_lookup_pattern`. Estos parámetros aceptan una RegEx cadena como entrada. Por ejemplo, para buscar secretos que comiencen por `test`, introduzca lo siguiente para `secrets.backend_kwargs`:

      ```
      {
        "connections_prefix": "airflow/connections",
        "connections_lookup_pattern": "^test",
        "variables_prefix" : "airflow/variables",
        "variables_lookup_pattern": "^test"
      }
      ```
**nota**  
Para usar `connections_lookup_pattern` y `variables_lookup_pattern`, debe instalar la versión 7.3.0 o superior de `apache-airflow-providers-amazon`. Para obtener más información sobre la actualización de los paquetes de proveedores a versiones más recientes, consulte [Archivo de restricciones](connections-packages.md#connections-packages-constraints).

1. Seleccione **Save**.

## Paso tres: generar una cadena URI de AWS conexión de Apache Airflow
<a name="connections-sm-aa-uri"></a>

Para crear una cadena de conexión, utilice la tecla “tab” del teclado para aplicar los pares clave-valor en el objeto [Conexión](https://airflow.apache.org/docs/stable/howto/connection/index.html). También recomendamos crear una variable para el objeto `extra` en la sesión del shell. En la siguiente sección, se explican los pasos para [generar una cadena URI de conexión a Apache Airflow](https://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html#generating-a-connection-uri) para un entorno de Amazon MWAA mediante Apache Airflow o un script de Python.

------
#### [ Apache Airflow CLI ]

La siguiente sesión del shell utiliza la CLI de Airflow local para generar una cadena de conexión. Si no tiene la CLI instalada, le recomendamos que utilice el script de Python.

1. Abra una sesión del shell de Python:

   ```
   python3
   ```

1. Introduzca el siguiente comando:

   ```
   >>> import json
   ```

1. Introduzca el siguiente comando:

   ```
   >>> from airflow.models.connection import Connection
   ```

1. Cree una variable para el objeto `extra` en la sesión del shell. Sustituya los valores de *YOUR\$1EXECUTION\$1ROLE\$1ARN* la muestra por el ARN de la función de ejecución y la región de *us-east-1* (por ejemplo). `us-east-1`

   ```
   >>> extra=json.dumps({'role_arn': 'YOUR_EXECUTION_ROLE_ARN', 'region_name': 'us-east-1'})
   ```

1. Cree el objeto de conexión. Sustituya el valor de muestra en `myconn` por el nombre de la conexión de Apache Airflow.

   ```
   >>> myconn = Connection(
   ```

1. Utilice la tecla “tab” del teclado para aplicar cada uno de los siguientes pares clave-valor del objeto de conexión. Sustituya los valores de la muestra. *red*

   1. Especifique el tipo de AWS conexión:

      ```
      ... conn_id='aws',
      ```

   1. Especifique la opción de base de datos de Apache Airflow:

      ```
      ... conn_type='mysql',
      ```

   1. Especifique la URL de la interfaz de usuario de Apache Airflow en Amazon MWAA:

      ```
      ... host='288888a0-50a0-888-9a88-1a111aaa0000.a1.us-east-1.airflow.amazonaws.com/home',
      ```

   1. Especifique el ID de la clave de AWS acceso (nombre de usuario) para iniciar sesión en Amazon MWAA:

      ```
      ... login='YOUR_AWS_ACCESS_KEY_ID',
      ```

   1. Especifique la clave de acceso AWS secreta (contraseña) para iniciar sesión en Amazon MWAA:

      ```
      ... password='YOUR_AWS_SECRET_ACCESS_KEY',
      ```

   1. Especifique la variable de sesión de shell de `extra`:

      ```
      ... extra=extra
      ```

   1. Cierre el objeto de conexión.

      ```
      ... )
      ```

1. Imprima la cadena URI de conexión:

   ```
   >>> myconn.get_uri()
   ```

   Consulte la cadena URI de conexión en la respuesta:

   ```
   '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&region_name=us-east-1'
   ```

------
#### [ Python script ]

El siguiente script de Python no requiere la CLI de Apache Airflow.

1. Copie el contenido del código de ejemplo siguiente y guárdelo localmente como `mwaa_connection.py`.

   ```
   import urllib.parse
   								
   								conn_type = 'YOUR_DB_OPTION'
   								host = 'YOUR_MWAA_AIRFLOW_UI_URL'
   								port = 'YOUR_PORT'
   								login = 'YOUR_AWS_ACCESS_KEY_ID'
   								password = 'YOUR_AWS_SECRET_ACCESS_KEY'
   								role_arn = urllib.parse.quote_plus('YOUR_EXECUTION_ROLE_ARN')
   								region_name = 'us-east-1'
   								
   								conn_string = '{0}://{1}:{2}@{3}:{4}?role_arn={5}&region_name={6}'.format(conn_type, login, password, host, port, role_arn, region_name)
   								print(conn_string)
   ```

1. Sustituya los marcadores de posición. *red*

1. Ejecute el siguiente script para generar una cadena de conexión.

   ```
   python3 mwaa_connection.py
   ```

------

## Paso cuatro: añadir las variables en Secrets Manager
<a name="connections-sm-createsecret-variables"></a>

En la siguiente sección se describe cómo crear el secreto de una variable en Secrets Manager.

**Pasos para crear el secreto**

1. Abra la [consola de AWS Secrets Manager](https://console.aws.amazon.com/secretsmanager/home#/environments).

1. Elija **Almacenar un secreto nuevo**.

1. Elija **Otro tipo de secreto**.

1. En el panel **Especifique los key/value pares que se van a almacenar en este secreto**, elija **Plaintext**.

1. 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"
   ```

1. Para la **clave de cifrado**, elija una opción de AWS KMS clave de la lista desplegable.

1. 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
   ```

1. Elija **Siguiente**.

1. En la página **Configurar secreto**, en el panel **Nombre y descripción del secreto**, haga lo siguiente.

   1. En **Nombre del secreto**, proporcione un nombre para el secreto.

   1. (Opcional) En **Descripción**, escriba una descripción del nombre de su secreto.

   Elija **Siguiente**.

1. En **Configurar la rotación. Opcional**, deje las opciones predeterminadas y seleccione **Siguiente**.

1. Repita estos pasos en Secrets Manager para cualquier variable adicional que desee añadir.

1. 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
<a name="connections-sm-createsecret-connection"></a>

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**

1. Abra la [consola de AWS Secrets Manager](https://console.aws.amazon.com/secretsmanager/home#/environments).

1. Elija **Almacenar un secreto nuevo**.

1. Elija **Otro tipo de secreto**.

1. En el panel **Especifique los key/value pares que se van a almacenar en este secreto**, elija **Plaintext**.

1. 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&region_name=us-east-1
   ```
**aviso**  
Apache Airflow analiza cada uno de los valores de la cadena de conexión. **No** use comillas simples ni dobles, pues al hacerlo se analizaría la conexión como una sola cadena.

1. Para la **clave de cifrado**, elija una opción de AWS KMS clave de la lista desplegable.

1. 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
   ```

1. Elija **Siguiente**.

1. En la página **Configurar secreto**, en el panel **Nombre y descripción del secreto**, haga lo siguiente.

   1. En **Nombre del secreto**, proporcione un nombre para el secreto.

   1. (Opcional) En **Descripción**, escriba una descripción del nombre de su secreto.

   Elija **Siguiente**.

1. En **Configurar la rotación. Opcional**, deje las opciones predeterminadas y seleccione **Siguiente**.

1. Repita estos pasos en Secrets Manager para cualquier variable adicional que desee añadir.

1. En la página **Revisar**, revise los detalles de su secreto y, a continuación, elija **Almacenar**.

## Código de muestra
<a name="connections-sm-samples"></a>
+ 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 en AWS Secrets Manager para una conexión de Apache Airflow](samples-secrets-manager.md).
+ 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 en AWS Secrets Manager para una variable de Apache Airflow](samples-secrets-manager-var.md).

## Recursos
<a name="connections-sm-blogs"></a>
+ 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](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) 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](https://aws.amazon.com/blogs/opensource/move-apache-airflow-connections-variables-aws-secrets-manager/).

## Siguientes pasos
<a name="connections-sm-next-up"></a>
+ Aprenda a generar un token para acceder a la interfaz de usuario de Apache Airflow en [Acceso a Apache Airflow](access-airflow-ui.md).