Como autorizar um agente

Neste guia, explicamos como instalar credenciais de conta de serviço de chave particular em uma instância de VM para autorizar os agentes do Stackdriver Logging e Monitoring.

Leia este guia se uma das seguintes situações se aplica a você:

  • Você sabe que precisa instalar essas credenciais. Por exemplo, você está usando uma instância da VM do Amazon EC2.

  • Você suspeita que as credenciais existentes na instância de VM são inválidas e quer substituí-las por algo que funcione.

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.

Como adicionar credenciais

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

Autorizar os agentes do Stackdriver Logging e Monitoring em uma instância de VM envolve os seguintes passos:

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

  2. Cópia das credenciais de chave particular 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. 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 usar uma conta de serviço: uma conta do Google associada ao projeto do GCP, em oposição a um usuário específico. As contas de serviço podem ser usadas na autenticação, independentemente do local onde o código é executado. Por exemplo, localmente, no Compute Engine, no App Engine etc. Consulte Visão geral da autenticação para mais informações.

Para criar uma conta de serviço, siga as instruções em Como criar uma conta de serviço. No menu suspenso Papel, selecione estes dois papéis:

  • Logging > Gravador de registros. Autoriza o agente do Stackdriver Logging.
  • Monitoramento > Gravador da métrica de monitoramento. Autoriza o agente do Stackdriver Monitoring. A adição desse papel permite usar essa conta de serviço para executar os dois agentes do Stackdriver.

Para praticidade, nas instruções a seguir, defina a variável CREDS a fim de apontar para o arquivo de credenciais na estação de trabalho: Por exemplo:

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

Como copiar a chave particular para a instância

Para que as credenciais da conta de serviço adicionadas sejam reconhecidas, você precisa copiar o arquivo de chave privada em um dos seguintes locais na instância de VM, usando qualquer ferramenta de cópia de arquivo desejada:

  • Somente Linux: /etc/google/auth/application_default_credentials.json
  • Somente Windows: C:\ProgramData\Google\Auth\application_default_credentials.json
  • Linux ou Windows: qualquer local armazenado na variável GOOGLE_APPLICATION_CREDENTIALS. A variável precisa ser 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 particular. No passo anterior, Como criar uma conta de serviço, as credenciais de chave particular precisam ter sido 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 GCP 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.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Stackdriver Logging
Precisa de ajuda? Acesse nossa página de suporte.