Autoriser l'agent

Ce guide explique comment installer des identifiants de clé privée pour un compte de service sur une instance de VM afin d'autoriser l'agent Logging. Avant d'installer l'agent, vérifiez que l'instance de VM possède les identifiants dont il a besoin. L'agent doit être autorisé à envoyer des informations à Logging. L'autorisation est accordée d'après les identifiants de compte de service stockés sur l'instance de VM et servant d'identifiants par défaut de l'application pour l'agent.

Avant de commencer

Lisez ce guide si l'un des cas suivants s'applique à vous :

  • Si vous exécutez des instances Compute Engine très anciennes ou des instances Compute Engine créées sans les identifiants par défaut, vous devez suivre la procédure décrite dans ce guide avant d'installer l'agent. Ces VM peuvent ne pas posséder les identifiants de clé privée requis. Pour valider vos identifiants, exécutez les procédures décrites à la section Valider les identifiants Compute Engine. Sur les nouvelles instances de VM Compute Engine, le compte de service par défaut de votre instance dispose des identifiants requis par l'agent.

  • Si vous exécutez des instances de VM AWS EC2, vous devez suivre la procédure décrite dans ce guide avant d'installer l'agent. L'instance de VM Amazon EC2 ne dispose pas du compte de service requis. À la place, vous devez obtenir manuellement les identifiants de clé privée à partir d'un compte de service du projet de connecteur AWS. Si vous pensez que votre instance dispose déjà des identifiants de clé privée, exécutez les procédures décrites à la section Valider les identifiants de clé privée. Pour ajouter des identifiants de clé privée, passez directement à la section Ajouter des identifiants.

Vous pouvez vérifier le champ d'application de vos autorisations sur Compute Engine à l'aide de la commande suivante :

curl --silent --connect-timeout 1 -f -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/scopes

Recherchez dans le résultat le champ d'application d'une ou de plusieurs des autorisations suivantes :

https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/logging.admin
https://www.googleapis.com/auth/cloud-platform

Ajouter des identifiants

L'autorisation fait référence au processus permettant de déterminer les autorisations dont dispose un client authentifié sur un ensemble de ressources.

L'autorisation de l'agent Logging sur une instance de VM implique les étapes suivantes :

  1. Créer un compte de service avec les privilèges et les identifiants de clé privée requis dans le projet Google Cloud associé à votre instance de VM.

    Pour les instances de VM Amazon EC2, il s'agit du projet AWS Link créé lorsque vous connectez votre compte AWS.

  2. Copier les identifiants de clé privée sur votre instance de VM, où ils serviront d'identifiants par défaut de l'application pour les logiciels exécutés sur votre instance.

  3. Installer ou redémarrer l'agent.

Créer un compte de service

L'authentification fait référence au processus permettant de déterminer l'identité d'un client. Pour l'authentification, nous vous recommandons d'utiliser un compte de service, c'est-à-dire un compte Google associé à votre projet Google Cloud, plutôt qu'un utilisateur spécifique. Vous pouvez utiliser des comptes de service pour l'authentification, peu importe où le code s'exécute (sur Compute Engine, sur App Engine ou sur site). Pour plus d'informations, consultez la page Présentation de l'authentification.

Pour créer un compte de service, exécutez les procédures décrites à la section Créer un compte de service avec les informations suivantes :

  • Sélectionnez le projet Google Cloud dans lequel vous souhaitez créer le compte de service.

    • Pour les instances Compute Engine, sélectionnez le projet dans lequel vous avez créé l'instance. S'il s'agit du projet d'hébergement de l'espace de travail, sélectionnez l'espace de travail.

    • Pour les instances Amazon EC2, sélectionnez le projet de connecteur AWS créé lors de la connexion de votre compte AWS à l'agent Logging. Le nom du projet de connecteur commence généralement par AWS Link. Ne créez pas votre compte de service dans le projet d'espace de travail.

  • Dans le menu déroulant Rôle, sélectionnez les rôles suivants :

    • Logging > Logs Writer (Logging > Rédacteur de journaux). Cela permet à l'agent Logging d'ingérer des journaux.
    • Monitoring > Monitoring Metric Writer (Monitoring > Rédacteur de métriques de surveillance). Cela permet à l'agent Logging d'ingérer ses propres métriques d'état.
  • Lors de la création de la clé, sélectionnez JSON comme type de clé.

