Autoriza a un agente

En esta guía, se explica cómo instalar credenciales de cuenta de servicio de clave privada en una instancia de VM para autorizar a los agentes de Stackdriver Logging y Monitoring.

Lee esta guía si te encuentras en alguna de las siguientes situaciones:

  • Necesitas instalar estas credenciales. Por ejemplo, si usas una instancia de VM de Amazon EC2.

  • Sospechas que las credenciales existentes en tu instancia de VM no son válidas y deseas reemplazarlas por algo que funcione.

Puedes verificar tus alcances de autorización en Compute Engine con el siguiente comando:

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

Busca uno o más de los siguientes alcances de autorización en el resultado:

  https://www.googleapis.com/auth/logging.write
  https://www.googleapis.com/auth/logging.admin.

Agrega credenciales

La autorización hace referencia al proceso de determinar qué permisos tiene un cliente autenticado sobre un conjunto de recursos.

La autorización de los agentes de Stackdriver Logging y Monitoring en una instancia de VM involucra los siguientes pasos:

  1. Crear una cuenta de servicio con los privilegios y las credenciales de clave privada necesarios en el proyecto de GCP asociado con tu instancia de VM. Para las instancias de VM de Amazon EC2, debes hacer esto en el proyecto AWS Link que Stackdriver crea en tu nombre cuando conectas tu cuenta de AWS

  2. Copiar las credenciales de clave privada a tu instancia de VM, en la que sirven como Credenciales predeterminadas de la aplicación para el software que se ejecuta en tu instancia

  3. Instalar o reiniciar el agente

Crea una cuenta de servicio

La autenticación hace referencia al proceso de determinar la identidad de un cliente. Para la autenticación, recomendamos que uses una cuenta de servicio: una Cuenta de Google asociada a tu proyecto de GCP y no a un usuario específico. Las cuentas de servicio se pueden usar en la autenticación sin importar el lugar en el que se ejecute tu código (a nivel local, en Compute Engine, en App Engine, etcétera). Consulta la Descripción general de la autenticación para obtener más información.

Para crear una cuenta de servicio, sigue las instrucciones en Crea una cuenta de servicio. En el menú desplegable Función, selecciona las funciones siguientes:

  • Logging > Escritor de registros. Esto autoriza al agente de Stackdriver Logging.
  • Monitoring > Escritor de métricas de supervisión. Esto autoriza al agente de Stackdriver Monitoring. Agregar esta función te permite usar esta cuenta de servicio para ejecutar ambos agentes de Stackdriver.

Para mayor comodidad en las siguientes instrucciones, configura la variable CREDS de forma que apunte al archivo de credenciales en tu estación de trabajo. Por ejemplo:

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

Copia la clave privada a tu instancia

Para que las credenciales de la cuenta de servicio agregadas se reconozcan, debes copiar el archivo de claves privadas en una de las siguientes ubicaciones en tu instancia de VM con la herramienta de copia de archivos que desees:

  • Solo Linux: /etc/google/auth/application_default_credentials.json
  • Solo Windows: C:\ProgramData\Google\Auth\application_default_credentials.json
  • Linux o Windows: cualquier ubicación que almacenes en la variable GOOGLE_APPLICATION_CREDENTIALS. La variable debe ser visible para el proceso del agente

En las siguientes instrucciones para copiar archivos, se supone que tienes un entorno Linux en tu estación de trabajo y en tu instancia. Si usas un entorno diferente, consulta la documentación de tu proveedor de servicios en la nube para saber cómo copiar el archivo de claves privadas. En el paso anterior, Crea una cuenta de servicio, tus credenciales de clave privada deberían almacenarse en tu estación de trabajo en la ubicación que guardaste en la variable CREDS:

Compute Engine

En tu estación de trabajo, usa la herramienta de línea de comandos de gcloud. Puedes encontrar [YOUR-INSTANCE-NAME] y [YOUR-INSTANCE-ZONE] en GCP Console en la página Instancias de VM:

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

En tu instancia de Compute Engine, ejecuta los siguientes comandos:

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

En tu estación de trabajo, usa 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"

En tu instancia de EC2, ejecuta los siguientes comandos:

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"

Próximos pasos

Tu instancia de VM ahora tiene las credenciales que el agente necesita.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Stackdriver Logging
Si necesitas ayuda, visita nuestra página de asistencia.