Como autorizar o agente

Neste guia, explicamos como instalar credenciais de conta de serviço de chave privada em uma instância de VM para autorizar o agente do Stackdriver Logging. 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 Logging. 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 das seguintes situações se aplica a você:

  • 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 necessárias. Para verificar suas credenciais, conclua os procedimentos 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 AW2 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 necessá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 procedimentosComo verificar credenciais de chave privada para verificá-las. 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/logging.write
https://www.googleapis.com/auth/logging.admin
https://www.googleapis.com/auth/cloud-platform

Como adicionar credenciais

Autorização é o processo de determinar quais permissões um cliente autenticado tem para um conjunto de recursos.

Autorizar o agente do Logging 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 necessários 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 pelo Stackdriver quando se conecta à conta da AWS.

  2. Cópia das credenciais de chave privada para a instância de VM, em que elas funcionam como Credenciais padrão do aplicativo para software em execução na instância.

  3. Instalar ou reiniciar o agente.

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, independentemente de onde o código é executado: no Compute Engine, no App Engine ou no local. Para mais informações, leia a Visão geral da autenticação.

Para criar uma conta de serviço, conclua os procedimentos 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 Logging à conta da AWS. Normalmente, o nome do projeto do conector começa com AWS Link. Não crie a conta de serviço no projeto do espaço de trabalho.

  • No menu suspenso Papel, selecione o seguinte papel:

    • Logging > Gravador de registros Isso autoriza o agente do Logging.

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

    • Monitoring > Gravador de métricas do Monitoring Isso autoriza o agente do Monitoring.
  • 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. É possível usar qualquer ferramenta de cópia de arquivo 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, consulte 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

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