Rôles et autorisations

Cette page fournit des informations sur les rôles et les autorisations IAM (Identity and Access Management), ainsi que sur leur utilisation avec les instances Cloud SQL.

Introduction

Cette page se concentre sur les aspects d'IAM qui concernent spécifiquement Cloud SQL. Pour en savoir plus sur IAM et ses fonctionnalités générales, consultez la page Gestion de l'authentification et des accès, en particulier la section sur la gestion des stratégies IAM. IAM vous permet de contrôler qui a accès aux ressources de votre projet Google Cloud. L'ensemble des règles d'accès que vous appliquez à une ressource est appelé stratégie IAM. Une stratégie IAM appliquée à votre projet définit les actions que les utilisateurs peuvent effectuer sur toutes les ressources de votre projet.

Les membres sont les "acteurs" d'IAM. Il peut s'agir d'utilisateurs individuels, de groupes, de domaines ou même du public dans son ensemble. Les membres se voient attribuer des rôles qui leur accordent l'autorisation d'exécuter des actions dans Cloud SQL ainsi que dans Google Cloud plus généralement. Chaque rôle est un ensemble constitué d'une ou plusieurs autorisations. Les autorisations sont les unités de base d'IAM : chaque autorisation vous permet d'effectuer une action donnée. Consultez la page Rôles IAM dans Cloud SQL et Autorisations IAM dans Cloud SQL pour obtenir la liste complète des rôles et autorisations disponibles dans Cloud SQL.

Lorsque vous vous connectez à une instance Cloud SQL à l'aide d'un compte, celui-ci doit disposer du rôle Cloud SQL > Client (roles/cloudsql.client), qui inclut les autorisations requises pour la connexion.

Vous pouvez ajouter des rôles à un compte sur la page IAM et admin > IAM de la console, et identifier les correspondances entre les autorisations et les rôles sur la page IAM et admin > Rôles.

Cloud SQL utilise des comptes de service pour l'authentification entre Cloud SQL et les autres produits Google Cloud. Les comptes de service fournissent des identifiants credentials au format JSON, que vous pouvez télécharger depuis la console et utiliser pour l'authentification dans divers scénarios,

Rôles et autorisations Cloud SQL avec un proxy d'authentification Cloud SQL

Si vous vous connectez à une instance Cloud SQL depuis une instance Compute Engine à l'aide du proxy d'authentification Cloud SQL, vous pouvez utiliser le compte de service Compute Engine par défaut associé à l'instance Compute Engine.

Comme pour tous les comptes se connectant à une instance Cloud SQL, le compte de service doit disposer du rôle Cloud SQL > Client.

Rôles et autorisations Cloud SQL avec des solutions sans serveur

Utilisez un compte de service pour autoriser l'accès depuis ces solutions. Celui-ci vous permet d'autoriser l'accès à tous les services Cloud SQL d'un projet spécifique. Les applications ou environnements Cloud Functions que vous créez se chargent de créer ce compte de service, auquel vous pouvez accéder sur la page IAM et admin > IAM, avec le suffixe approprié :

Solution sans serveur Suffixe du compte de service
App Engine @gae-api-prod.google.com.iam.gserviceaccount.com
Cloud Functions @appspot.gserviceaccount.com
Cloud Run compute@developer.gserviceaccount.com
Comme pour tous les comptes se connectant à une instance Cloud SQL, le compte de service doit disposer du rôle Cloud SQL > Client.

Rôles et autorisations Cloud SQL avec Cloud Storage

Les fonctionnalités d'importation et d'exportation de Cloud SQL fonctionnent conjointement. Les données exportées sont écrites dans Cloud Storage, d'où sont lues les données importées. Pour cette raison, le compte de service que vous utilisez pour effectuer ces opérations requiert des autorisations de lecture et d'écriture dans Cloud Storage :

  • Pour importer des données dans et exporter des données depuis Cloud Storage, le compte de service de l'instance Cloud SQL doit disposer du rôle IAM storage.objectAdmin défini dans le projet. Vous trouverez le nom du compte de service de l'instance dans Google Cloud Console sur la page Présentation de votre instance.
  • Vous pouvez attribuer ce rôle IAM au compte de service du bucket en exécutant la commande gsutil iam.
  • Pour obtenir de l'aide sur la définition des rôles et des autorisations IAM, consultez la page Utiliser des autorisations IAM.
  • Pour en savoir plus, consultez la page IAM pour Cloud Storage.

Rôles et autorisations Cloud SQL dans d'autres scénarios

Cloud SQL interagit avec d'autres produits et outils Google Cloud. Ces interactions nécessitent également des rôles et des autorisations spécifiques qui peuvent varier d'un scénario à l'autre. La documentation Cloud SQL fournit des informations détaillées concernant ces exigences pour chacun des cas répertoriés ci-dessous :

Utiliser IAM avec des projets

Les sections suivantes expliquent comment exécuter des tâches IAM de base sur des projets.

