Cette rubrique explique comment configurer les autorisations et les identifiants requis pour appeler l'API Cloud Asset Inventory.
Authentification
Pour pouvoir appeler l'API Cloud Asset Inventory, vous devez vous authentifier en tant qu'utilisateur final ou en tant que compte de service. Pour en savoir plus sur l'authentification, consultez la section Présentation de l'authentification.
Accorder les autorisations requises pour l'outil gcloud
Pour utiliser l'outil gcloud
afin d'accéder à l'API Cloud Asset Inventory, vous devez accorder les autorisations nécessaires sur le parent de la ressource cible, qui peut être une organisation, un projet ou un dossier. Vous devez spécifier ce parent dans le champ parent
de vos requêtes API.
Si votre compte dispose du rôle Propriétaire d'éléments Cloud (roles/cloudasset.owner
) ou du rôle de base Propriétaire (roles/owner
) sur le parent de la ressource, il dispose des autorisations suffisantes pour appeler l'API Cloud Asset Inventory et vous pouvez passer directement à la section Télécharger les identifiants. Pour en savoir plus sur les rôles Cloud Asset Inventory, consultez la section Rôles.
Attribuer des rôles
Pour attribuer un rôle à un compte, exécutez la procédure suivante avec l'outil de ligne de commande gcloud
. Découvrez comment installer et initialiser l'outil gcloud
.
Compte utilisateur
Pour attribuer les rôles nécessaires à un compte utilisateur, procédez comme suit :
Pour vous connecter avec votre compte utilisateur, exécutez la commande suivante.
gcloud auth login USER_ACCOUNT_EMAIL
Attribuez à votre compte utilisateur le rôle Lecteur d'éléments Cloud (
roles/cloudasset.viewer
) ou le rôle Propriétaire d'éléments Cloud (roles/cloudasset.owner
) sur la ressource racine (parente). Il peut s'agir du projet dans lequel l'API Cloud Asset Inventory est activée.Pour attribuer le rôle Lecteur d'éléments Cloud à votre compte utilisateur, exécutez la commande suivante.
gcloud projects add-iam-policy-binding TARGET_PROJECT_ID \ --member user:USER_ACCOUNT_EMAIL \ --role roles/cloudasset.viewer
Vous pouvez ajouter l'option
--billing-project
à la commandegcloud asset
pour spécifier le projet de facturation dans lequel l'API Cloud Asset Inventory est activée.--billing-project PROJECT_ID
Si vous spécifiez cette option, votre compte doit disposer de l'autorisation
serviceusage.services.use
sur le projetPROJECT_ID
. Consultez la section Comprendre les rôles pour obtenir la liste des rôles prédéfinis qui incluent cette autorisation.
Compte de service
Pour attribuer les rôles nécessaires à un compte de service, procédez comme suit : Pour en savoir plus sur les comptes de service, consultez la section Créer et gérer les comptes de service.
Pour créer un compte de service, exécutez la commande suivante. Si vous possédez déjà un compte de service dans un projet pour lequel l'API Cloud Asset Inventory est activée, vous pouvez ignorer cette étape.
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \ --display-name "SERVICE_ACCOUNT_DISPLAY_NAME"
Attribuez à votre compte de service le rôle Lecteur d'éléments Cloud (
roles/cloudasset.viewer
) ou le rôle Propriétaire d'éléments Cloud (roles/cloudasset.owner
) sur la ressource racine (parente). Ce projet peut être le même que celui où l'API Cloud Asset Inventory est activée.Pour attribuer le rôle Lecteur d'éléments Cloud à votre compte de service, exécutez la commande suivante.
gcloud projects add-iam-policy-binding TARGET_PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role roles/cloudasset.viewer
Pour créer une clé privée pour votre compte de service, exécutez la commande suivante.
gcloud iam service-accounts keys create YOUR_FILE_PATH/key.json \ --iam-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Pour activer votre compte de service à utiliser avec l'outil
gcloud
, exécutez la commande suivante.gcloud auth activate-service-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --key-file=YOUR_FILE_PATH/key.json
Télécharger les identifiants JSON
Pour accéder à l'API Cloud Asset Inventory sans l'outil gcloud
, vous avez besoin d'un fichier d'identifiants JSON. Pour télécharger le fichier, procédez comme suit :
Accédez à la page Identifiants de Cloud Console.
Sélectionnez + Créer des identifiants, puis sélectionnez ID client OAuth.
Si vous créez un ID client pour un nouveau projet, vous devez configurer l'écran d'autorisation OAuth. Cloud Console affiche l'écran d'autorisation chaque fois qu'une application utilisant votre ID client demande l'accès à des données privées.
Pour configurer l'écran d'autorisation, procédez comme suit :
Sélectionnez Configurer l'écran d'autorisation, puis saisissez les informations requises.
Enregistrez les modifications.
Sur la page Créer un ID client, sous Type d'application, sélectionnez le type approprié. Pour en savoir plus sur les types de clients, consultez la page Configurer OAuth 2.0.
Saisissez un nom pour les identifiants, puis cliquez sur Créer.
Dans la boîte de dialogue qui s'affiche, vérifiez que l'ID client et le code secret du client sont corrects, puis fermez la boîte de dialogue.
Pour enregistrer votre nouveau fichier JSON d'ID client, cliquez sur
.Renommez et déplacez le fichier JSON téléchargé de sorte que le chemin d'accès soit
~/credentials.json
.
Vérifier la configuration des identifiants
Pour vérifier que vous avez configuré vos identifiants correctement, exécutez la commande suivante.
oauth2l header --json ~/credentials.json cloud-platform
Un résultat semblable aux lignes suivantes doit s'afficher :
Authorization: Bearer y29.xxxxxxx
Définir un alias d'interface système
Il peut être utile de définir un alias d'interface système pour appeler les API REST Google Cloud.
Pour définir un alias gcurl
afin d'appeler les API REST Google Cloud, exécutez la commande suivante :
alias gcurl='curl -H "$(oauth2l header --json ~/credentials.json
cloud-platform)" -H "Content-Type: application/json" '