Como autorizar o agente

Neste guia, explicamos como instalar credenciais de conta de serviço de chave particular em uma instância de VM para autorizar o agente de operações. 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 que funcionam como Application Default Credentials para o agente.

Antes de começar

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/monitoring.write
https://www.googleapis.com/auth/monitoring.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 de operações 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.

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

  3. Instalar ou reiniciar o 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.

  • No menu suspenso Papéis, selecione os seguintes papéis:

    • Monitoring > Gravador de métricas do Monitoring

    • Logging > Gravador de registros

  • 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"

A seguir

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