GSP920
Présentation
Les clés de chiffrement gérées par le client (CMEK) vous permettent d'utiliser vos propres clés cryptographiques pour les données au repos dans Cloud SQL. Après l'ajout des clés de chiffrement gérées par le client, Cloud SQL utilise votre clé pour accéder aux données à chaque appel d'API.
Dans cet atelier, nous allons vous expliquer en détail comment sécuriser une instance Cloud SQL pour PostgreSQL. Vous devez d'abord déployer une nouvelle instance Cloud SQL à l'aide d'une CMEK. Une fois l'instance Cloud SQL pour PostgreSQL créée, configurez pgAudit pour enregistrer et suivre de manière sélective les opérations SQL effectuées sur cette instance. Enfin, configurez et testez l'authentification IAM pour les bases de données Cloud SQL.
Objectifs de l'atelier
- Configurer les CMEK pour Cloud SQL pour PostgreSQL
- Activer et configurer pgAudit sur une instance Cloud SQL pour PostgreSQL
- Configurer l'authentification IAM pour les bases de données Cloud SQL pour PostgreSQL
Audience cible
Le contenu de cet atelier pratique s'adresse principalement aux administrateurs de bases de données PostgreSQL. Cet atelier est conçu pour permettre aux professionnels d'acquérir une expérience concrète de la configuration de ressources Google Cloud afin de prendre en charge PostgreSQL.
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Tâche 1 : Créer une instance Cloud SQL pour PostgreSQL avec l'option CMEK activée
Dans cette tâche, vous allez créer une instance Cloud SQL pour PostgreSQL avec l'option CMEK activée. Il est impératif que vous conserviez les clés de façon sécurisée, car vous ne pourrez pas gérer votre base de données sans elles.
Créer un compte de service par produit et par projet pour Cloud SQL
Vous pouvez créer le compte de service dont vous avez besoin pour la CMEK Cloud SQL à l'aide de la commande gcloud beta services identity create.
- Dans Cloud Shell, exécutez la commande suivante pour créer le compte de service :
export PROJECT_ID=$(gcloud config list --format 'value(core.project)')
gcloud beta services identity create \
--service=sqladmin.googleapis.com \
--project=$PROJECT_ID
- Si vous y êtes invité, cliquez sur le bouton Authorize (Autoriser).
Cette opération crée le compte de service que vous associerez à la CMEK lors d'une prochaine étape.
Créer un trousseau et une clé Cloud Key Management Service
Dans cette section, vous allez créer un trousseau et une clé Cloud KMS à utiliser avec une CMEK.
- Dans Cloud Shell, exécutez la commande suivante pour créer le trousseau Cloud KMS :
export KMS_KEYRING_ID=cloud-sql-keyring
export ZONE=$(gcloud compute instances list --filter="NAME=bastion-vm" --format=json | jq -r .[].zone | awk -F "/zones/" '{print $NF}')
export REGION=${ZONE::-2}
gcloud kms keyrings create $KMS_KEYRING_ID \
--location=$REGION
- Dans Cloud Shell, exécutez la commande suivante pour créer la clé Cloud KMS :
export KMS_KEY_ID=cloud-sql-key
gcloud kms keys create $KMS_KEY_ID \
--location=$REGION \
--keyring=$KMS_KEYRING_ID \
--purpose=encryption
- Dans Cloud Shell, exécutez la commande suivante pour associer la clé au compte de service :
export PROJECT_NUMBER=$(gcloud projects describe ${PROJECT_ID} \
--format 'value(projectNumber)')
gcloud kms keys add-iam-policy-binding $KMS_KEY_ID \
--location=$REGION \
--keyring=$KMS_KEYRING_ID \
--member=serviceAccount:service-${PROJECT_NUMBER}@gcp-sa-cloud-sql.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Le nom du compte de service est le même que celui renvoyé par la commande gcloud beta services identity create dans la sous-tâche précédente.
Créer une instance Cloud SQL avec l'option CMEK activée
Dans cette section, vous allez créer une instance Cloud SQL pour PostgreSQL avec l'option CMEK activée. Il n'est pas possible de corriger une instance existante pour activer l'option CMEK. Vous devez donc en tenir compte si vous prévoyez d'utiliser l'option CMEK pour chiffrer vos données.
Pour accéder à votre instance Cloud SQL depuis des environnements de développement ou d'application externes, vous pouvez configurer l'instance Cloud SQL avec une adresse IP publique et contrôler l'accès en ajoutant l'adresse IP de ces environnements à la liste d'autorisation. Ainsi, vous ne permettez qu'aux plages d'adresses que vous spécifiez d'accéder à l'interface publique.
Vous traitez l'instance de VM Compute Engine de l'atelier comme un environnement de développement. Vous devez donc ajouter l'adresse IP externe de cette instance à la liste d'autorisation. Vous allez également ajouter l'adresse IP externe de Cloud Shell à la liste d'autorisation pour effectuer plus facilement les tâches de cet atelier.
- Dans Cloud Shell, exécutez la commande suivante pour trouver l'adresse IP externe de l'instance de VM
bastion-vm :
export AUTHORIZED_IP=$(gcloud compute instances describe bastion-vm \
--zone=$ZONE \
--format 'value(networkInterfaces[0].accessConfigs.natIP)')
echo Authorized IP: $AUTHORIZED_IP
- Dans Cloud Shell, exécutez la commande suivante pour trouver l'adresse IP externe de Cloud Shell :
export CLOUD_SHELL_IP=$(curl ifconfig.me)
echo Cloud Shell IP: $CLOUD_SHELL_IP
- Dans Cloud Shell, exécutez la commande suivante pour créer votre instance Cloud SQL pour PostgreSQL :
export KEY_NAME=$(gcloud kms keys describe $KMS_KEY_ID \
--keyring=$KMS_KEYRING_ID --location=$REGION \
--format 'value(name)')
export CLOUDSQL_INSTANCE=postgres-orders
gcloud sql instances create $CLOUDSQL_INSTANCE \
--project=$PROJECT_ID \
--authorized-networks=${AUTHORIZED_IP}/32,$CLOUD_SHELL_IP/32 \
--disk-encryption-key=$KEY_NAME \
--database-version=POSTGRES_13 \
--cpu=1 \
--memory=3840MB \
--region=$REGION \
--root-password=supersecret!
- Après avoir saisi la commande, saisissez "y" si vous y êtes invité.
Créer une instance Cloud SQL avec l'option CMEK activée
Tâche 2 : Activer et configurer pgAudit sur une base de données Cloud SQL pour PostgreSQL
Dans cette tâche, vous allez activer et configurer l'extension de base de données pgAudit, qui permet de contrôler précisément la journalisation de tous les types d'activité de base de données.
- Dans Cloud Shell, exécutez la commande suivante pour ajouter les flags de base de données pgAudit à votre instance Cloud SQL :
gcloud sql instances patch $CLOUDSQL_INSTANCE \
--database-flags cloudsql.enable_pgaudit=on,pgaudit.log=all
- Si vous êtes invité à confirmer votre choix, saisissez "y" et continuez.
Remarque : Attendez que la commande de correctif soit terminée avant de continuer. Lorsque vous voyez le message Patching Cloud SQL instance…done (Application de correctifs à l'instance Cloud SQL… effectuée), vous pouvez passer à l'étape suivante.
-
Dans la console Cloud, accédez au menu de navigation (
), puis cliquez sur SQL.
-
Cliquez sur l'instance Cloud SQL nommée postgres-orders.
-
Dans le panneau Présentation de Cloud SQL, dans le menu supérieur, cliquez sur Redémarrer pour redémarrer l'instance après l'application du correctif que vous avez exécuté à l'étape 1.
Si vous y êtes invité, cliquez de nouveau sur Redémarrer dans la boîte de dialogue pop-up.
Remarque : Le redémarrage de votre instance Cloud SQL pour PostgreSQL peut prendre quelques minutes. Lorsque le message indiquant que l'instance a bien été redémarrée (Restarted postgres-orders) s'affiche, vous pouvez passer à l'étape suivante.
- Dans la console Cloud, sous la section Se connecter à cette instance, cliquez sur Ouvrir Cloud Shell.
Remarque : Si vous recevez un message d'erreur et que vous ne parvenez pas à vous connecter, attendez quelques minutes après le redémarrage pour laisser le temps à l'instance d'être à nouveau accessible, puis répétez l'étape 6.
Une commande permettant de se connecter à l'instance est automatiquement insérée dans Cloud Shell.
- Exécutez cette commande telle quelle et saisissez le mot de passe
supersecret! lorsque vous y êtes invité.
Une session psql démarre dans Cloud Shell.
- Dans psql, exécutez la commande suivante pour créer la base de données
orders et activer l'extension pgAudit afin de consigner toutes les lectures et écritures :
CREATE DATABASE orders;
\c orders;
-
Saisissez de nouveau le mot de passe supersecret!.
-
Dans psql, exécutez la commande suivante pour créer et configurer l'extension de base de données :
CREATE EXTENSION pgaudit;
ALTER DATABASE orders SET pgaudit.log = 'read,write';
Activer la journalisation d'audit dans la console Cloud
Dans cette section, vous allez activer la journalisation d'audit dans la console Cloud.
- Dans la console Cloud, accédez au menu de navigation (
), puis cliquez sur IAM et administration > Journaux d'audit.
Remarque : Si un message s'affiche en haut de la page et indique you don't have permission to view inherited audit logs configuration data for one or more parent resources (vous ne disposez pas des autorisations nécessaires pour afficher les données de configuration des journaux d'audit héritées pour une ou plusieurs ressources parentes), vous pouvez l'ignorer et passer à l'étape suivante.
-
Dans la zone Filtrer sous Configuration des journaux d'audit des accès aux données, saisissez Cloud SQL, puis sélectionnez l'entrée dans la liste déroulante.
-
Cochez la case Cloud SQL à gauche, puis cochez les cases suivantes dans le Panneau d'informations à droite :
- Lecture administrateur
- Lecture de données
- Écriture de données
- Cliquez sur Enregistrer dans le Panneau d'informations.
Remplir une base de données sur Cloud SQL pour PostgreSQL
Dans cette section, vous allez remplir la base de données orders avec les données qui vous ont été fournies.
-
Cliquez sur l'icône + dans la barre de titre Cloud Shell pour ouvrir un nouvel onglet dans Cloud Shell.
-
Dans le nouvel onglet, exécutez la commande suivante pour télécharger les scripts de données et de remplissage de la base de données :
export SOURCE_BUCKET=gs://spls/gsp920
gsutil -m cp ${SOURCE_BUCKET}/create_orders_db.sql .
gsutil -m cp ${SOURCE_BUCKET}/DDL/distribution_centers_data.csv .
gsutil -m cp ${SOURCE_BUCKET}/DDL/inventory_items_data.csv .
gsutil -m cp ${SOURCE_BUCKET}/DDL/order_items_data.csv .
gsutil -m cp ${SOURCE_BUCKET}/DDL/products_data.csv .
gsutil -m cp ${SOURCE_BUCKET}/DDL/users_data.csv .
- Dans le nouvel onglet, exécutez la commande suivante pour créer et remplir la base de données :
export CLOUDSQL_INSTANCE=postgres-orders
export POSTGRESQL_IP=$(gcloud sql instances describe $CLOUDSQL_INSTANCE --format="value(ipAddresses[0].ipAddress)")
export PGPASSWORD=supersecret!
psql "sslmode=disable user=postgres hostaddr=${POSTGRESQL_IP}" \
-c "\i create_orders_db.sql"
- Quittez la session de terminal dans le nouvel onglet :
exit
- Revenez à votre session psql dans l'onglet Cloud Shell d'origine, puis exécutez la commande suivante pour enregistrer toutes les opérations
SELECT sur une relation spécifique (telle que la table order_items) :
CREATE ROLE auditor WITH NOLOGIN;
ALTER DATABASE orders SET pgaudit.role = 'auditor';
GRANT SELECT ON order_items TO auditor;
- Exécutez la première requête
SELECT ci-dessous :
SELECT
users.id AS users_id,
users.first_name AS users_first_name,
users.last_name AS users_last_name,
COUNT(DISTINCT order_items.order_id ) AS order_items_order_count,
COALESCE(SUM(order_items.sale_price ), 0) AS order_items_total_revenue
FROM order_items
LEFT JOIN users ON order_items.user_id = users.id
GROUP BY 1, 2, 3
ORDER BY 4 DESC
LIMIT 500;
SELECT
products.id AS products_id,
products.name AS products_name,
products.sku AS products_sku,
products.cost AS products_cost,
products.retail_price AS products_retail_price,
products.distribution_center_id AS products_distribution_center_id,
COUNT(DISTINCT order_items.order_id ) AS order_items_order_count,
COALESCE(SUM(order_items.sale_price ), 0) AS order_items_total_revenue
FROM order_items
LEFT JOIN inventory_items ON order_items.inventory_item_id = inventory_items.id
LEFT JOIN products ON inventory_items.product_id = products.id
GROUP BY 1, 2, 3, 4, 5, 6
ORDER BY 7 DESC
LIMIT 500;
SELECT
order_items.order_id AS order_id,
distribution_centers.id AS distribution_centers_id,
distribution_centers.name AS distribution_centers_name,
distribution_centers.latitude AS distribution_centers_latitude,
distribution_centers.longitude AS distribution_centers_longitude
FROM order_items
LEFT JOIN inventory_items ON order_items.inventory_item_id = inventory_items.id
LEFT JOIN products ON inventory_items.product_id = products.id
LEFT JOIN distribution_centers ON products.distribution_center_id = distribution_centers.id
GROUP BY 1, 2, 3, 4, 5
ORDER BY 2
LIMIT 500;
-
Le résultat comporte 500 lignes. Vous pouvez donc saisir q pour fermer les résultats et revenir à l'invite de commande orders=>.
-
Répétez les étapes 5 et 6 pour les deux autres onglets de requête du bloc de code.
-
Exécutez la commande suivante pour quitter psql :
\q
Afficher les journaux pgAudit
Au cours de cette étape, vous allez afficher la journalisation des mises à jour et des requêtes de votre base de données dans les journaux pgAudit.
-
Dans la console Cloud, accédez au menu de navigation (
), puis cliquez sur Afficher tous les produits. Sous Observabilité, cliquez sur Journalisation pour ouvrir la page Explorateur de journaux.
-
Dans l'onglet Requête de l'Explorateur de journaux, collez le code suivant, puis cliquez sur Exécuter la requête :
resource.type="cloudsql_database"
logName="projects/{{{project_0.project_id|(GCP Project)}}}/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry"
- Dans l'histogramme affiché, vous pouvez voir l'activité d'audit associée à vos insertions LDD et aux requêtes
SELECT que vous avez exécutées précédemment.

- Cliquez sur la dernière barre de l'histogramme, qui correspond aux requêtes
SELECT que vous avez exécutées.
Les entrées de journal sont listées dans le panneau Résultats de la requête sous l'histogramme.
- Développez une entrée de journal. La requête
SELECT s'affiche sous protoPayload.request.
Activer et configurer pgAudit sur une base de données Cloud SQL pour PostgreSQL
Tâche 3 : Configurer l'authentification IAM pour les bases de données Cloud SQL
Dans cette tâche, vous allez configurer l'authentification IAM pour les bases de données Cloud SQL. Pour toutes les tâches que vous avez effectuées jusqu'à présent pour l'accès aux bases de données et leur mise à jour, vous vous êtes servi de comptes utilisateur PostgreSQL intégrés. Vous pouvez également créer des utilisateurs Cloud SQL pour PostgreSQL à l'aide de comptes Cloud IAM. Les utilisateurs de base de données peuvent s'authentifier auprès de Cloud SQL à l'aide de Cloud IAM au lieu de se servir de comptes de base de données intégrés. Des autorisations précises au niveau de la base de données peuvent être accordées à ces utilisateurs.
Dans cette tâche, vous allez configurer le compte utilisateur de l'atelier en tant qu'utilisateur IAM Cloud SQL. Ensuite, vous allez accorder à cet utilisateur l'accès à la table de base de données orders.order_items à l'aide du compte administrateur postgres. Enfin, vous testerez l'accès à la table de base de données orders.order_items à partir de la ligne de commande en vous servant de l'utilitaire de ligne de commande psql.
Le processus d'authentification utilisé dans cette tâche est expliqué en détail dans la documentation sur l'authentification IAM pour Cloud SQL pour PostgreSQL.
Tester l'accès à la base de données à l'aide d'un utilisateur Cloud IAM avant de configurer l'authentification IAM pour Cloud SQL
Essayez d'accéder à la base de données à l'aide d'un utilisateur Cloud IAM avant que l'authentification IAM pour Cloud SQL n'ait été activée afin d'établir que l'utilisateur Cloud IAM ne peut pas accéder aux données au départ. Vous constaterez que cette tentative de connexion échoue, puis vous passerez à la section suivante pour résoudre le problème.
- Dans Cloud Shell, testez l'accès à la base de données
orders en utilisant le compte élève de l'atelier comme nom d'utilisateur :
export USERNAME=$(gcloud config list --format="value(core.account)")
export CLOUDSQL_INSTANCE=postgres-orders
export POSTGRESQL_IP=$(gcloud sql instances describe $CLOUDSQL_INSTANCE --format="value(ipAddresses[0].ipAddress)")
export PGPASSWORD=$(gcloud auth print-access-token)
psql --host=$POSTGRESQL_IP $USERNAME --dbname=orders
Cette tentative de connexion échoue et un message d'échec de l'authentification semblable à celui ci-dessous s'affiche, car l'utilisateur IAM Cloud SQL n'a pas encore été créé :
psql --host=$POSTGRESQL_IP $USERNAME --dbname=orders
psql: error: connection to server at "35.226.251.234", port 5432 failed: FATAL: password authentication failed for user "student-01-22fa974575e4@qwiklabs.net"
connection to server at "35.226.251.234", port 5432 failed: FATAL: password authentication failed for user "student-01-22fa974575e4@qwiklabs.net"
L'authentification IAM pour les bases de données Cloud SQL utilise des jetons d'accès OAuth 2.0 comme mot de passe utilisateur Cloud IAM. Ces jetons sont éphémères et ne sont valides que pendant une heure. Vous devez donc les régénérer chaque fois que vous avez besoin de vous authentifier. Le jeton d'accès doit toujours être transmis à la commande psql à l'aide de la variable d'environnement PGPASSWORD, car le tampon du paramètre de mot de passe de psql est trop petit pour contenir la chaîne du jeton OAuth 2.0.
Créer un utilisateur IAM Cloud SQL
Dans cette section, vous allez créer un utilisateur IAM Cloud SQL et vérifier que l'authentification des utilisateurs IAM Cloud SQL est activée.
-
Dans la console Cloud, accédez au menu de navigation (
), puis cliquez sur SQL.
-
Cliquez sur l'instance Cloud SQL nommée postgres-orders.
Dans le panneau Configuration à droite, notez que la liste Options et paramètres de base de données n'inclut que pgAudit.log et cloudsql.enable_pgaudit.
-
Dans le menu SQL (panneau de gauche), sous Instance principale, cliquez sur Utilisateurs pour ouvrir le panneau Utilisateurs.
-
Cliquez sur Ajouter un compte utilisateur.
-
Sélectionnez Cloud IAM.
-
Dans le champ Compte principal, saisissez le nom de l'élève de l'atelier : .
-
Cliquez sur Ajouter.
Attendez que le nouvel utilisateur soit ajouté.
Sur la page de présentation principale de l'instance, dans le panneau Configuration à droite, notez que cloudsql.iam_authentication a été ajouté à la liste Options et paramètres de base de données.
Accorder à l'utilisateur Cloud IAM l'accès à une table de base de données Cloud SQL
Vous allez maintenant vous connecter à l'instance postgres-orders à l'aide du compte administrateur postgres intégré et accorder l'accès à la table orders.order_items à l'utilisateur Cloud IAM.
- Sur la page de présentation principale de l'instance, dans la section Se connecter à cette instance, cliquez sur Ouvrir Cloud Shell.
Une commande permettant de se connecter à l'instance est automatiquement insérée dans Cloud Shell.
-
Exécutez cette commande telle quelle et saisissez le mot de passe supersecret! lorsque vous y êtes invité.
-
Saisissez la commande SQL suivante pour passer à la base de données orders :
\c orders
Lorsqu'un message vous demande un mot de passe, saisissez de nouveau supersecret!.
- Saisissez la commande SQL suivante pour accorder à l'utilisateur de l'atelier toutes les autorisations sur la table
order_items. Le nom d'utilisateur Cloud IAM pour l'atelier a été inséré dans cette requête pour vous.
GRANT ALL PRIVILEGES ON TABLE order_items TO "{{{user_0.username|[IAM Username]}}}";
\q
Tester l'accès à la base de données à l'aide d'un utilisateur Cloud IAM après avoir configuré l'authentification IAM pour Cloud SQL
Vous allez maintenant réessayer d'accéder à la base de données à l'aide d'un utilisateur Cloud IAM après l'activation de l'authentification IAM pour Cloud SQL afin de vérifier que l'utilisateur Cloud IAM peut désormais accéder aux données.
Vous pouvez à présent tester à nouveau l'accès à la base de données à l'aide de l'utilisateur Cloud IAM au lieu de l'utilisateur postgres intégré :
- Dans Cloud Shell, exécutez la commande suivante pour vous connecter à la base de données à l'aide de l'utilisateur de base de données Cloud IAM :
export PGPASSWORD=$(gcloud auth print-access-token)
psql --host=$POSTGRESQL_IP $USERNAME --dbname=orders
La connexion est établie. Vous êtes maintenant connecté à l'instance à l'aide de l'authentification de l'utilisateur Cloud IAM.
- Testez votre autorisation d'accès en exécutant la requête suivante :
SELECT COUNT(*) FROM order_items;
Le résultat positif suivant s'affiche :
orders=> SELECT COUNT(*) FROM order_items;
count
--------
198553
(1 row)
- Exécutez la requête suivante pour confirmer que vous n'avez pas accès à l'une des autres tables :
SELECT COUNT(*) FROM users;
Cette requête ne renvoie pas de résultat positif :
orders=> SELECT COUNT(*) FROM users;
ERROR: permission denied for table users
Configurer l'authentification IAM pour les bases de données Cloud SQL
Félicitations !
Dans cet atelier, vous avez sécurisé les données au repos dans Cloud SQL pour PostgreSQL à l'aide d'une clé de chiffrement gérée par le client, activé pgAudit et configuré l'authentification IAM des utilisateurs de bases de données Cloud SQL.
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 3 septembre 2025
Dernier test de l'atelier : 2 juillet 2025
Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.