Cette page explique comment accéder à une version de secret. L'accès à une version de secret renvoie le contenu du secret et des métadonnées supplémentaires sur cette version du secret. Pour accéder à une version de secret à l'aide de la Google Cloud CLI ou de l'API Secret Manager, vous devez spécifier son ID de version ou son alias, le cas échéant. Vous pouvez également accéder à la dernière version d'un secret en spécifiant latest
en tant qu'ID de version.
Rôles requis
Pour obtenir les autorisations nécessaires pour accéder à une version de secret, demandez à votre administrateur de vous accorder le rôle IAM Accès aux secrets du Gestionnaire de secrets (roles/secretmanager.secretAccessor
) sur un secret.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Accéder à une version de secret
Pour modifier un secret, utilisez l'une des méthodes suivantes:
Console
-
Accédez à la page Secret Manager dans la console Google Cloud.
-
Sur la page Secret Manager, cliquez sur l'onglet Secrets régionaux, puis sur un secret pour accéder à ses versions.
-
Sur la page d'informations détaillées sur le secret, dans l'onglet Versions, sélectionnez la version du secret à laquelle vous souhaitez accéder.
-
Cliquez sur le menu
Actions associé à la version du secret, puis sur Afficher la valeur du secret. -
Une boîte de dialogue s'affiche, indiquant la valeur de la version du secret. Cliquez sur OK pour quitter la boîte de dialogue.
gcloud
Accéder à une version de secret
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- VERSION_ID: nom de la ressource de la version du secret
- SECRET_ID: ID du secret ou identifiant complet du secret
- LOCATION: emplacement Google Cloud du secret
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION
Accéder à une version de secret binaire
Pour écrire des octets bruts dans un fichier, utilisez l'option --out-file:
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- VERSION_ID: ID de la version du secret
- SECRET_ID: ID du secret ou identifiant complet du secret
- LOCATION: emplacement Google Cloud du secret
- PATH_TO_SECRET: chemin d'accès complet (y compris le nom de fichier) où vous souhaitez enregistrer la valeur secrète récupérée
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --out-file="PATH_TO_SECRET"
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --out-file="PATH_TO_SECRET"
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --out-file="PATH_TO_SECRET"
Obtenir les octets bruts
Pour obtenir des octets bruts, indiquez à Cloud SDK d'afficher la réponse en base64 et de la décoder:
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- VERSION_ID: ID de la version du secret
- SECRET_ID: ID du secret ou identifiant complet du secret
- LOCATION: emplacement Google Cloud du secret
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --location=LOCATION --format='get(payload.data)' | tr '_-' '/+' | base64 -d
La réponse contient la version du secret.
REST
Accéder à une version de secret
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION: emplacement Google Cloud du secret
- PROJECT_ID : ID de projet Google Cloud
- SECRET_ID: ID du secret ou identifiant complet du secret
- VERSION_ID: ID de la version du secret
Méthode HTTP et URL :
GET https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:access
Corps JSON de la requête :
{}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:access"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:access" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID", "payload": { "data": "c2VDcjN0Cg==", "dataCrc32c": "3131222104" } }
Extraire le secret à l'aide de l'outil jq
La réponse payload.data
est le contenu encodé en base64 de la version du secret.
La commande suivante est un exemple d'extraction du secret à l'aide de l'outil jq
.
$ curl "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
| jq -r ".payload.data" | base64 --decode
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go et installez le SDK Secret Manager pour Go. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Secret Manager pour Java. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Secret Manager pour Node.js. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python et installez le SDK Secret Manager pour Python. Sur Compute Engine ou GKE, vous devez vous authentifier avec le champ d'application cloud-platform.
Cohérence des ressources
Dans Secret Manager, ajouter une version de secret, puis accéder immédiatement à cette version par numéro de version est une opération à cohérence forte.
Les autres opérations effectuées dans Secret Manager sont cohérentes à terme. Les opérations cohérentes à terme convergent généralement en quelques minutes, mais peuvent demander quelques heures.
La propagation des autorisations IAM est cohérente à terme. Cela signifie que l'octroi ou la révocation de l'accès aux secrets peut ne pas prendre effet immédiatement. Pour en savoir plus, consultez la page Propagation des modifications d'accès.
Étape suivante
- Attribuer un alias à une version de secret régionale
- Désactiver une version de secret régionale
- Détruire une version de secret régional