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

Ainda que uma conta de serviço possa executar todas essas operações para ambientes de produção, 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. Os nomes fornecidos para cada conta de serviço são os nomes padrão. Use os nomes que quiser, mas eles são fáceis de identificar de acordo com a finalidade de cada conta.

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-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-runtime Nenhum papel necessário Permite que o ambiente de execução híbrido da Apigee se conecte a serviços do Google e serviços personalizados no Google Cloud, como Google Authentication, Google Cloud Trace e Jaeger.
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 de arquivo da chave da conta de serviço baixado.

Como alternativa, para ambientes de não produção, teste e demonstração, é possível usar uma única conta de serviço com todos os papéis atribuídos a ela. Isso não é recomendado para ambientes de produção.

Componente* Papel Necessário para instalação básica? Descrição
apigee-non-prod Agente de análise da Apigee, agente da Apigee Connect, administrador da organização da Apigee, agente de ambiente de execução da Apigee, gerenciador de sincronização da Apigee, agente do Cloud Trace, gravador de registros, gravador de métricas de monitoramento, administrador de objeto de armazenamento Ou todas as SAs necessárias acima Uma única conta de serviço para ambientes de demonstração ou teste. Consulte Instação, Parte 2, Etapa 5: criar contas de serviço.

Além de criar as contas de serviço listadas nesta tabela, você usará chaves privadas de cada conta para gerar tokens de acesso e acessar as APIs Apigee. A ferramenta create-service-account faz o download automático dos arquivos de chave para um diretório na máquina local quando cria ou atualiza as contas de serviço.

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 create-service-account

A ferramenta create-service-account estará disponível depois que você fizer o download e expandir os gráficos da Apigee híbrida do Helm ou apigeectl. A ferramenta create-service-account está disponível no seguinte diretório:

  • Para instalações de gráficos do Helm:
    APIGEE_HELM_CHARTS_HOME/
    └── apigee-operator/
        └── etc/
            └── tools/
                └── create-service-account
    
  • Para instalações do apigeectl:
    APIGEECTL_HOME/
    └── tools/
        └── create-service-account
    

create-service-account torna híbridas as contas de serviço específicas de componentes e atribui os papéis necessários para você. A ferramenta também faz o download automático das chaves da conta de serviço e as armazena na máquina local.

Por exemplo, o comando a seguir cria todas as contas de serviço individuais separadas de um ambiente de produção, atribui os papéis apropriados do IAM a cada conta de serviço e faz o download de cada arquivo de chave privada de contas para o diretório ./service-accounts:

./tools/create-service-account --env prod

O comando a seguir cria uma única conta de serviço chamada apigee-non-prod com todos os papéis do IAM para todos os componentes híbridos, adequada para ambientes de demonstração e teste, mas não para ambientes de produção:

./tools/create-service-account --env non-prod

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 uma conta de serviço com o Console do Google Cloud e gerar uma chave para ela, faça o seguinte:

  1. Crie uma conta de serviço:

    1. No Console do Cloud, acesse a página Contas de serviço.

      Acessar a página "Contas de serviço"

    2. Selecione o projeto.
    3. Clique em Criar conta de serviço.
    4. No campo Nome da conta de serviço, insira um nome. O Console do Cloud preenche o campo ID da conta de serviço com base nesse nome.

      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 o utiliza. Por exemplo, defina o nome da conta de serviço do gravador de registros como apigee-logger.

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

    5. Opcional: preencha o 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 e continuar.
    7. Clique no campo Selecionar um papel e selecione um papel, 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.

      É possível adicionar mais de um papel a uma conta de serviço, mas a Apigee recomenda o uso de 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 a página IAM no Console do Cloud.

    8. 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"

    9. 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

    10. 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.

    11. 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