Autorizar o agente do Monitoring

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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 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 quando se usa 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:

  • Se você estiver executando instâncias do Compute Engine muito antigas ou tiver modificado os escopos de acesso ou as configurações da conta de serviço das instâncias do Compute Engine, conclua as etapas deste guia antes de instalar o agente. Essas VMs podem não ter as credenciais de chave privada obrigatórias. Para informações sobre como verificar os escopos de acesso e as configurações da conta de serviço das instâncias, consulte Verificar as credenciais do Compute Engine.

    Nas instâncias de VM do Compute Engine recém-criadas, os escopos de acesso e as configurações da conta de serviço são suficientes para executar os agentes.

  • Se você estiver executando instâncias de VM do Amazon EC2 (AWS VC2), será necessário concluir as etapas deste guia antes de instalar o agente. Como as instâncias de VM do Amazon EC2 não têm as credenciais necessárias do Google Cloud, consiga manualmente as credenciais de chave privada de uma conta de serviço do projeto de conector da AWS.

Verifique os escopos de autorização:

  1. Execute o comando a seguir em uma instância do Compute Engine:

    curl --silent --connect-timeout 1 -f -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/scopes
  2. Na saída dos escopos de autorização, se https://www.googleapis.com/auth/cloud-platform for listado, você tem autorização suficiente.

    Se https://www.googleapis.com/auth/cloud-platform não estiver listado, será necessário ter dois escopos de autorização, um de cada um dos seguintes pares:

    • https://www.googleapis.com/auth/logging.write ou https://www.googleapis.com/auth/logging.admin

    • https://www.googleapis.com/auth/monitoring.write ou https://www.googleapis.com/auth/monitoring.admin

Visão geral da autorização

e a autorização é o processo de determinação das permissões que um cliente autenticado tem sobre um conjunto de recursos. O Google Cloud autoriza o agente do Monitoring em uma instância de VM do Compute Engine usando credenciais padrão do aplicativo (ADC).

O agente do Monitoring é compatível com o ADC que autentica uma conta de serviço anexada a uma VM ou uma chave privada de uma conta de serviço.

  • Uma conta de serviço anexada refere-se a uma conta de serviço específica para um determinado recurso, como uma VM. A conta de serviço tem as próprias credenciais exclusivas. O ADC usa o servidor de metadados da VM para receber credenciais de um serviço.
  • Uma chave privada de uma conta de serviço refere-se a uma chave privada usada para autorizar o par de chaves em uma conta de serviço em um projeto, que permite criar um token de acesso. Use o token para fornecer uma identidade e interagir com as APIs do Google Cloud em nome da conta de serviço.

Recomendamos que você configure o ADC para autenticar uma conta de serviço anexada sempre que possível, já que a chave privada requer armazenamento local, e esse armazenamento pode ser comprometido. Para mais informações sobre as chaves da conta de serviço, consulte Práticas recomendadas para gerenciar chaves de conta de serviço.

Para instâncias de VM do AWS EC2, o agente do Monitoring é compatível com a autenticação somente de uma conta de serviço com uma chave privada.

Crie uma conta de serviço

A autenticação é o processo de determinação da identidade de um cliente Para autenticação, recomendamos usar 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. Veja mais informações em Autenticação no Google.

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.

    • Para instâncias da Amazon EC2, escolha o projeto de conector da AWS criado quando você conectou a conta da AWS aos serviços do Google Cloud.

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

    • Monitoring > Monitoring Metric Writer Com isso, você autoriza agente do Monitoring.

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

    • Logging > Logs Writer. Com isso, você autoriza o agente do Logging.
  • Se você planeja usar a autenticação de chave privada, selecione JSON como o Tipo de chave.

Em seguida, defina a conta de serviço e as configurações com base na autorização de contas de serviço anexadas ou de chaves privadas de conta de serviço.

Autorizar com uma conta de serviço anexada

Para autorizar o agente do Monitoring instalado em uma instância de VM que tem uma conta de serviço anexada, faça o seguinte:

  1. Conceda à sua conta de serviço os papéis do IAM menos privilegiados.

  2. Anexe a conta de serviço ao recurso em que seu código está sendo executado.

  3. Instale ou reinicie o agente.

Autorizar uma conta de serviço com uma chave privada

Para autorizar o agente do Monitoring usando chaves privadas da conta de serviço, faça o seguinte:

  1. Copie o arquivo de chave privada para um dos seguintes locais na sua instância de VM, para que o agente possa reconhecer 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 ser visível ao processo do agente.

  2. Crie uma variável de ambiente que aponte para o arquivo de credenciais na estação de trabalho. O exemplo a seguir cria uma variável chamada CREDS:

    CREDS="~/Downloads/PROJECT-NAME-KEY-ID.json"
    
  3. Conclua as etapas exibidas na tabela a seguir:

    Compute Engine

    No sistema local, use a ferramenta de linha de comando gcloud. Acesse INSTANCE_NAME e INSTANCE_ZONE no Console do Google Cloud na página Instâncias de VM:

    REMOTE_USER="$USER"
    INSTANCE="INSTANCE_NAME"
    ZONE="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

    No sistema local, use scp:

    KEY="YOUR-SSH-KEY-PAIR-FILE"
    INSTANCE="ec2-YOUR-INSTANCE'S-PUBLIC-ID.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"
    

    Se o arquivo de credenciais não estiver no local padrão listado anteriormente, além dos comandos nos exemplos anteriores, verifique se GOOGLE_APPLICATION_CREDENTIALS está definido e visível para o processo do agente.

  4. Instale ou reinicie o agente.

Próximas etapas

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