Pour effectuer les tâches suivantes, vous devez disposer des autorisations IAM resourcemanager.projects.getIamPolicy et resourcemanager.projects.setIamPolicy.

Ajouter un membre à une stratégie au niveau du projet

Pour obtenir la liste des rôles associés à Cloud SQL, consultez la page Rôles IAM.

Console

  1. Accédez à la page IAM et administration de Google Cloud Console.
  2. Dans le menu déroulant du projet, dans la barre supérieure, sélectionnez le projet auquel vous souhaitez ajouter un membre.
  3. Cliquez sur Ajouter. La boîte de dialogue Ajouter des membres et des rôles au projet s'affiche.
  4. Dans le champ Nouveaux membres, indiquez le nom de l'entité à laquelle vous souhaitez accorder l'accès.
  5. Dans le menu déroulant Sélectionner un rôle, attribuez le rôle approprié au membre. Les rôles qui affectent les ressources Cloud SQL se trouvent dans les sous-menus Projet et Cloud SQL.
  6. Cliquez sur Enregistrer.

gsutil

Les stratégies IAM au niveau du projet sont gérées via la commande gcloud, qui fait partie du SDK Google Cloud. Pour ajouter une stratégie au niveau du projet, utilisez gcloud beta projects add-iam-policy-binding.

Afficher la stratégie IAM pour un projet

Console

  1. Accédez à la page IAM et administration de Google Cloud Console.
  2. Dans le menu déroulant du projet, dans la barre supérieure, sélectionnez le projet dont vous souhaitez afficher la stratégie.
  3. Il existe deux façons d'afficher les autorisations pour le projet :
    • Afficher par Membres : consultez la colonne Rôle associée aux membres individuels pour connaître les rôles qui leurs sont attribués.
    • Afficher par Rôles : utilisez la liste déroulante associée aux rôles individuels pour voir les membres qui possèdent le rôle.

gsutil

Les stratégies IAM au niveau du projet sont gérées via la commande gcloud, qui fait partie du SDK Google Cloud. Pour afficher la stratégie IAM d'un projet, exécutez la commande gcloud beta projects get-iam-policy.

Supprimer un membre d'une stratégie au niveau du projet

Console

  1. Accédez à la page IAM et administration de Google Cloud Console.
  2. Dans le menu déroulant du projet, dans la barre supérieure, sélectionnez le projet dont vous souhaitez supprimer un membre.
  3. Assurez-vous d'avoir affiché les autorisations par Membres, puis sélectionnez les membres que vous souhaitez supprimer.
  4. Cliquez sur Supprimer.
  5. Dans la fenêtre de superposition qui s'affiche, cliquez sur Confirmer.

gsutil

Les stratégies IAM au niveau du projet sont gérées via la commande gcloud, qui fait partie du SDK Google Cloud. Pour supprimer une stratégie au niveau du projet, utilisez gcloud beta projects remove-iam-policy-binding.

Bonnes pratiques

Comme tous les autres paramètres d'administration, IAM requiert une gestion active pour être efficace. Avant de rendre une ressource accessible aux autres utilisateurs, vous devez connaître les rôles que vous souhaitez attribuer à chacune d'entre elles. Au fil du temps, les modifications apportées au processus de gestion de projet, aux modèles d'utilisation et à la propriété organisationnelle peuvent vous contraindre à modifier les paramètres IAM associés aux projets, surtout si vous gérez Cloud SQL dans une grande organisation ou pour un grand groupe d'utilisateurs. Lorsque vous évaluez et planifiez vos paramètres de contrôle des accès, gardez à l'esprit les bonnes pratiques présentées ci-dessous.

  • Utilisez le principe du moindre privilège lorsque vous accordez l'accès. Le principe du moindre privilège est une mesure de sécurité appliquée au moment d'accorder l'accès à vos ressources. Lorsque vous accordez un accès basé sur le principe du moindre privilège, vous accordez à un utilisateur uniquement l'accès dont il a besoin pour accomplir la tâche qui lui est attribuée.

  • Évitez d'accorder des rôles comportant l'autorisation setIamPolicy à des personnes que vous ne connaissez pas. L'autorisation setIamPolicy permet à un utilisateur de modifier les autorisations et de prendre le contrôle des données. Vous ne devez utiliser les rôles avec l'autorisation setIamPolicy que si vous souhaitez déléguer le contrôle administratif sur les objets et les buckets.

  • Veillez à déléguer le contrôle administratif de vos ressources. Vous devez vous assurer que vos ressources peuvent toujours être gérées par d'autres membres de l'équipe lorsqu'une personne dotée d'un accès administrateur quitte le groupe. Voici deux méthodes couramment utilisées :

    • Attribuez le rôle Administrateur Cloud SQL de votre projet à un groupe plutôt qu'à un individu.
    • Attribuez le rôle Administrateur Cloud SQL pour votre projet à au moins deux personnes.

Étape suivante