Configurer des instances pour l'authentification IAM pour les bases de données

Cette page contient des procédures permettant de créer ou de modifier des instances Cloud SQL afin d'autoriser les utilisateurs ou les comptes de service configurés à utiliser l'authentification IAM pour les bases de données Cloud SQL. Pour en savoir plus sur l'intégration IAM dans Cloud SQL, consultez la page Présentation de l'authentification IAM pour les bases de données Cloud SQL.

Une nouvelle instance possède une base de données postgres.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Installez et initialisez le SDK Cloud.
  5. Assurez-vous de disposer des rôles d'administrateur Cloud SQL et de lecteur de Compute sur votre compte utilisateur.

    Accéder à la page IAM

    En savoir plus sur les rôles et les autorisations

Configurer de nouvelles instances pour l'authentification IAM pour les bases de données

Cloud SQL utilise une option pour activer et désactiver les connexions utilisateur IAM sur une instance. Dans cette procédure, vous activez cette option.

Pour configurer une nouvelle instance utilisant l'authentification IAM pour les bases de données Cloud SQL, procédez comme suit :

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur Créer une instance.
  3. Sélectionnez PostgreSQL et cliquez sur Suivant.
  4. Entrez un nom pour l'ID d'instance. N'incluez pas d'informations sensibles ou personnelles dans le nom de l'instance, car les utilisateurs externes peuvent le voir. Vous n'avez pas besoin d'indiquer l'ID du projet, L'ID du projet est automatiquement inclus le cas échéant (par exemple, dans les fichiers journaux). Remarque : Après avoir supprimé l'instance, vous ne pouvez pas réutiliser son nom pendant un laps de temps maximal d'une semaine.
  5. Entrez un mot de passe pour l'utilisateur racine.
  6. Sous Emplacement, sélectionnez la région et la zone de votre instance. Placez l'instance dans la même région que les ressources qui y accèdent. La région que vous sélectionnez ne peut plus être modifiée. En règle générale, il n'est pas nécessaire de spécifier une zone.
  7. Sélectionnez une version de la base de données.
  8. Sous Options de configuration, ouvrez Options.
  9. Sélectionnez + Ajouter un élément.
  10. Saisissez cloudsql.iam_authentication comme nom de l'option. Assurez-vous que le paramètre Activé est sélectionné pour cette option.
  11. Configurez d'autres paramètres d'instance, si nécessaire. Pour plus d'informations sur les paramètres, consultez la section Paramètres.
  12. Cliquez sur Create (Créer).

gcloud

Exécutez gcloud sql instances create avec le paramètre -database-flags défini sur cloudsql.iam_authentication.

Remplacez l'élément suivant :

  • INSTANCE_NAME : le nom de la nouvelle instance
  • POSTGRES_VERSION : la version de PosgreSQL (par exemple, POSTGRES_9_6, POSTGRES_10, POSTGRES_11 ou POSTGRES_12)
  • NUMBER_OF_CORES : le nombre de cœurs dans la machine
  • AMOUNT_OF_MEMORY : la quantité de mémoire dans la machine. Une unité de taille doit être fournie (par exemple, 3 072 Mio ou 9 Gio).
  • ZONE : la zone Compute Engine préférée (telle que us-central1-a ou us-central1-b)
  • PASSWORD : créez un mot de passe pour l'utilisateur racine.
gcloud sql instances create INSTANCE_NAME
--database-version=POSTGRES_VERSION --cpu=NUMBER_OF_CORES
--memory=AMOUNT_OF_MEMORY --zone=ZONE_NAME
--root-password=PASSWORD --database-flags cloudsql.iam_authentication=on

API REST v1beta4

N'incluez pas d'informations sensibles ou personnelles dans le nom de l'instance, car les utilisateurs externes peuvent le voir.

Vous n'avez pas besoin d'indiquer l'ID du projet, L'ID du projet est automatiquement inclus le cas échéant (par exemple, dans les fichiers journaux).

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • instance-id : ID de l'instance souhaitée
  • region : région souhaitée, telle que us-east-1
  • project-id : ID de votre projet
  • location-id : ID de l'emplacement
  • database-version : chaîne d'énumération de la version de base de données. Par exemple : POSTGRES_12
  • password : mot de passe de l'utilisateur racine
  • machine-type : chaîne d'énumération du type (niveau) de machine, comme suit : db-custom-[CPUS]-[MEMORY_MBS]

Méthode HTTP et URL :

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/locations/location-id/instances

Corps JSON de la requête :

{
  "name": "instance-id",
  "region": "region",
  "databaseVersion": "database-version",
  "rootPassword": "password",
  "settings": {
    "tier": "machine-type",
    "backupConfiguration": {
      "enabled": true
    },
    "databaseFlags": [
      {
        "name": "cloudsql.iam_authentication",
        "value": "on"
      }
    ]
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
Pour découvrir comment est formée la requête sous-jacente à l'API REST pour cette tâche, consultez la page dédiée à la méthode "instances:insert" dans APIs Explorer.

Configurer des instances existantes pour l'authentification IAM pour les bases de données Cloud SQL

Pour configurer l'authentification IAM pour les bases de données sur une instance existante, procédez comme suit :

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur le nom de l'instance que vous souhaitez modifier.
  3. Cliquez sur MODIFIER.
  4. Sous Options de configuration, ouvrez Options.
  5. Sélectionnez + Ajouter un élément.
  6. Saisissez cloudsql.iam_authentication comme nom de l'option. Assurez-vous que le paramètre Activé est sélectionné pour cette option.
  7. Configurez d'autres paramètres d'instance, si nécessaire. Pour plus d'informations sur les paramètres, consultez la section Paramètres.
  8. Cliquez sur Enregistrer.

gcloud

Pour en savoir plus sur l'installation et le démarrage avec l'outil de ligne de commande gcloud, consultez la page Installer le SDK Cloud. Pour en savoir plus sur le démarrage de Cloud Shell, consultez la documentation Cloud Shell.

Pour cette procédure, utilisez gcloud sql instances patch.

Remplacez l'élément suivant :

  • INSTANCE_NAME : le nom de la nouvelle instance
gcloud sql instances patch INSTANCE_NAME --database-flags
    cloudsql.iam_authentication=on

API REST v1beta4

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • location-id : ID de l'emplacement
  • instance-id : ID de l'instance souhaitée
  • region : région souhaitée
  • database-version : chaîne d'énumération de la version de base de données. Par exemple : POSTGRES_12
  • password : mot de passe de l'utilisateur racine
  • machine-type : chaîne d'énumération du type (niveau) de machine, comme suit : db-custom-[CPUS]-[MEMORY_MBS]

Méthode HTTP et URL :

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/locations/location-id/instances

Corps JSON de la requête :

{
  "name": "instance-id",
  "region": "region",
  "databaseVersion": "database-version",
  "rootPassword": "password",
  "settings": {
    "tier": "machine-type",
    "backupConfiguration": {
      "enabled": true
    }
    "databaseFlags":
    [
      {
        "name": "cloudsql.iam_authentication",
        "value": "on"
      }
    ]
  }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Étape suivante