Ce document explique comment s'authentifier auprès de Cloud Storage de manière automatisée. La façon dont vous vous authentifiez auprès de Cloud Storage dépend de l'interface que vous utilisez pour accéder à l'API et de l'environnement dans lequel votre code s'exécute.
- Cette page traite de l'authentification basée sur les jetons OAuth 2.0. Les requêtes Cloud Storage effectuées via l'API XML sont compatibles avec l'utilisation de jetons OAuth 2.0 ou de signatures dans l'en-tête
Authorizationd'une requête. - Cette page traite de l'authentification qui utilise des clés RSA comme identifiants. Les requêtes Cloud Storage effectuées via l'API XML sont compatibles avec les clés RSA et les clés HMAC en tant qu'identifiants.
Pour en savoir plus sur l'authentification Google Cloud , consultez Méthodes d'authentification.
Accès API
Cloud Storage est compatible avec l'accès automatisé. Vous pouvez accéder à l'API des manières suivantes :
Bibliothèques clientes
Les bibliothèques clientes Cloud Storage offrent une compatibilité de langage de haut niveau avec l'authentification automatisée auprès de Cloud Storage. Pour authentifier les appels aux API Google Cloud , les bibliothèques clientes sont compatibles avec les ADC (Identifiants par défaut de l'application). Les bibliothèques recherchent des identifiants dans un ensemble d'emplacements définis et les utilisent pour authentifier les requêtes adressées à l'API. Le service Identifiants par défaut de l'application vous permet de mettre des identifiants à disposition de votre application dans divers environnements, tels que l'environnement de développement ou de production local, sans avoir à modifier le code de votre application.
Google Cloud CLI
Lorsque vous utilisez la gcloud CLI pour accéder à Cloud Storage, vous vous connectez à la gcloud CLI avec un compte utilisateur, qui fournit les identifiants utilisés par les commandes gcloud CLI.
Si les règles de sécurité de votre organisation empêchent les comptes utilisateur de disposer des autorisations requises, vous pouvez utiliser l'emprunt d'identité du compte de service.
Pour en savoir plus, consultez S'authentifier pour utiliser la gcloud CLI. Pour en savoir plus sur l'utilisation de la gcloud CLI avec Cloud Storage, consultez la documentation de référence de la gcloud CLI.
REST
Vous pouvez vous authentifier auprès des API Cloud Storage à l'aide de vos identifiants gcloud CLI ou en utilisant les identifiants par défaut de l'application. Pour en savoir plus sur l'authentification pour les requêtes REST, consultez S'authentifier pour utiliser REST. Pour en savoir plus sur les types d'identifiants, consultez la section sur les identifiants pour la gcloud CLI et les identifiants ADC.
Identifiants utilisateur et ADC pour Cloud Storage
Pour fournir des identifiants à ADC, vous pouvez utiliser la gcloud CLI afin d'insérer vos identifiants utilisateur dans un fichier d'identifiants. Ce fichier est placé sur votre système de fichiers local où ADC peut le trouver. ADC utilise ensuite les identifiants utilisateur fournis pour authentifier les requêtes. Cette méthode est souvent utilisée pour le développement local.
Si vous utilisez cette méthode, vous pouvez rencontrer une erreur d'authentification lorsque vous essayez de vous authentifier auprès de Cloud Storage. Pour en savoir plus sur cette erreur et savoir comment la résoudre, consultez la section Les identifiants utilisateur ne fonctionnent pas.
Configurer l'authentification pour Cloud Storage
La façon dont vous configurez l'authentification dépend de l'environnement dans lequel votre code s'exécute.
Les options de configuration d'authentification suivantes sont les plus couramment utilisées. Pour accéder à davantage d'options et pour en savoir plus sur l'authentification, consultez Méthodes d'authentification.
Pour un environnement de développement local
Vous pouvez configurer les identifiants pour un environnement de développement local des manières suivantes :
- Identifiants utilisateur pour les bibliothèques clientes ou les outils tiers
- Identifiants utilisateur pour les requêtes REST depuis la ligne de commande
- Emprunt d'identité d'un compte de service
Bibliothèques clientes ou outils tiers
Configurez les Identifiants par défaut de l'application dans votre environnement local :
-
Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :
gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Un écran de connexion s'affiche. Une fois que vous êtes connecté, vos identifiants sont stockés dans le fichier d'identifiants local utilisé par le service Identifiants par défaut de l'application.
Pour en savoir plus sur l'utilisation des Identifiants par défaut de l'application dans un environnement local, consultez Configurer les Identifiants par défaut de l'application pour un environnement de développement local.
Requêtes REST à partir de la ligne de commande
Lorsque vous effectuez une requête REST à partir de la ligne de commande, vous pouvez utiliser vos identifiants gcloud CLI en incluant gcloud auth print-access-token dans la commande qui envoie la requête.
L'exemple suivant liste les comptes de service du projet spécifié. Vous pouvez utiliser le même modèle pour n'importe quelle requête REST.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud .
Pour envoyer votre requête, développez l'une des options suivantes :
Pour en savoir plus sur l'authentification à l'aide de REST et gRPC, consultez la page S'authentifier pour utiliser REST. Pour en savoir plus sur la différence entre vos identifiants par défaut de l'application (ADC) locaux et vos identifiants gcloud CLI, consultez Configuration d'authentification sur gcloud CLI et configuration des ADC.
Emprunter l'identité d'un compte de service
Dans la plupart des cas, vous pouvez vous authentifier à partir d'un environnement de développement local à l'aide de vos identifiants utilisateur. Si cela n'est pas possible ou si vous devez tester les autorisations attribuées à un compte de service, vous pouvez emprunter l'identité d'un compte de service. Vous devez disposer de l'autorisation iam.serviceAccounts.getAccessToken, qui est incluse dans le rôle IAM Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator).
Vous pouvez configurer la gcloud CLI afin qu'elle utilise l'emprunt d'identité d'un compte de service à l'aide de la commande gcloud config set :
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Pour certains langages, vous pouvez emprunter l'identité d'un compte de service pour créer un fichier local Identifiants par défaut de l'application (fichier ADC) destiné aux bibliothèques clientes. Cette approche n'est possible qu'avec les bibliothèques clientes Go, Java, Node.js et Python. Elle n'est pas compatible avec les autres langages.
Pour configurer un fichier local Identifiants par défaut de l'application en empruntant l'identité d'un compte de service, utilisez le flag --impersonate-service-account avec la commande gcloud auth application-default login :
gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL
Pour plus d'informations sur l'emprunt de l'identité d'un compte de service, consultez Emprunter l'identité d'un compte de service.
Sur Google Cloud
Pour authentifier une charge de travail exécutée sur Google Cloud, vous devez utiliser les identifiants du compte de service associé à la ressource de calcul où votre code est exécuté, par exemple une instance de machine virtuelle (VM) Compute Engine. Cette approche est la méthode d'authentification recommandée pour le code exécuté sur une ressource de calcul Google Cloud .
Pour la plupart des services, vous devez associer le compte de service lorsque vous créez la ressource qui exécutera votre code. Vous ne pouvez pas ajouter ni remplacer le compte de service ultérieurement. Compute Engine fait exception, car il vous permet d'associer un compte de service à une instance de VM à tout moment.
Créez un compte de service à l'aide de la gcloud CLI et associez-le à votre ressource :
-
Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :
gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Configurez l'authentification :
-
Assurez-vous de disposer des rôles IAM "Créateur de compte de service" (
roles/iam.serviceAccountCreator) et "Administrateur IAM du projet" (roles/resourcemanager.projectIamAdmin). Découvrez comment attribuer des rôles. -
Créez le compte de service :
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Remplacez
SERVICE_ACCOUNT_NAMEpar le nom que vous souhaitez donner au compte de service. -
Pour accorder l'accès à votre projet et à vos ressources, attribuez un rôle au compte de service :
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Remplacez les éléments suivants :
SERVICE_ACCOUNT_NAME: nom du compte de service.PROJECT_ID: ID du projet dans lequel vous avez créé le compte de service.ROLE: rôle à accorder
- Pour attribuer un autre rôle au compte de service, exécutez la commande comme vous l'avez fait à l'étape précédente.
-
Attribuez le rôle requis au compte principal qui associera le compte de service à d'autres ressources.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Remplacez les éléments suivants :
SERVICE_ACCOUNT_NAME: nom du compte de service.PROJECT_ID: ID du projet dans lequel vous avez créé le compte de service.USER_EMAIL: adresse e-mail d'un compte Google
-
Assurez-vous de disposer des rôles IAM "Créateur de compte de service" (
-
Créez la ressource qui exécutera votre code et associez-lui le compte de service. Par exemple, si vous utilisez Compute Engine :
Créer une instance Compute Engine Configurez l'instance comme suit :- Remplacez
INSTANCE_NAMEpar le nom d'instance de votre choix. -
Définissez le flag
--zonesur la zone dans laquelle vous souhaitez créer votre instance. -
Définissez le flag
--service-accountsur l'adresse e-mail du compte de service que vous avez créé.
gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL
- Remplacez
Pour en savoir plus sur l'authentification auprès des API Google, consultez Méthodes d'authentification.
Sur site ou chez un autre fournisseur cloud
La méthode recommandée pour configurer l'authentification en dehors de Google Cloud consiste à utiliser la fédération d'identité de charge de travail. Pour en savoir plus, consultez Configurer les Identifiants par défaut de l'application pour un autre fournisseur de services cloud ou sur site dans la documentation sur l'authentification.
Contrôle des accès pour Cloud Storage
Après vous être authentifié auprès de Cloud Storage, vous devez être autorisé à accéder aux ressources Google Cloud . Cloud Storage utilise Identity and Access Management (IAM) pour l'autorisation.
Pour en savoir plus sur les rôles pour Cloud Storage, consultez Présentation du contrôle des accès. Pour en savoir plus sur IAM et les autorisations, consultez Présentation d'IAM.
Étapes suivantes
- En savoir plus sur les téléchargements via un navigateur utilisant l'authentification par cookie
- En savoir plus sur les champs d'application OAuth 2.0 de Cloud Storage
- Découvrez les cas d'utilisation des identifiants de compte utilisateur.
- Découvrez-en plus sur les méthodes d'authentificationGoogle Cloud .
- Consultez la liste des cas d'utilisation de l'authentification.