Configurar restricciones de ubicación de recursos

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

En esta página, se muestra cómo configurar las restricciones de ubicación de recursos para garantizar que tus datos almacenados por Cloud Composer se mantengan dentro de las ubicaciones que especifiques.

Cómo funcionan las restricciones de ubicación

Las restricciones de ubicación para Cloud Composer se determinan según la política de la organización que se aplica al proyecto en el que se crea el entorno de Cloud Composer. Esta política se asigna dentro del proyecto o se hereda de la organización.

Con las restricciones de ubicación habilitadas, no es posible crear un entorno en una región prohibida por la política. Si una región aparece en la lista de denegación o no está en la lista de anunciantes permitidos, no puedes crear entornos en esta región.

Para habilitar la creación de entornos, la política debe permitir toda la región y no una zona específica dentro de esta región. Por ejemplo, la política debe permitir la región europe-west3 para crear entornos de Cloud Composer en esta región.

Cloud Composer verifica las restricciones de ubicación en la siguiente ubicación:

  • Creación del entorno
  • Actualización del entorno, si se crean recursos adicionales durante la operación
  • Actualización del entorno, para entornos más antiguos que no aplican restricciones de ubicación en las dependencias de Cloud Composer.

Además de verificar las restricciones de ubicación, Cloud Composer hace lo siguiente:

  • Almacena imágenes de Airflow personalizadas por el usuario en repositorios regionales de Artifact Registry.
  • Si la multirregión US está prohibida de forma explícita por la política, el uso de Cloud Build está inhabilitado. En este caso, las imágenes de Airflow personalizadas por el usuario se compilan en tu clúster de GKE.

Instale de una dependencia de Python en un entorno de IP privada con restricciones de ubicación de recursos

Si configuras restricciones de ubicación de recursos para tu proyecto, entonces no se puede usar Cloud Build para instalar paquetes de Python. Como consecuencia, el acceso directo a los repositorios en la Internet pública está inhabilitado.

Para instalar dependencias de Python en un entorno de IP privada cuando las restricciones de ubicación no permiten varias regiones US, usa una de las siguientes opciones:

  • Usar un repositorio de PyPI privado alojado en tu red de VPC.

  • Usa un servidor proxy en tu red de VPC para conectarte a un repositorio de PyPI en el a Internet. Especifica la dirección del proxy en el archivo /config/pip/pip.conf en el bucket de Cloud Storage.

  • Si tu política de seguridad permite el acceso a tu red de VPC desde direcciones IP externas, puedes configurar Cloud NAT.

  • Almacena las dependencias de Python en la carpeta dags en el bucket de Cloud Storage, para instalarlos como bibliotecas locales. Esta podría no ser una buena opción si el árbol de dependencias es grande.

Restringe ubicaciones para los registros de Cloud Composer

Si tus registros de Cloud Composer contienen datos sensibles, redireccionar los registros de Cloud Composer a una instancia bucket de Cloud Storage. Para hacerlo, usa un receptor de registros. Después de redireccionar los registros a un bucket de Cloud Storage, estos no se envían a Cloud Logging.

gcloud

  1. Crea un nuevo bucket de Cloud Storage.

    gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION
    

    Reemplaza lo siguiente:

    • LOCATION por la región en la que se encuentra el entorno
    • BUCKET_NAME por el nombre del bucket Por ejemplo, composer-logs-us-central1-example-environment
  2. Crea un receptor de registros nuevo.

    gcloud logging sinks create \
    composer-log-sink-ENVIRONMENT_NAME \
    storage.googleapis.com/BUCKET_NAME \
    --log-filter "resource.type=cloud_composer_environment AND \
    resource.labels.environment_name=ENVIRONMENT_NAME AND \
    resource.labels.location=LOCATION"
    

    Reemplaza lo siguiente:

    • ENVIRONMENT_NAME por el nombre del entorno.
    • BUCKET_NAME por el nombre del bucket.
    • LOCATION por la región en la que se encuentra el entorno.
  3. El resultado del comando anterior contiene el número de cuenta de servicio. Otórgale el rol de Creador de objetos de almacenamiento cuenta de servicio:

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:SA_NUMBER@gcp-sa-logging.iam.gserviceaccount.com" \
    --role='roles/storage.objectCreator' \
    --condition=None
    

    Reemplaza lo siguiente:

    • PROJECT_ID por el ID del proyecto.
    • SA_NUMBER por el número de cuenta de servicio que proporcionó el comando gcloud logging sinks create en el paso anterior.
  4. Excluye los registros de tu entorno de Monitoring.

    gcloud logging sinks update _Default \
    --add-exclusion name=ENVIRONMENT_NAME-exclusion,filter=\
    "resource.type=cloud_composer_environment AND \
    resource.labels.environment_name=ENVIRONMENT_NAME AND \
    resource.labels.location=LOCATION"
    

    Reemplaza lo siguiente:

    • ENVIRONMENT_NAME por el nombre del entorno.
    • LOCATION por la región en la que se encuentra el entorno.

¿Qué sigue?