Cette page explique comment créer, désactiver et supprimer des clés HMAC (Hash-based Message Authentication Code) associées à des comptes de service dans votre projet.
Avant de commencer
Avant d'utiliser cette fonctionnalité dans Cloud Storage, vous devez satisfaire les exigences suivantes :
disposer des autorisations nécessaires pour utiliser des clés HMAC dans le projet souhaité :
Si vous êtes le propriétaire du projet, vous possédez probablement les autorisations nécessaires.
Vous devez disposer des autorisations IAM portant le préfixe
storage.hmacKeys
pour le projet. Consultez la page Utiliser des autorisations Cloud IAM pour savoir comment obtenir un rôle doté de ces autorisations, par exemple Administrateur de clé HMAC pour le stockage.
Vous devez disposer d'un compte de service dans le projet pour lequel vous voulez créer des clés HMAC. Si vous n'en avez pas, consultez la section Créer un compte de service.
Vous devez désactiver la contrainte
restrictAuthTypes
pour l'authentification par clé HMAC. Pour savoir comment vérifier et désactiver la contrainte, consultez la page Créer et gérer des règles d'administration.
Créer une clé HMAC
Pour créer une clé HMAC pour un compte de service, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Cloud Storage.
Sélectionnez l'onglet Interopérabilité.
Cliquez sur add_box Créer une clé pour un compte de service.
Sélectionnez le compte de service auquel vous voulez associer la clé HMAC.
Cliquez sur Créer une clé.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Exécutez la commande hmac create
:
gcloud storage hmac create SERVICE_ACCOUNT_EMAIL
Où SERVICE_ACCOUNT_EMAIL
correspond à l'adresse e-mail associée à votre compte de service. Exemple : service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Si la commande aboutit, la réponse contient une ressource de clé HMAC, y compris les valeurs de accessId
et de secret
.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Terraform
Vous pouvez utiliser une ressource Terraform pour créer une clé HMAC. Cet exemple inclut également une ressource permettant de créer un compte de service.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Utilisez
cURL
pour appeler l'API JSON avec une requêtePOST
hmacKeys :curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys?serviceAccountEmail=SERVICE_ACCOUNT_EMAIL"
Où :
PROJECT_IDENTIFIER
correspond à l'ID ou au numéro du projet associé à la clé que vous souhaitez créer. Exemple :my-pet-project
.SERVICE_ACCOUNT_EMAIL
correspond à l'adresse e-mail associée à votre compte de service. Exemple :service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
API XML
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Utilisez
cURL
pour appeler l'API XML avec une requêtePOST
HMAC Key:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=CreateAccessKey&UserName=SERVICE_ACCOUNT_EMAIL"
Où
SERVICE_ACCOUNT_EMAIL
correspond à l'adresse e-mail associée à votre compte de service. Exemple :service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Obtenir des informations sur les clés HMAC
Pour répertorier les clés HMAC d'un projet et obtenir des informations les concernant, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Cloud Storage.
Sélectionnez l'onglet Interopérabilité.
Les comptes de service auxquels des clés HMAC sont associées apparaissent dans la sous-section Clés d'accès pour les comptes de service de la section HMAC de compte de service.
Cliquez sur le nom d'un compte de service spécifique pour afficher les clés HMAC qui lui sont associées et l'état de ces clés.
Ligne de commande
Exécutez la commande
hmac list
pour répertorier les clés HMAC de votre projet :gcloud storage hmac list
Si l'opération réussit, la commande renvoie une liste d'ID d'accès des clés HMAC, ainsi que l'état de chaque clé et le compte de service associé à chaque clé.
Exécutez la commande
hmac describe
pour récupérer les métadonnées d'une clé spécifique :gcloud storage hmac describe KEY_ACCESS_ID
Où
KEY_ACCESS_ID
correspond à l'ID d'accès de la clé souhaitée.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant récupère la liste des clés HMAC associées à un projet :
L'exemple suivant récupère des informations sur une clé HMAC spécifique :
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant récupère la liste des clés HMAC associées à un projet :
L'exemple suivant récupère des informations sur une clé HMAC spécifique :
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant récupère la liste des clés HMAC associées à un projet :
L'exemple suivant récupère des informations sur une clé HMAC spécifique :
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant récupère la liste des clés HMAC associées à un projet :
L'exemple suivant récupère des informations sur une clé HMAC spécifique :
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant récupère la liste des clés HMAC associées à un projet :
L'exemple suivant récupère des informations sur une clé HMAC spécifique :
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant récupère la liste des clés HMAC associées à un projet :
L'exemple suivant récupère des informations sur une clé HMAC spécifique :
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant récupère la liste des clés HMAC associées à un projet :
L'exemple suivant récupère des informations sur une clé HMAC spécifique :
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant récupère la liste des clés HMAC associées à un projet :
L'exemple suivant récupère des informations sur une clé HMAC spécifique :
API REST
API JSON
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Utilisez
cURL
pour appeler l'API JSON avec une requêteLIST
hmacKeys:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys"
Où
PROJECT_IDENTIFIER
correspond à l'ID ou au numéro du projet associé aux clés que vous souhaitez lister. Exemple :my-pet-project
.
API XML
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Utilisez
cURL
pour appeler l'API XML avec une requêteGET
HMAC Key:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=ListAccessKeys&UserName=SERVICE_ACCOUNT_EMAIL"
Où
SERVICE_ACCOUNT_EMAIL
correspond à l'adresse e-mail associée à votre compte de service. Exemple :service-7550275089395@my-pet-project.iam.gserviceaccount.com
.
Mettre à jour l'état d'une clé HMAC
Pour désactiver une clé HMAC active et inversement, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Cloud Storage.
Sélectionnez l'onglet Interopérabilité.
Dans la sous-section Clés d'accès pour les comptes de service, cliquez sur le nom du compte de service associé à la clé HMAC dont vous souhaitez mettre à jour l'état.
Cliquez sur l'état de la clé que vous souhaitez mettre à jour.
Si vous passez l'état de la clé de "Inactif" à "Actif", cliquez sur Désactiver dans la fenêtre qui s'affiche.
Si vous passez l'état de la clé de "Actif" à "Inactif", aucune étape supplémentaire n'est requise.
Ligne de commande
Exécutez la commande hmac update
:
gcloud storage hmac update ACCESS_KEY_ID STATE
Où :
ACCESS_KEY_ID
correspond à l'ID d'accès associé à la clé que vous mettez à jour.STATE
correspond à--activate
ou--deactivate
.
Si l'opération réussit, la commande renvoie les métadonnées mises à jour de la clé HMAC.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant désactive une clé HMAC :
L'exemple suivant active une clé HMAC :
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant désactive une clé HMAC :
L'exemple suivant active une clé HMAC :
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant désactive une clé HMAC :
L'exemple suivant active une clé HMAC :
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant désactive une clé HMAC :
L'exemple suivant active une clé HMAC :
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant désactive une clé HMAC :
L'exemple suivant active une clé HMAC :
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant désactive une clé HMAC :
L'exemple suivant active une clé HMAC :
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant désactive une clé HMAC :
L'exemple suivant active une clé HMAC :
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
L'exemple suivant désactive une clé HMAC :
L'exemple suivant active une clé HMAC :
API REST
API JSON
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Créez un fichier JSON contenant les informations suivantes :
{"state": "STATE"}
Où
STATE
correspond à l' état souhaité de la clé. Par exemple,INACTIVE
.Exécutez
cURL
pour appeler l'API JSON avec une requêtePUT
hmacKeys :curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
Où :
JSON_FILE_NAME
correspond au chemin d'accès au fichier que vous avez créé à l'étape 2.PROJECT_IDENTIFIER
correspond à l'ID ou au numéro du projet associé à la clé que vous souhaitez mettre à jour. Exemple :my-pet-project
.ACCESS_KEY_ID
correspond à l'ID d'accès associé à la clé que vous mettez à jour.
API XML
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Utilisez
cURL
pour appeler l'API XML avec une requêtePOST
HMAC Key:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=UpdateAccessKey&AccessKeyId=ACCESS_KEY_ID&Status=STATUS"
Où :
ACCESS_KEY_ID
correspond à l'ID d'accès associé à la clé que vous mettez à jour.STATUS
correspond à l'état souhaité de la clé. Exemple :Inactive
.
Lorsque vous modifiez l'état d'une clé HMAC, la propagation du changement d'état dans le système Cloud Storage prend jusqu'à trois minutes. Pour cette raison, vous devez attendre au moins trois minutes après la désactivation d'une clé HMAC avant de la supprimer.
Supprimer une clé HMAC
Pour que vous puissiez supprimer une clé HMAC, elle doit être inactive. Pour supprimer une clé HMAC inactive, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Cloud Storage.
Sélectionnez l'onglet Interopérabilité.
Dans la sous-section Clés d'accès pour les comptes de service, cliquez sur le nom du compte de service associé à la clé HMAC que vous souhaitez supprimer.
Cliquez sur l'icône Corbeille associée à la clé à supprimer.
Dans la boîte de dialogue qui s'affiche, saisissez les 10 premiers caractères de l'ID de clé d'accès tel qu'il apparaît dans la fenêtre.
Cliquez sur Supprimer.
Ligne de commande
Exécutez la commande hmac delete
:
gcloud storage hmac delete ACCESS_KEY_ID
Où ACCESS_KEY_ID
correspond à l'ID d'accès associé à la clé que vous supprimez.
Si l'opération réussit, la commande ne renvoie pas de réponse.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Utilisez
cURL
pour appeler l'API JSON avec une requêteDELETE
hmacKeys:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
Où :
PROJECT_IDENTIFIER
correspond à l'ID ou au numéro du projet associé à la clé que vous souhaitez supprimer. Exemple :my-pet-project
.ACCESS_KEY_ID
correspond à l'ID d'accès associé à la clé que vous supprimez.
API XML
Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête
Authorization
.Utilisez
cURL
pour appeler l'API XML avec une requêtePOST
HMAC Key:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=DeleteAccessKey&AccessKeyId=ACCESS_KEY_ID"
Où
ACCESS_KEY_ID
correspond à l'ID d'accès associé à la clé que vous supprimez.
Étapes suivantes
- Suivez les consignes concernant le passage des clés HMAC de compte utilisateur aux clés HMAC de compte de service.
- Utilisez une clé HMAC dans une requête authentifiée.