Como autorizar o agente

Este guia explica como instalar credenciais de conta de serviço de chave particular em uma instância de VM para autorizar o agente do Cloud Monitoring. Antes de instalar o agente, verifique se a instância de VM tem as credenciais de que ele precisa. O agente precisa ter permissão para enviar informações ao Monitoring. A permissão é concedida ao usar as credenciais da conta de serviço que estão armazenadas na instância de VM e funcionam como Application Default Credentials para o agente.

Antes de começar

Leia este guia se uma destas situações for o caso:

  • Se você estiver executando instâncias muito antigas do Compute Engine ou criadas sem as credenciais padrão, conclua as etapas deste guia antes de instalar o agente. Essas VMs podem não ter as credenciais de chave privada obrigatórias. Para verificar suas credenciais, conclua os procedimentos de Como verificar credenciais do Compute Engine. Em instâncias de VM do Compute Engine recém-criadas, a conta de serviço padrão em sua instância tem as credenciais de que o agente precisa.

  • Caso esteja executando instâncias de VM da AWS EC2, siga as etapas deste guia antes de instalar o agente. A instância de VM do Amazon EC2 não tem a conta de serviço obrigatória. Em vez disso, você precisa receber manualmente as credenciais de chave privada de uma conta de serviço do projeto de conector da AWS. Se você acha que a instância já tem credenciais de chave privada, conclua os procedimentos de Como verificar credenciais de chave privada para verificar. Para adicionar credenciais de chave privada, avance para Como adicionar credenciais.

Verifique os escopos de autorização no Compute Engine usando o seguinte comando:

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

Procure um ou mais dos seguintes escopos de autorização na saída:

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

Como adicionar credenciais

A autorização é o processo que determina quais permissões um cliente autenticado tem para um conjunto de recursos.

Autorizar o agente do Monitoring em uma instância de VM envolve as seguintes etapas:

  1. Criação de uma conta de serviço com os privilégios e as credenciais de chave privada obrigatórias no projeto do Google Cloud associado à instância da VM. Para instâncias de VM do Amazon EC2, você faz isso no projeto AWS Link criado quando você se conecta à conta da AWS.

  2. Copiar as credenciais de chave particular para a instância de VM, em que são veiculadas como Credenciais padrão do aplicativo para o software em execução na instância.

  3. Instalação ou reinicialização do agente.

Como criar uma conta de serviço

Autenticação é o processo de determinar a identidade de um cliente. Para autenticação, recomendamos o uso de uma conta de serviço: uma conta do Google associada ao projeto do Google Cloud, e não a um usuário específico. É possível usar contas de serviço para autenticação, não importa onde o código é executado: no Compute Engine, no App Engine ou no local. Para ver mais informações, leia a Visão geral da autenticação.

Para criar uma conta de serviço, conclua os procedimentos de Como criar uma conta de serviço com as seguintes informações:

  • Selecione o projeto do Google Cloud em que a conta de serviço precisa ser criada:

    • Para instâncias do Compute Engine, escolha o projeto em que você criou a instância. Se a instância foi criada no projeto de hospedagem do espaço de trabalho, escolha o espaço de trabalho.

    • Para instâncias do Amazon EC2, escolha o projeto de conector da AWS criado quando você conectou o Monitoring à conta da AWS. O nome do projeto do conector, normalmente, começa com AWS Link. Não crie a conta de serviço no projeto do espaço de trabalho.

  • No menu suspenso Role, selecione o seguinte papel:

    • Monitoring > Gravador de métricas do Monitoring Autoriza o agente do Monitoring.

    Se você também instalar o agente do Logging, adicione o seguinte papel a esse agente:

    • Logging > Gravador de registros Com isso, você autoriza o agente do Logging.
  • Ao criar a chave, selecione JSON como o tipo de chave.

Para facilitar seu trabalho, é possível criar a variável CREDS para apontar para o arquivo de credenciais na estação de trabalho. Exemplo:

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

O restante desses procedimentos se refere a essa variável.

Como copiar a chave privada para a instância

Após criar a conta de serviço, copie o arquivo de chave privada para um dos seguintes locais na instância de VM para que o agente reconheça as credenciais. Use qualquer ferramenta de cópia de arquivos que desejar.

  • Somente no Linux: /etc/google/auth/application_default_credentials.json

  • Somente no Windows: C:\ProgramData\Google\Auth\application_default_credentials.json

  • No Linux e no Windows: qualquer local que você armazene na variável GOOGLE_APPLICATION_CREDENTIALS. A variável precisa estar visível para o processo do agente.

As instruções de cópia de arquivo a seguir pressupõem que você tenha um ambiente Linux tanto na estação de trabalho quanto na instância. Se você estiver usando um ambiente diferente, veja a documentação do provedor de nuvem sobre como copiar o arquivo de chave privada. Na etapa anterior, Como criar uma conta de serviço, as credenciais de chave privada foram armazenadas na estação de trabalho em um local salvo na variável CREDS:

Compute Engine

Na estação de trabalho, use a ferramenta de linha de comando gcloud. Encontre [YOUR-INSTANCE-NAME] e [YOUR-INSTANCE-ZONE] no Console do Google Cloud na página Instâncias de VM:

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

Na instância do Google Compute Engine, execute estes 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

Na estação de trabalho, use 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"
    

Na instância do EC2, execute estes 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"
    

A seguir

A partir de agora, a instância de VM tem as credenciais necessárias ao agente.