Pour plus de commodité, vous pouvez créer la variable CREDS pour pointer vers le fichier d'identifiants de votre poste de travail. Exemple :

    CREDS="~/Downloads/[PROJECT-NAME]-[KEY-ID].json"

Il est fait référence à cette variable dans la suite de ces procédures.

Copier la clé privée sur l'instance

Après avoir créé le compte de service, vous devez copier le fichier de clé privée dans l'un des emplacements suivants de votre instance de VM afin que l'agent puisse reconnaître les identifiants. Vous pouvez utiliser n'importe quel outil de copie de fichier.

  • Linux uniquement : /etc/google/auth/application_default_credentials.json

  • Windows uniquement : C:\ProgramData\Google\Auth\application_default_credentials.json

  • Linux et Windows : n'importe quel emplacement stocké dans la variable GOOGLE_APPLICATION_CREDENTIALS, laquelle doit être visible par le processus de l'agent

Dans les instructions de copie de fichier suivantes, nous supposons que vous disposez d'un environnement Linux sur votre poste de travail et sur votre instance. Si vous utilisez un environnement différent, consultez la documentation de votre fournisseur cloud pour savoir comment copier le fichier de clé privée. À l'étape précédente (Créer un compte de service), vos identifiants de clé privée doivent avoir été stockés sur votre poste de travail, à un emplacement que vous avez enregistré dans la variable CREDS :

Compute Engine

Sur votre poste de travail, utilisez l'outil de ligne de commande gcloud. Les informations [YOUR-INSTANCE-NAME] et [YOUR-INSTANCE-ZONE] sont disponibles sur la page Instances de VM de Google Cloud Console :

REMOTE_USER="$USER"
INSTANCE="[YOUR-INSTANCE-NAME]"
ZONE="[YOUR-INSTANCE-ZONE]"
gcloud compute scp "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json" --zone "$ZONE"

Sur votre instance Compute Engine, exécutez les commandes suivantes :

GOOGLE_APPLICATION_CREDENTIALS="/etc/google/auth/application_default_credentials.json"
sudo mkdir -p /etc/google/auth
sudo mv "$HOME/temp.json" "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chown root:root "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chmod 0400 "$GOOGLE_APPLICATION_CREDENTIALS"

Amazon EC2

Sur votre poste de travail, utilisez scp :

KEY="[YOUR-SSH-KEY-PAIR-FILE]"
INSTANCE="ec2-[YOUR-INSTANCE'S-PUBLIC-ID.[YOUR-ZONE].compute.amazonaws.com"
# The remote user depends on the installed OS: ec2-user, ubuntu, root, etc.
REMOTE_USER="ec2-user"
scp -i "$KEY" "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json"

Sur votre instance EC2, exécutez ces commandes :

GOOGLE_APPLICATION_CREDENTIALS="/etc/google/auth/application_default_credentials.json"
sudo mkdir -p /etc/google/auth
sudo mv "$HOME/temp.json" "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chown root:root "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chmod 0400 "$GOOGLE_APPLICATION_CREDENTIALS"

Étapes suivantes

L'instance de VM contient désormais les identifiants dont l'agent a besoin.

  • Si vous n'avez pas encore installé l'agent, accédez à la page d'installation et installez-le. Consultez la page Installer l'agent pour connaître la marche à suivre.

  • Si vous l'avez déjà installé, redémarrez-le pour pouvoir utiliser les nouveaux identifiants. Consultez la section Redémarrer l'agent pour connaître la marche à suivre.

  • Si vous souhaitez vérifier les identifiants, consultez la section Vérifier les identifiants de clé privée.