Autoriza el agente

En esta guía, se explica cómo instalar las credenciales de cuenta de servicio de clave privada en una instancia de VM para autorizar el agente de Cloud Monitoring. Antes de instalar el agente, verifica que tu instancia de VM tenga las credenciales que el agente necesita. El agente debe tener permiso para enviar información a Monitoring. El permiso se otorga mediante el uso de credenciales de cuenta de servicio que se almacenan en tu instancia de VM y sirven como credenciales predeterminadas de la aplicación para el agente.

Antes de comenzar

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

  • Si ejecutas instancias de Compute Engine muy antiguas o instancias de Compute Engine creadas sin las credenciales predeterminadas, debes completar los pasos de esta guía antes de instalar el agente. Es posible que estas VM no tengan las credenciales de clave privada requeridas. Para verificar tus credenciales, completa los procedimientos que se indican en Verifica las credenciales de Compute Engine. En las instancias de VM de Compute Engine creadas recientemente, la cuenta de servicio predeterminada en tu instancia tiene las credenciales que los agentes necesitan.

  • Si ejecutas instancias de VM de AWS EC2, debes completar los pasos de esta guía antes de instalar el agente. Las instancias de VM de Amazon EC2 no tienen la cuenta de servicio requerida. En su lugar, debes obtener de manera manual las credenciales de clave privada de una cuenta de servicio del proyecto de conector de AWS. Si crees que tu instancia ya tiene credenciales de clave privada, completa los procedimientos que se indican en Verifica las credenciales de clave privada. Para agregar credenciales de clave privada, ve directamente a Agrega credenciales.

Puedes verificar los permisos de tu 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/monitoring.write
    https://www.googleapis.com/auth/monitoring.admin
    https://www.googleapis.com/auth/cloud-platform
    

Agrega credenciales

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

Para autorizar el agente de Monitoring en una instancia de VM, debes seguir los siguientes pasos:

  1. Crea una cuenta de servicio con los privilegios y las credenciales de clave privada necesarias en el proyecto de Google Cloud asociado a tu instancia de VM. En el caso de las instancias de VM de Amazon EC2, puedes hacerlo en el proyecto AWS Link que se crea cuando se conectas tu cuenta de AWS.

  2. Copia 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. Instala o reinicia 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, te recomendamos usar una cuenta de servicio: una Cuenta de Google que esté asociada a tu proyecto de Google Cloud, en contraposición a un usuario específico. Puedes usar cuentas de servicio para la autenticación sin importar dónde se ejecute tu código: en Compute Engine, App Engine o de forma local. Lee Descripción general de la autenticación para obtener más información.

Para crear una cuenta de servicio, completa los procedimientos que se indican en Crea una cuenta de servicio con la siguiente información:

  • Selecciona el proyecto de Google Cloud en el que deseas crear la cuenta de servicio:

    • Para las instancias de Compute Engine, elige el proyecto en el que creaste la instancia. Si creaste tu instancia en el proyecto host de lugar de trabajo, selecciona el lugar de trabajo.

    • Para las instancias de Amazon EC2, elige el proyecto de conector de AWS que se creó cuando conectaste Monitoring a tu cuenta de AWS. El nombre del proyecto de conector suele comenzar con AWS Link. No crees tu cuenta de servicio en el proyecto de lugar de trabajo.

  • En el menú desplegable Función, selecciona la siguiente función:

    • Monitoring > Escritor de métricas de supervisión. Esto autoriza al agente de supervisión.

    Si también deseas instalar el agente de Logging, agrega la siguiente función para ese agente:

    • Logging > Escritor de registros. Esto autoriza al agente de Logging.
  • Cuando crees la clave, selecciona JSON como Tipo de clave.

Para tu comodidad, puedes crear la variable CREDS con el fin de apuntar al archivo de credenciales en tu estación de trabajo. Por ejemplo:

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

El resto de estos procedimientos hacen referencia a esa variable.

Copia la clave privada a tu instancia

Después de crear la cuenta de servicio, debes copiar el archivo de claves privadas en una de las siguientes ubicaciones de tu instancia de VM para que el agente pueda reconocer las credenciales. Puedes usar cualquier herramienta de copia de archivo que desees.

  • Solo en Linux: /etc/google/auth/application_default_credentials.json

  • Solo en Windows: C:\ProgramData\Google\Auth\application_default_credentials.json

  • En Linux y 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 de copia de archivo, se da por sentado que tienes un entorno de Linux tanto en tu estación de trabajo como 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 claves privadas se deberían haber almacenado en tu estación de trabajo en una 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 Google Cloud 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 estos 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 estos 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.