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.
Contas de serviço e funções usadas por componentes híbridos
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 armazenamentoroles/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 registosroles/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 Connectroles/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çãoroles/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 Managerroles/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 Analyticsroles/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 Apigeeroles/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-account
transfere 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:
- (Recomendado) ferramenta
create-service-account
- Google Cloud Console
- gcloud SDK
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 os gráficos do Helm do Apigee hybrid.
Pode encontrar a ferramenta create-service-account
no seguinte diretório:
APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
create-service-account
cria contas de serviço híbridas específicas dos componentes
e atribui as funções necessárias. 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:
-
Crie uma conta de serviço:
-
Na Cloud Console, aceda à página Contas de serviço.
- Selecione o seu projeto.
- Clique em Criar conta de serviço.
-
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.
- 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.
- Clique em Criar e continuar.
-
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.
- Clique em Continuar.
O Google Cloud apresenta a vista Conceder aos utilizadores acesso a esta conta de serviço:
- Em Criar chave (opcional), clique em Criar chave.
O Google Cloud dá-lhe a opção de transferir uma chave JSON ou P12:
- 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:
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.)
- 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):
Na Google Cloud Console, as contas de serviço são indicadas com o ícone
.
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
-