Autoriser les requêtes sur Google Compute Engine

Si vous utilisez l'API Compute Engine pour gérer vos ressources Compute Engine, vous pouvez authentifier vos applications sur l'API en obtenant des identifiants depuis un compte de service Compute Engine. Les comptes de service permettent à votre application de s'authentifier auprès de l'API sans intégrer de clé secrète dans son code.

Les comptes de service sont recommandés dans la plupart des situations où votre application doit autoriser les requêtes à l'API. Toutefois, si vous créez des outils de développement ou d'administration dans lesquels les utilisateurs vous accordent l'accès à leurs ressources Google Cloud, utilisez plutôt un flux d'autorisations utilisateur.

Le moyen le plus simple d'obtenir des identifiants à partir d'un compte de service consiste à utiliser une bibliothèque cliente Compute Engine et les identifiants par défaut de l'application. Ces packages permettent à votre application d'obtenir des identifiants de l'une des nombreuses sources disponibles, en fonction de l'environnement d'exécution de l'application.

Applications exécutées sur des instances Compute Engine

Si vous exécutez des applications sur vos instances Compute Engine, les identifiants par défaut de l'application peuvent vous permettre d'obtenir des identifiants via des comptes de service intégrés. Consultez la page Créer et activer des comptes de service pour les instances pour configurer vos instances avec ces comptes de service intégrés, et exécuter votre application sur une instance Compute Engine.

Applications exécutées en dehors de Google Cloud Platform

Si vous exécutez des applications sur des systèmes en dehors de Google Cloud Platform, celles-ci peuvent utiliser les identifiants par défaut de l'application afin d'obtenir des identifiants à partir des variables d'environnement de ces systèmes. Consultez la section relative au fonctionnement des identifiants par défaut de l'application pour configurer vos variables d'environnement avec les identifiants nécessaires.

Applications en cours de développement

Pendant que vous développez vos applications en local, vous pouvez utiliser les informations de la commande auth application-default login dans l'outil gcloud, afin d'obtenir des identifiants utilisateur temporaires pour votre application. Cette commande est utile lorsque vous développez du code qui utiliserait normalement un compte de service, mais que vous devez l'exécuter dans un environnement de développement local. Il est alors plus facile de fournir les identifiants utilisateur. Les identifiants s'appliqueront à tous les appels d'API utilisant la bibliothèque cliente des identifiants par défaut de l'application.

  1. Installez l’outil gcloud sur vos systèmes de développement.

  2. Spécifiez vos identifiants dans l'outil à l'aide de la commande gcloud auth application-default login.

L'application obtient alors les identifiants de l'outil. Vous pouvez ensuite déployer votre application sur des instances Compute Engine, dans lesquelles elle va obtenir automatiquement les identifiants des comptes de service intégrés. Vous pouvez également déployer votre application sur d'autres systèmes pour lesquels les identifiants sont spécifiés dans leurs variables d'environnement.

Exemple : s'authentifier à l'aide des identifiants par défaut de l'application

Cet exemple utilise la bibliothèque cliente Python pour s'authentifier et faire une requête à l'API Cloud Storage pour répertorier les buckets d'un projet. L'exemple utilise la procédure suivante :

  1. Obtenez les identifiants nécessaires pour l'API Cloud Storage, et initialisez le service Cloud Storage à l'aide de la méthode build() et des identifiants.
  2. Répertoriez les buckets dans Cloud Storage.

Vous pouvez exécuter cet exemple sur une instance ayant accès à la gestion des buckets dans Google Cloud Storage, sur votre machine locale après avoir exécuté la commande gcloud auth application-default login, ou après avoir défini une variable d'environnement pour qu'elle utilise les identifiants par défaut de l'application.

import argparse

import googleapiclient.discovery

def create_service():
    # Construct the service object for interacting with the Cloud Storage API -
    # the 'storage' service, at version 'v1'.
    # Authentication is provided by application default credentials.
    # When running locally, these are available after running
    # `gcloud auth application-default login`. When running on Compute
    # Engine, these are available from the environment.
    return googleapiclient.discovery.build('storage', 'v1')

def list_buckets(service, project_id):
    buckets = service.buckets().list(project=project_id).execute()
    return buckets

def main(project_id):
    service = create_service()
    buckets = list_buckets(service, project_id)
    print(buckets)

if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        description=__doc__,
        formatter_class=argparse.RawDescriptionHelpFormatter)
    parser.add_argument('project_id', help='Your Google Cloud Project ID.')

    args = parser.parse_args()

    main(args.project_id)

Obtenir l'accès aux ressources Google Cloud appartenant aux utilisateurs de votre application

Si vous créez des outils de développement ou d'administration dans lesquels les utilisateurs vous accordent l'accès à leurs ressources Google Cloud, obtenez une autorisation via un processus OAuth 2.0 de base. Pour que vous puissiez utiliser ce processus, vos utilisateurs doivent vous accorder l'accès à leurs informations via un flux d'autorisations utilisateur. Une fois l'accès accordé pour votre application, celle-ci peut afficher ou modifier les ressources Compute Engine dans le projet de chaque utilisateur.

Dans votre requête, spécifiez un champ d'application d'accès qui limite votre accès aux seules méthodes et informations utilisateur requises par votre application. Par exemple, spécifiez le champ d'application compute.readonly si votre application est censée afficher les ressources Compute Engine existantes, mais qu'elle ne crée ni ne modifie aucune ressource pour vos utilisateurs.

Champ d'application Signification
https://www.googleapis.com/auth/cloud-platform Accès complet à tous les services et ressources du projet Cloud Platform spécifié.
https://www.googleapis.com/auth/compute Accès en lecture-écriture aux méthodes Google Compute Engine.
https://www.googleapis.com/auth/compute.readonly Accès en lecture seule aux méthodes Google Compute Engine.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine