Acerca das contas de serviço

Uma conta de serviço é um tipo especial de conta no Google Cloud que permite que os componentes e as aplicações de um sistema interajam entre si e com outras APIs. Para mais informações acerca do Google Cloud, consulte o artigo Acerca dos serviços do Google Cloud.

O Apigee hybrid usa contas de serviço do Google Cloud para realizar várias tarefas, incluindo:

  • Envie dados de registo e métricas
  • Extraia pedidos de rastreio
  • Ligue-se ao gateway da API para pedidos de API administrativos
  • Executar cópias de segurança
  • Transfira pacotes de proxy

Embora uma conta de serviço possa realizar todas estas operações, para ambientes de produção, a Apigee recomenda que crie várias contas de serviço, cada uma atribuída a uma tarefa específica e cada uma com o seu próprio conjunto de autorizações. Isto melhora a segurança através da compartimentalização do acesso e da limitação do âmbito e dos privilégios de acesso de cada conta de serviço. Tal como acontece com as contas de utilizador, estas autorizações são aplicadas através da atribuição de uma ou mais funções à conta de serviço.

Para funcionar corretamente, o Apigee hybrid requer a criação de várias contas de serviço. Cada conta de serviço requer uma ou mais funções específicas que lhe permitam desempenhar a sua função.

A tabela seguinte descreve as contas de serviço para os componentes híbridos. Os nomes atribuídos a cada conta de serviço são os nomes predefinidos. Pode usar os nomes que quiser, mas devem ser fáceis de identificar com a finalidade de cada conta.

Componente* Função Necessário para a instalação básica? Descrição
apigee-cassandra Administrador de objetos de armazenamento
roles/storage.objectAdmin
Permite que as cópias de segurança do Cassandra sejam feitas no Cloud Storage, conforme descrito em Cópia de segurança e recuperação.
apigee-logger Escritor de registos
roles/logging.logWriter
Permite a recolha de dados de registo, conforme descrito em Registo. Apenas necessário para instalações de clusters que não sejam do GKE.
apigee-mart Agente do Apigee Connect
roles/apigeeconnect.Agent
Permite a autenticação do serviço MART. A função de agente do Apigee Connect permite-lhe comunicar em segurança com o processo do Apigee Connect, conforme descrito no artigo Usar o Apigee Connect.
apigee-metrics Escritor de métricas de monitorização
roles/monitoring.metricWriter
Permite a recolha de dados de métricas, conforme descrito na vista geral da recolha de métricas.
apigee-runtime Nenhuma função necessária Permite que o tempo de execução híbrido do Apigee se ligue aos serviços Google e aos serviços personalizados no Google Cloud, como a autenticação Google, o Google Cloud Trace e o Jaeger.
apigee-synchronizer Apigee Synchronizer Manager
roles/apigee.synchronizerManager
Permite que o sincronizador transfira pacotes de proxy e dados de configuração do ambiente. Também permite o funcionamento da funcionalidade de rastreio.
apigee-udca Agente do Apigee Analytics
roles/apigee.analyticsAgent
Permite a transferência de dados de rastreio, estatísticas e estado de implementação para o plano de gestão.
apigee-watcher Agente de tempo de execução do Apigee
roles/apigee.runtimeAgent
O Apigee Watcher extrai as alterações relacionadas com os anfitriões virtuais de uma organização do sincronizador e faz as alterações necessárias para configurar a entrada do Istio.
* Este nome é usado no nome do ficheiro da chave da conta de serviço transferida.

Em alternativa, para ambientes de não produção, teste e demonstração, pode usar uma única conta de serviço com todas as funções atribuídas. Não é recomendado para ambientes de produção.

Componente* Função Necessário para a instalação básica? Descrição
apigee-non-prod Agente Analytics do Apigee, agente Connect do Apigee, administrador da organização do Apigee, agente Runtime do Apigee, gestor do sincronizador do Apigee, agente Cloud Trace, escritor de registos, escritor de métricas de monitorização, administrador de objetos de armazenamento Ou todos os SAs necessários acima Conta de serviço única para ambientes de demonstração ou teste. Consulte Instalação, Parte 2, Passo 5: crie contas de serviço.

Além de criar as contas de serviço indicadas nesta tabela, vai usar as chaves privadas de cada conta para gerar tokens de acesso, de modo a poder aceder às APIs Apigee. A ferramenta create-service-accounttransfere automaticamente os ficheiros de chaves para um diretório na sua máquina local quando cria ou atualiza as contas de serviço.

Crie as contas de serviço

Existem várias formas de criar contas de serviço, incluindo:

Cada um destes elementos é descrito nas secções seguintes.

Use a ferramenta create-service-account

