Configurer des restrictions d'emplacement des ressources

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment configurer des restrictions d'emplacement des ressources pour vous assurer que vos données stockées par Cloud Composer sont conservées dans les emplacements que vous spécifiez.

Fonctionnement des restrictions d'emplacement

Les restrictions d'emplacement pour Cloud Composer sont déterminées en fonction de la règle d'administration appliquée au projet dans lequel l'environnement Cloud Composer est créé. Cette règle est attribuée au sein du projet ou héritée de l'organisation.

Lorsque les restrictions d'emplacement sont activées, il est impossible de créer un environnement dans une région interdite par la règle. Si une région est répertoriée dans la liste des refus ou ne figure pas dans la liste d'autorisation, vous ne pouvez pas créer d'environnements dans cette région.

Pour permettre la création d'environnements, la règle doit autoriser la région entière et non une zone particulière de cette région. Par exemple, la région europe-west3 doit être autorisée par la règle pour pouvoir créer des environnements Cloud Composer dans cette région.

Cloud Composer vérifie les restrictions d'emplacement lors des opérations suivantes :

  • Création d'environnement.
  • Mise à niveau d'environnement si des ressources supplémentaires sont créées pendant l'opération.
  • Mise à niveau d'environnement pour les environnements plus anciens qui n'appliquent pas de restrictions d'emplacement sur les dépendances Cloud Composer.

En plus de vérifier les restrictions d'emplacement, Cloud Composer effectue les opérations suivantes:

  • Stocke des images Airflow personnalisées par l'utilisateur dans les dépôts Artifact Registry régionaux.
  • Si l'emplacement multirégional US est explicitement interdit par la règle, l'utilisation de Cloud Build est désactivée. Dans ce cas, les images Airflow personnalisées par l'utilisateur sont créées dans votre cluster GKE.

Installer une dépendance Python dans un environnement d'adresse IP privée avec restrictions d'emplacement des ressources

Si vous définissez des restrictions d'emplacement des ressources pour votre projet, Cloud Build ne peut pas être utilisé pour installer des packages Python. Par conséquent, l'accès direct aux dépôts sur l'Internet public est désactivé.

Pour installer des dépendances Python dans un environnement d'adresse IP privée lorsque vos restrictions d'emplacement n'autorisent pas l'emplacement multirégional US, utilisez l'une des options suivantes:

  • Utilisez un dépôt PyPI privé hébergé sur votre réseau VPC.

  • Utilisez un serveur proxy dans votre réseau VPC pour vous connecter à un dépôt PyPI sur l'Internet public. Spécifiez l'adresse du proxy dans le fichier /config/pip/pip.conf du bucket Cloud Storage.

  • Si votre stratégie de sécurité autorise l'accès à votre réseau VPC à partir d'adresses IP externes, vous pouvez configurer Cloud NAT.

  • Stockez les dépendances Python dans le dossier dags du bucket Cloud Storage pour les installer en tant que bibliothèques locales. Cette option n'est pas conseillée si l'arbre des dépendances est volumineux.

Limiter les emplacements pour les journaux Cloud Composer

Si vos journaux Cloud Composer contiennent des données sensibles, vous pouvez rediriger les journaux Cloud Composer vers un bucket Cloud Storage régional. Pour ce faire, utilisez un récepteur de journaux. Une fois la journalisation redirigée vers un bucket Cloud Storage, vos journaux ne sont pas envoyés à Cloud Logging.

gcloud

  1. Créez un bucket Cloud Storage.

    gsutil mb -l LOCATION gs://BUCKET_NAME
    

    Remplacez :

    • LOCATION par la région dans laquelle se trouve l'environnement.
    • BUCKET_NAME par le nom du bucket. Exemple : composer-logs-us-central1-example-environment.
  2. Créez un récepteur de journaux.

    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"
    

    Remplacez :

    • ENVIRONMENT_NAME par le nom de l'environnement.
    • BUCKET_NAME par le nom du bucket.
    • LOCATION par la région dans laquelle se trouve l'environnement.
  3. Le résultat de la commande précédente contient le numéro de compte de service. Attribuez le rôle Créateur des objets de l'espace de stockage à ce compte de service:

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

    Remplacez :

    • PROJECT_ID par l'ID du projet.
    • SA_NUMBER par le numéro de compte de service fourni par la commande gcloud logging sinks create à l'étape précédente.
  4. Excluez les journaux de votre environnement 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"
    

    Remplacez :

    • ENVIRONMENT_NAME par le nom de l'environnement.
    • LOCATION par la région dans laquelle se trouve l'environnement.

Étape suivante