Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
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 la zone multirégionale
US
est explicitement interdite 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 de votre réseau VPC pour vous connecter à un dépôt PyPI à Internet. 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. Après avoir redirigé les journaux vers un bucket Cloud Storage, vos journaux ne sont pas envoyés à Cloud Logging.
gcloud
Créez un bucket Cloud Storage.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION
Remplacez :
LOCATION
par la région où se trouve l'environnement.BUCKET_NAME
par le nom du bucket. Exemple :composer-logs-us-central1-example-environment
.
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 où se trouve l'environnement.
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 commandegcloud logging sinks create
à l'étape précédente.
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
- Présentation de la sécurité Cloud Composer
- Contrôle des accès
- À propos des environnements d'adresse IP privée