Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Apache Airflow incluye una interfaz de usuario web llamada IU de Airflow, que puedes usar para administrar los DAG de Airflow, ver los registros de ejecución de DAG, supervisar Airflow y realizar acciones administrativas.
Acerca del servidor web de Airflow
Cada entorno de Managed Airflow tiene un servidor web que ejecuta la IU de Airflow. El servidor web es parte de la arquitectura del entorno de Managed Airflow.
Antes de comenzar
Debes tener un rol que pueda ver los entornos de Managed Airflow. Para obtener más información, consulta Guía de control de acceso.
Durante la creación del entorno, Managed Airflow configura la URL del servidor web que ejecuta la IU de Airflow. La URL no se puede personalizar.
Managed Airflow (Gen 3) admite la función de control de acceso a la IU de Airflow (control de acceso basado en funciones de Airflow) para la IU de Airflow.
Si la opción Controles de API > Apps de terceros no configuradas > No permitir que los usuarios accedan a ninguna app de terceros está habilitada en Google Workspace y la app de Apache Airflow en Managed Airflow no está permitida de forma explícita, los usuarios no podrán acceder a la IU de Airflow, a menos que permitan la aplicación de forma explícita. Para permitir el acceso, sigue los pasos que se indican en Cómo permitir el acceso a la IU de Airflow en Google Workspace.
Si se usan vinculaciones de Access Context Manager de Chrome Enterprise Premium con niveles de acceso que dependen de atributos del dispositivo y no se exime a la app de Apache Airflow en Managed Airflow, no se podrá acceder a la IU de Airflow debido a un bucle de acceso. Para permitir el acceso, sigue los pasos que se indican en Cómo permitir el acceso a la IU de Airflow en las vinculaciones de acceso adaptado al contexto.
Si se configuran reglas de entrada en un perímetro de Controles del servicio de VPC que protege el proyecto, y la regla de entrada que permite el acceso al servicio de Managed Airflow usa el tipo de identidad
ANY_SERVICE_ACCOUNToANY_USER_ACCOUNT, los usuarios no podrán acceder a la IU de Airflow y terminarán en un bucle de acceso. Para obtener más información sobre cómo abordar esta situación, consulta Permite el acceso a la IU de Airflow en las reglas de entrada de los Controles del servicio de VPC.Managed Airflow no admite el uso de identidades de terceros en reglas de entrada y salida para permitir operaciones de la IU de Apache Airflow. Sin embargo, puedes usar el tipo de identidad
ANY_IDENTITYen las reglas de entrada y salida para permitir el acceso a todas las identidades, incluidas las identidades de terceros. Para obtener más información sobre el tipo de identidadANY_IDENTITY, consulta Reglas de entrada y salida.
Accede a la IU de Airflow
En Airflow administrado (3ª gen.), el servidor web de Airflow se ejecuta en el proyecto del usuario de tu entorno. El servidor web se implementa en el dominio composer.googleusercontent.com y proporciona acceso a la IU de Airflow.
Managed Airflow (Gen 3) proporciona acceso a la interfaz según las identidades de los usuarios y las vinculaciones de políticas de IAM definidas para los usuarios.
Accede a la IU de Airflow desde la consola de Google Cloud
Sigue estos pasos para acceder a la IU de Airflow desde la consola de Google Cloud :
En la consola de Google Cloud , ve a la página Entornos.
En la columna Servidor web de Airflow, sigue el vínculo de Airflow para tu entorno.
Accede con una Cuenta de Google que tenga los permisos correspondientes.
Obtén la URL de la IU de Airflow con Google Cloud CLI
Puedes acceder a la IU de Airflow desde cualquier navegador web. Para obtener la URL de la IU de Airflow, ejecuta el siguiente comando en Google Cloud CLI:
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
Reemplaza lo siguiente:
ENVIRONMENT_NAME: Es el nombre de tu entorno.LOCATION: Es la región en la que se encuentra el entorno.
El comando de Google Cloud CLI muestra las propiedades de un entorno de Managed Airflow, incluidas las URLs de la IU de Airflow.
Las URLs aparecen como airflowUri y airflowByoidUri:
- Las Cuentas de Google usan la dirección URL
airflowUri. - Las identidades externas usan la dirección URL de
airflowByoidUrisi configuras la federación de identidades de personal en tu proyecto.
config:
airflowUri: https://example-dot-us-central1.composer.googleusercontent.com
airflowByoidUri: https://example-dot-us-central1.composer.byoid.googleusercontent.com
Reinicia el servidor web
Cuando depuras o solucionas problemas de entornos de Managed Airflow, puedes resolver algunos problemas si reinicias el servidor web de Airflow. Puedes reiniciar el servidor web con la API de restartWebServer o el comando restart-web-server en Google Cloud CLI:
gcloud composer environments restart-web-server ENVIRONMENT_NAME \
--location=LOCATION
Reemplaza lo siguiente:
ENVIRONMENT_NAME: Es el nombre de tu entorno.LOCATION: Es la región en la que se encuentra el entorno.
Configura el acceso a la red del servidor web
Los parámetros de acceso del servidor web de Airflow no dependen de la configuración de redes de tu entorno. En cambio, puedes configurar el acceso al servidor web por separado. Por ejemplo, un entorno de IP privada aún puede tener la IU de Airflow accesible desde Internet.
No es posible configurar los rangos de IP permitidos para que sean direcciones IP privadas.
Console
En la consola de Google Cloud , ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Configuración del entorno.
En la sección Configuración de red, busca el elemento Control de acceso al servidor web y haz clic en Editar.
En el diálogo Control de acceso a la red del servidor web, haz lo siguiente:
Para proporcionar acceso al servidor web de Airflow desde todas las direcciones IP, selecciona Permitir acceso desde todas las direcciones IP.
Para restringir el acceso solo a rangos de IP específicos, selecciona Permitir el acceso solo desde direcciones IP específicas. En el campo Rango de IP, especifica un rango de IP en la notación CIDR. En el campo Descripción, especifica una descripción opcional para este rango. Si deseas especificar más de un rango, haz clic en Agregar rango de IP.
Para prohibir el acceso a todas las direcciones IP, selecciona Permitir el acceso solo desde direcciones IP específicas y haz clic en Borrar elemento junto a la entrada de rango vacía.
gcloud
Cuando actualizas un entorno, los siguientes argumentos controlan los parámetros de acceso del servidor web:
--web-server-allow-allproporciona acceso a Airflow desde todas las direcciones IP. Esta es la opción predeterminada.--update-web-server-allow-iprestringe el acceso solo a rangos de IP de origen específicos. Para especificar varios rangos de IP, usa este argumento varias veces.--web-server-deny-allprohíbe el acceso a todas las direcciones IP.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--update-web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
Reemplaza lo siguiente:
ENVIRONMENT_NAME: Es el nombre de tu entorno.LOCATION: Es la región en la que se encuentra el entorno.WS_IP_RANGE: Es el rango de IP, en la notación CIDR, que puede acceder a la IU de Airflow.WS_RANGE_DESCRIPTION: Es la descripción del rango de IP.
Ejemplo:
gcloud composer environments update example-environment \
--location us-central1 \
--update-web-server-allow-ip ip_range=192.0.2.0/24,description="example range" \
--update-web-server-allow-ip ip_range=192.0.4.0/24,description="example range 2"
API
Crea una solicitud a la API de [
environments.patch][api-patch].En esta solicitud, realiza lo siguiente:
En el parámetro
updateMask, especifica la máscaraconfig.webServerNetworkAccessControl.En el cuerpo de la solicitud, especifica cómo se deben guardar los registros de tareas de Airflow:
Para proporcionar acceso a Airflow desde todas las direcciones IP, especifica un elemento
configvacío (el elementowebServerNetworkAccessControlno debe estar presente).Para restringir el acceso solo a rangos de IP específicos, especifica uno o más rangos en
allowedIpRanges.Para prohibir el acceso a todas las direcciones IP, especifica un elemento
webServerNetworkAccessControlvacío. El elementowebServerNetworkAccessControldebe estar presente, pero no debe contener un elementoallowedIpRanges.
{
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "WS_IP_RANGE",
"description": "WS_RANGE_DESCRIPTION"
}
]
}
}
}
Reemplaza lo siguiente:
WS_IP_RANGE: Es el rango de IP, en la notación CIDR, que puede acceder a la IU de Airflow.WS_RANGE_DESCRIPTION: Es la descripción del rango de IP.
Ejemplo:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerNetworkAccessControl
{
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "192.0.2.0/24",
"description": "example range"
},
{
"value": "192.0.4.0/24",
"description": "example range 2"
}
]
}
}
}
Terraform
En el bloque allowed_ip_range, en el bloque web_server_network_access_control, especifica los rangos de IP que pueden acceder al servidor web.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
web_server_network_access_control {
allowed_ip_range {
value = "WS_IP_RANGE"
description = "WS_RANGE_DESCRIPTION"
}
}
}
}
Reemplaza lo siguiente:
WS_IP_RANGE: Es el rango de IP, en la notación CIDR, que puede acceder a la IU de Airflow.WS_RANGE_DESCRIPTION: Es la descripción del rango de IP.
Ejemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
web_server_network_access_control {
allowed_ip_range {
value = "192.0.2.0/24"
description = "example range"
},
allowed_ip_range {
value = "192.0.4.0/24"
description = "example range 2"
}
}
}