Restrictions d'emplacement des ressources

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.

Régions dans lesquelles les restrictions d'emplacement des ressources ne sont pas disponibles

Cloud Composer n'accepte pas les restrictions d'emplacement des ressources dans la région de Varsovie (europe-central2).

Fonctionnement des restrictions d'emplacement

Les restrictions d'emplacement pour Cloud Composer sont déterminées par 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 est 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 figure dans la liste "Refuser" ou ne figure pas dans la liste "Autoriser", vous ne pouvez pas créer d'environnements dans cette région.

Cloud Composer est basé sur la région. Pour créer des environnements, la règle doit autoriser l'ensemble de la région, et non une zone spécifique de cette région. Par exemple, la règle europe-west3 doit être autorisée par la règle pour créer des environnements Cloud Composer dans cette région.

Les restrictions d'emplacement sont vérifiées aux étapes suivantes :

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

Outre les restrictions décrites ci-dessus, Cloud Composer effectue les opérations suivantes:

  • Stocke des images Airflow personnalisées dans les dépôts 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, des images Airflow personnalisées sont créées dans le cluster GKE.

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

Les restrictions d'emplacement pour votre projet interdisent l'utilisation de certains outils. En particulier, 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 pour un environnement Composer Composer privé lorsque les 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 de votre réseau VPC pour vous connecter à un dépôt PyPI sur le réseau Internet public. Spécifiez l'adresse de proxy dans le fichier /config/pip/pip.conf dans le 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.
  • Fournisseurs des 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 recommandée si l'arborescence des dépendances est volumineuse.

Limiter les emplacements pour les journaux Cloud Composer

Si vos journaux contiennent des données sensibles, vous pouvez rediriger les journaux Cloud Composer vers un bucket Cloud Storage régional à l'aide du routeur de journaux. Cela empêche l'envoi de vos journaux à Cloud Logging. Pour obtenir une assistance de Cloud Customer Care, vous devrez peut-être autoriser les ingénieurs de l'assistance Google à accéder aux journaux Cloud Composer stockés dans Cloud Storage.

gcloud

  1. Créez un bucket Cloud Storage (par exemple, composer-logs-us-central1-example-environment).

    gsutil mb -l LOCATION gs://ENVIRONMENT_NAME
    
  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"
    
  3. Attribuez le rôle approprié au compte de service pour ce bucket (indiqué dans le résultat de la commande précédente).

    gcloud projects add-iam-policy-binding PROJECT \
    --member="serviceAccount:serviceAccountNumber@gcp-sa-logging.iam.gserviceaccount.com" \
    --role='roles/storage.objectCreator' --condition=None
    
  4. Excluez les journaux de votre nouvel 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"