A ferramenta create-service-account está disponível depois de transferir e expandir apigeectl no diretório tools/. Hibrida contas de serviço específicas de componentes e atribui as funções necessárias por si. A ferramenta também transfere automaticamente as chaves da conta de serviço e armazena-as no seu computador local.

Por exemplo, o comando seguinte cria todas as contas de serviço individuais separadas para um ambiente de produção, atribui as funções do IAM adequadas a cada conta de serviço e transfere o ficheiro de chave privada de cada conta para o diretório ./service-accounts:

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

O comando seguinte cria uma única conta de serviço denominada apigee-non-prod com todas as funções 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 mais informações sobre a utilização de create-service-account, consulte a referência create-service-account.

Use a Google Cloud Console

Pode criar contas de serviço com a consola do Google Cloud.

Para criar uma conta de serviço com a Google Cloud Console e gerar uma chave para a conta de serviço, faça o seguinte:

  1. Crie uma conta de serviço:

    1. Na Cloud Console, aceda à página Contas de serviço.

      Aceda a Contas de serviço

    2. Selecione o seu projeto.
    3. Clique em Criar conta de serviço.
    4. No campo Nome da conta de serviço, introduza um nome. A Cloud Console preenche o campo ID da conta de serviço com base neste nome.

      A Apigee recomenda que use um nome que reflita a função da conta de serviço. Pode definir o nome da conta de serviço para que seja o mesmo nome do componente que a usa. Por exemplo, defina o nome da conta de serviço do Logs Writer apigee-logger.

      Para mais informações sobre os nomes e as funções das contas de serviço, consulte o artigo Contas de serviço e funções usadas por componentes híbridos.

    5. Opcional: no campo Descrição da conta de serviço, introduza uma descrição para a conta de serviço. As descrições são úteis para relembrar para que é usada uma determinada conta de serviço.
    6. Clique em Criar e continuar.
    7. Clique no campo Selecionar uma função e selecione uma função, conforme descrito em Contas de serviços e funções usadas por componentes híbridos. Se as funções do Apigee não aparecerem na lista pendente, atualize a página.

      Por exemplo, para o componente de registo, selecione a função Logs Writer.

      Se necessário, introduza texto para filtrar a lista de funções por nome. Por exemplo, para listar apenas as funções do Apigee, introduza Apigee no campo de filtro.

      Pode adicionar mais do que uma função a uma conta de serviço, mas o Apigee recomenda que use apenas uma função para cada uma das contas de serviço recomendadas. Para alterar as funções de uma conta de serviço depois de a criar, use a página IAM na Cloud Console.

    8. Clique em Continuar.

      O Google Cloud apresenta a vista Conceder aos utilizadores acesso a esta conta de serviço:

      Campos para a função de utilizadores da conta de serviço e a função de administradores da conta de serviço, botão para criar chave

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

      O Google Cloud dá-lhe a opção de transferir uma chave JSON ou P12:

      Selecione o tipo de chave JSON ou P12

    10. Selecione JSON (a predefinição) e clique em Criar.

      O Google Cloud guarda o ficheiro de chave no formato JSON no seu computador local e apresenta uma confirmação quando a operação é bem-sucedida, como mostra o exemplo seguinte:

      Exemplo de nome do ficheiro.json

      Mais tarde, vai usar algumas das chaves da conta de serviço para configurar os serviços de tempo de execução híbridos. Por exemplo, quando configura o tempo de execução híbrido, especifica a localização das chaves da conta de serviço através das propriedades SERVICE_NAME.serviceAccountPath.

      Estas chaves são usadas pelas contas de serviço para obter chaves de acesso, que a conta de serviço usa para fazer pedidos às APIs Apigee em seu nome. (Mas isso ainda vai demorar algum tempo. Por agora, lembre-se apenas de onde o guardou.)

    11. Repita os passos 4 a 11 para cada conta de serviço apresentada em Contas de serviço e funções usadas por componentes híbridos (exceto a conta apigee-mart, que não tem nenhuma função associada, por isso não lhe atribua uma função).

      Quando terminar, deve ter as seguintes contas de serviço (além das predefinições, se existirem):

      Lista de contas de serviço. Caixa de seleção da coluna 1, coluna 2 Email, coluna 3 Estado, coluna 4 Nome da conta de serviço

      Na Google Cloud Console, as contas de serviço são indicadas com o ícone tecla do lado esquerdo, metade do retângulo do lado direito, tudo sublinhado.

    Depois de criar uma conta de serviço, se quiser adicionar ou remover uma função, tem de usar a visualização IAM e administração. Não pode gerir funções para contas de serviço na vista Contas de serviço.

    Use as APIs de criação de contas de serviço do gcloud

    Pode criar e gerir contas de serviço com a API Cloud Identity and Access Management.

    Para mais informações, consulte o artigo Criar e gerir contas de serviço.

    Resolução de problemas