Sobre contas de serviço

Uma conta de serviço é um tipo especial de conta do Google Cloud que permite que os componentes e os aplicativos de um sistema interajam entre si e com outras APIs. Para mais informações sobre o Google Cloud, consulte Sobre os serviços do Google Cloud.

O híbrido usa contas de serviço do Google Cloud para realizar várias tarefas, como:

  • Enviar dados de registros e métricas
  • Solicitações de rastreamento de pull
  • Conectar-se ao gateway da API para solicitações administrativas de API
  • Executar backups
  • Fazer o download de pacotes proxy

Embora uma conta de serviço possa executar todas essas operações, a Apigee recomenda que você crie várias contas de serviço, cada uma atribuída a uma tarefa específica e cada uma com o próprio conjunto de permissões. Isso reforça a segurança ao compartimentar o acesso e limitar o escopo e os privilégios de acesso de cada conta de serviço. Assim como acontece com as contas de usuário, essas permissões são aplicadas atribuindo um ou mais papéis à conta de serviço.

Para operar corretamente, a Apigee híbrida exige que você crie várias contas de serviço. Cada conta de serviço requer um ou mais papéis específicos que permitam que ela execute a respectiva função.

A tabela a seguir descreve as contas de serviço dos componentes híbridos:

Componente* Papel Necessário para instalação básica? Descrição
apigee-cassandra Administrador de objetos do Storage
roles/storage.objectAdmin
Permite backups do Cassandra para o Cloud Storage, conforme descrito em Backup e recuperação.
apigee-distributed-trace Agente do Cloud Trace
roles/cloudtrace.agent
Permite que o plano de ambiente de execução híbrido participe do rastreamento de solicitações distribuídas em um formato compatível com sistemas como o Google Cloud Trace e o Jaeger.
apigee-logger Gravador de registros
roles/logging.logWriter
Permite a coleta de dados de geração de registros, conforme descrito em Geração de registros. Obrigatório apenas para instalações de cluster que não são do GKE.
apigee-mart Agente do Apigee Connect
roles/apigeeconnect.Agent
Permite a autenticação do serviço MART. O papel de Agente do Apigee Connect permite a comunicação com segurança com o processo do Apigee Connect, conforme descrito em Como usar o Apigee Connect.
apigee-metrics Gravador de métricas do Monitoring
roles/monitoring.metricWriter
Permite a coleta de dados de métricas, conforme descrito na Visão geral da coleta de métricas.
apigee-org-admin Administrador da organização da Apigee
roles/apigee.admin
Permite chamar a API getSyncAuthorization e a API setSyncAuthorization. Como o administrador da organização da Apigee é um papel externo no plano do ambiente de execução, não é possível atribuir esse papel à conta de serviço com a ferramenta create-service-account.
apigee-synchronizer Gerenciador de sincronização da Apigee
roles/apigee.synchronizerManager
Permite que o sincronizador faça o download de pacotes de proxy e dados de configuração do ambiente. Ativa também a operação do recurso de rastreamento.
apigee-udca Agente de análise da Apigee
roles/apigee.analyticsAgent
Permite a transferência de dados de status de rastreamento, análise e implantação para o plano de gerenciamento.
apigee-watcher Agente do ambiente de execução da Apigee
roles/apigee.runtimeAgent
O Apigee Watcher extrai alterações virtuais dos hosts relacionados a uma organização no sincronizador e faz as alterações necessárias para configurar a entrada istio.
* Esse nome é usado no nome do arquivo da chave da conta de serviço transferido por download.

Além de criar as contas de serviço listadas nesta tabela, você também faz o download das chaves particulares. Depois, você usará essas chaves para gerar tokens de acesso e acessar as APIs Apigee.

Criar contas de serviço

Há várias maneiras de criar contas de serviço, incluindo:

Cada um deles é descrito nas seções a seguir.

Usar a ferramenta de criação de conta de serviço

A ferramenta create-service-account (disponível depois que você faz o download e expande apigeectl) cria contas de serviço híbridas específicas de componente e atribui a você os papéis necessários. A ferramenta também faz o download automático das chaves da conta de serviço e as armazena na máquina local, no diretório especificado.

Para criar contas de serviço com a ferramenta create-service-account:

  1. Faça o download e expanda o apigeectl (se ainda não tiver feito), conforme descrito em Fazer o download e instalar o apigeectl.
  2. Crie um diretório para armazenar as chaves da conta de serviço. Exemplo:
    mkdir ./service-accounts
  3. Execute os seguintes comandos:
    ./tools/create-service-account apigee-metrics ./service-accounts
    ./tools/create-service-account apigee-synchronizer ./service-accounts
    ./tools/create-service-account apigee-distributed-trace ./service-accounts
    ./tools/create-service-account apigee-udca ./service-accounts
    ./tools/create-service-account apigee-mart ./service-accounts
    ./tools/create-service-account apigee-cassandra ./service-accounts
    ./tools/create-service-account apigee-logger ./service-accounts

    Esses comandos criam a maioria das contas necessárias e armazenam as chaves no diretório ./service-accounts.

    Se esses comandos falharem, verifique se você referenciou um diretório atual para armazenar os arquivos de chave.

    Para saber mais sobre o uso de create-service-account, consulte a referência de criação de conta de serviço.

