Accéder aux ressources d'un autre projet

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment accéder aux ressources situées dans un projet Google Cloud différent de celui de votre environnement Cloud Composer.

Nous vous recommandons d'accéder aux ressources d'autres projets Google Cloud de la manière suivante:

  1. Dans vos DAG, utilisez les connexions par défaut préconfigurées dans votre environnement.

    Par exemple, la connexion google_cloud_default est utilisée par de nombreux opérateurs Google Cloud et est automatiquement configurée lorsque vous créez un environnement.

  2. Accordez des autorisations et des rôles IAM supplémentaires au compte de service de votre environnement afin qu'il puisse accéder aux ressources d'un autre projet.

Déterminer le compte de service de votre environnement

Pour déterminer le compte de service de votre environnement:

Console

  1. Dans la console Google Cloud, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Le compte de service de votre environnement est répertorié dans le champ Compte de service.

    La valeur est une adresse e-mail, telle que service-account-name@example-project.iam.gserviceaccount.com.

gcloud

gcloud composer environments describe ENVIRONMENT_NAME \
    --location LOCATION \
    --format="get(config.nodeConfig.serviceAccount)"

La valeur est une adresse e-mail, telle que service-account-name@example-project.iam.gserviceaccount.com.

Accorder des rôles et autorisations IAM pour accéder aux ressources d'un autre projet

Le compte de service de votre environnement nécessite des autorisations pour accéder aux ressources d'un autre projet. Ces rôles et autorisations peuvent varier en fonction de la ressource à laquelle vous souhaitez accéder.

Accéder à une ressource spécifique

Nous vous recommandons d'attribuer des rôles et des autorisations pour des ressources spécifiques, par exemple un seul bucket Cloud Storage situé dans un projet différent. Dans cette approche, vous utilisez un accès basé sur les ressources avec des liaisons de rôle conditionnelles.

Pour accéder à une ressource spécifique:

  1. Suivez le guide Configurer l'accès basé sur les ressources.
  2. Lorsque vous attribuez des rôles et des autorisations, spécifiez le compte de service de votre environnement en tant qu'entité principale.

Accéder à un type de ressource

Vous pouvez également attribuer des rôles et des autorisations en fonction du type de ressource (par exemple, tous les buckets Cloud Storage situés dans un autre projet).

Pour accéder à un type de ressource:

  1. Suivez le guide Gérer l'accès aux autres ressources.
  2. Lorsque vous attribuez des rôles et des autorisations, spécifiez le compte de service de votre environnement en tant qu'entité principale.

Une fois que vous avez accordé les autorisations et les rôles requis, vous pouvez accéder aux ressources d'un projet différent à l'aide des mêmes connexions Airflow par défaut que celles que vous utilisez pour accéder aux ressources du projet où se trouve votre environnement.

Étapes suivantes