Définir le contrôle des accès d'une configuration

Pour contrôler l'accès à vos ressources dans Google Cloud Platform, utilisez la gestion de l'authentification et des accès (IAM). IAM vous permet de définir des autorisations pour contrôler qui a accès à quelles ressources dans votre projet. Pour une introduction à IAM, consultez la page Présentation.

Lorsque vous déployez des ressources, vous pouvez également contrôler qui a accès à ces ressources en définissant à l'avance une stratégie Cloud IAM dans la configuration. Par exemple, si vous envisagez de créer des sujets Pub/Sub pouvant être gérées par des utilisateurs spécifiques, vous pouvez l'indiquer à Deployment Manager en spécifiant une stratégie IAM dans votre configuration. Lorsque vous créez ou mettez à jour votre déploiement, Deployment Manager appelle l'API IAM afin de définir les autorisations appropriées sur la ressource.

Avant de commencer

Utiliser des stratégies IAM dans Deployment Manager

Une stratégie IAM est un ensemble d'utilisateurs et leurs rôles. Vous définissez une stratégie IAM au niveau du projet, en utilisant des rôles primitifs ou prédéfinis. Certains services, tels que Cloud Pub/Sub, permettent également la définition de stratégies IAM au niveau des ressources.

Si un service n'est pas compatible avec la définition de stratégies IAM au niveau des ressources, Deployment Manager renvoie une erreur de type NO_METHOD_TO_UPDATE_ACCESS_CONTROL.

Pour connaître la liste des rôles disponibles et les ressources auxquelles vous pouvez les appliquer, consultez la page Comprendre les rôles.

Accorder l'autorisation à Deployment Manager de définir des stratégies IAM

Deployment Manager utilise le compte de service des API Google pour appeler d'autres API Google et gérer les ressources Google Cloud Platform en votre nom. Vous devez attribuer le rôle primitif roles/owner au compte de service des API Google de votre projet afin qu'il puisse appliquer les stratégies IAM définies dans vos configurations.

  1. Accédez à la page IAM de la console GCP pour votre projet.

    Accéder à la page IAM

  2. Si vous y êtes invité, sélectionnez votre projet dans la liste.
  3. Recherchez le compte de service des API Google, dont l'adresse e-mail est au format suivant :

    [PROJECT_NUMBER]@cloudservices.gserviceaccount.com
    
  4. Attribuez le rôle roles/owner au compte de service des API :

    Console

    1. Dans la console Google Cloud Platform, développez la liste déroulante Rôles du compte de service des API Google, puis sélectionnez Projet > Propriétaire.
    2. Cliquez sur Enregistrer pour enregistrer les modifications.

    gcloud

    À l'aide de l'outil de ligne de commande gcloud, ajoutez une liaison vers la stratégie Cloud IAM pour le projet :

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
        --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/owner

    Où :

    • [PROJECT_ID] est l'ID du projet.
    • [SERVICE_ACCOUNT_EMAIL] est l'adresse e-mail du compte de service.

    Exemple :

    gcloud projects add-iam-policy-binding database-images \
        --member serviceAccount:123456789012@cloudservices.gserviceaccount.com  \
        --role roles/owner

    API

    Dans l'API, exécutez une requête POST à l'URL suivante, où [PROJECT_ID] correspond à l'ID du projet :

    POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
    

    Le corps de la requête doit contenir la liste des liaisons que vous souhaitez appliquer à ce projet. Le rôle roles/owner doit faire partie de la liaison. Exemple :

    {
        "policy": {
            "version": "0",
            "bindings": [
                {
                    "role": "roles/owner",
                    "members": [
                        "user:example@gmail.com",
                        "serviceAccount:123456789012@cloudservices.gserviceaccount.com"
                    ]
                }
            ]
        }
    }
    

Définir une stratégie IAM dans la configuration

Ensuite, pour définir une stratégie IAM dans votre configuration ou votre modèle, procédez comme suit :

  1. Ajoutez la section accessControl à la configuration de premier niveau pour chaque ressource à laquelle vous souhaitez appliquer des stratégies de contrôle d'accès.

  2. Spécifiez la stratégie gcpIamPolicy souhaitée pour la ressource. Chaque stratégie IAM peut contenir plusieurs liaisons. Chaque liaison associe une liste d'utilisateurs à un rôle.

Par exemple, la section accessControl suivante ajoute des liaisons qui attribuent ces rôles aux utilisateurs :

Utilisateur Rôle
alice@example.com roles/pubsub.editor
  • my-other-app@appspot.gserviceaccount.com
  • jane@example.com
roles/pubsub.publisher
resources:
- name: a-new-pubsub-topic
  type: pubsub.v1.topic
  properties:
    ...

  accessControl:
    gcpIamPolicy:
      bindings:
      - role: roles/pubsub.editor
        members:
        - "user:alice@example.com"
      - role: roles/pubsub.publisher
        members:
        - "user:jane@example.com"
        - "serviceAccount:my-other-app@appspot.gserviceaccount.com"

Pour en savoir plus sur les stratégies IAM, consultez la documentation IAM.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Cloud Deployment Manager