Usar o Console do Google Cloud

É possível criar contas de serviço com o Console do Google Cloud.

Para criar contas de serviço com o Console do Google Cloud:

  1. Abra o Console do Google Cloud e faça login com a conta de usuário que você criou na Etapa 1: criar uma conta do Google Cloud.
  2. Selecione o projeto que você criou na Etapa 2: criar um projeto do Google Cloud.
  3. Selecione IAM e administrador > Contas de serviço.

    O console exibe a visualização Contas de serviço. Essa visualização exibe uma lista de contas de serviço do projeto. Na maioria dos casos, não haverá contas listadas, embora possa haver contas de serviço padrão na lista, dependendo de como você criou o projeto.

  4. Para criar uma nova conta de serviço, clique em +Criar conta de serviço na parte superior da visualização.

    A visualização Detalhes da conta de serviço é exibida.

  5. No campo Nome da conta de serviço, insira o nome da conta de serviço.

    A Apigee recomenda que você use um nome que reflita o papel da conta de serviço. É possível definir o nome da conta de serviço como o mesmo nome do componente que a utiliza. Por exemplo, defina o nome da conta de serviço de gravador de registros apigee-logger.

    Para saber mais sobre os nomes e funções de contas de serviço, consulte Contas de serviço e papéis usados por componentes híbridos.

    À medida que você insere um nome, o Google Cloud gera para você um ID exclusivo da conta de serviço, estruturado como um endereço de e-mail, como mostra o exemplo a seguir:

    Exemplo de ID de apigee-logger@hybrid-42.iam.gserviceaccount.com

    Se quiser, adicione uma descrição no campo Descrição da conta de serviço. As descrições são úteis para lembrar você sobre como uma conta de serviço específica é usada.

  6. Clique em Criar

    O Google Cloud cria uma nova conta de serviço e exibe a visualização de permissões da conta de serviço, como no exemplo a seguir:

    Criar conta de serviço sem permissões selecionadas

    Use essa visualização para atribuir um papel à sua nova conta de serviço.

  7. Clique na lista suspensa Selecionar um papel.
  8. Selecione o papel para a conta de serviço, conforme descrito em Contas de serviço e papéis usados por componentes híbridos. Se os papéis da Apigee não aparecerem na lista suspensa, atualize a página.

    Por exemplo, para o componente de geração de registros, selecione o papel de gravador de registros.

    Se necessário, insira o texto para filtrar a lista de papéis por nome. Por exemplo, para listar somente os papéis da Apigee, insira Apigee no campo de filtro, como mostrado no exemplo a seguir:

    Lista de permissões da conta de serviço que corresponde à Apigee

    É possível adicionar mais de um papel a uma conta de serviço, mas a Apigee recomenda usar apenas um papel para cada uma das contas de serviço recomendadas. Para alterar os papéis de uma conta de serviço depois de criá-la, use o painel IAM e administrador no Google Cloud.

  9. Clique em Continuar.

    O Google Cloud exibe a visualização Conceder aos usuários acesso a essa conta de serviço:

    Campos para os papéis de usuários da conta de serviço e de Administrador da conta de serviço, botão "Criar chave"

  10. Em Criar chave (opcional), clique em Criar chave.

    O Google Cloud oferece a opção de fazer o download de uma chave JSON ou P12:

    Selecione o tipo de chave JSON ou P12

  11. Selecione JSON (padrão) e clique em Criar.

    O Google Cloud salva o arquivo de chave no formato JSON na sua máquina local e exibe uma confirmação quando ela é bem-sucedida, como mostra o exemplo a seguir:

    Exemplo de filename.json

    Posteriormente, você usará algumas das chaves da conta de serviço para configurar os serviços de ambiente de execução híbrido. Por exemplo, ao configurar o ambiente de execução híbrido, você especifica o local das chaves da conta de serviço usando as propriedades SERVICE_NAME.serviceAccountPath.

    Essas chaves são usadas pelas contas de serviço para conseguir tokens de acesso, que serão usados para fazer solicitações nas APIs Apigee em seu nome. Mas isso ainda vai demorar. Por enquanto, lembre-se de onde você salvou.

  12. Repita as etapas 4 a 11 para cada conta de serviço listada em Contas de serviço e papéis usados por componentes híbridos (exceto a conta apigee-mart, que não tem nenhum papel associado a ela. Por isso, não atribua um papel a ela).

    Quando terminar, você deverá ter as seguintes contas de serviço (além das padrões, se houver):

    Lista de contas de serviço. Caixa de seleção da coluna 1, coluna 2 E-mail, coluna 3 Status, colunna 4 nome da conta de serviço

    No Console do Google Cloud, as contas de serviço são indicadas com um ícone chave do lado esquerdo, metade de um retângulo do lado direito, todos sublinhados.

Depois de criar uma conta de serviço, se você quiser adicionar ou remover um papel, use a visualização IAM e administrador. Não é possível gerenciar papéis para contas de serviço na visualização Contas de serviço.

Usar APIs de criação de conta de serviço da gcloud

É possível criar e gerenciar contas de serviço com a API Cloud Identity and Access Management.

Para mais informações, consulte Como criar e gerenciar contas de serviço.

Solução de problemas