create-service-account

Cria contas de serviço da Google Cloud com funções que permitem que os componentes híbridos do Apigee individuais façam chamadas de API autorizadas e transfiram os ficheiros de chaves de contas de serviço associados. Pode usar os ficheiros de chaves de contas de serviço gerados por este comando no ficheiro de substituições de configuração.

create-service-account cria uma ou mais contas de serviço no seu projeto atual do Google Cloud ou no projeto que especificar, atribui a função de IAM correta à conta de serviço e transfere o ficheiro de certificado da conta de serviço para um diretório no seu computador local.

A ferramenta create-service-account encontra-se no diretório HYBRID_ROOT_DIR/tools.

Para saber mais sobre as contas de serviço e ler a lista completa de contas de serviço recomendadas para ambientes de produção, consulte o seguinte:

Também pode criar contas de serviço na Google Cloud Console. Consulte também Criar e gerir contas de serviço.

Pré-requisitos

Função

A ferramenta create-service-account requer a instalação da CLI gcloud. Os utilizadores que invocam a utilidade devem ter a função Service Account Admin.

Projeto

As contas de serviço estão associadas a um projeto do Google Cloud específico. create-service-account cria contas de serviço no seu projeto atual ou no projeto que especificar e associa as funções de IAM às contas de serviço nesse projeto. create-service-account também usa o ID do projeto como parte do nome do ficheiro da chave da conta de serviço e do email. Por exemplo, se o seu projeto se chamar my-hybrid-project, o ficheiro de chave da conta de serviço apigee-logger vai chamar-se my-hybrid-project-apigee-logger.json e o endereço de email da conta de serviço vai ser apigee-logger@my-hybrid-project.iam.gserviceaccount.com.

Pode especificar um projeto definindo uma variável de ambiente PROJECT_ID ou com a flag --project-id. create-service-account lê o valor da variável de ambiente PROJECT_ID. Se não estiver presente, pode usar a flag --project-id.

Se não especificar um ID do projeto do Google Cloud, create-service-account usa o projeto na configuração do projeto do gcloud atual.

Pode verificar a configuração do projeto gcloud atualmente definida com o seguinte comando:

gcloud config list project

Se precisar de alterar o ID do projeto atual, use o seguinte comando:

gcloud config set project PROJECT_ID

Em que PROJECT_ID é o ID do seu projeto do Google Cloud atual. As instruções para criar um projeto do Google Cloud são abordadas no passo 2: crie um projeto do Google Cloud.

A usar create-service-account

Os exemplos seguintes mostram a utilização de create-service-account para tarefas de configuração comuns do Apigee hybrid.

Crie contas de serviço para um ambiente de produção

Num ambiente híbrido de produção, o Apigee recomenda a utilização de uma conta de serviço separada para cada componente. Use o seguinte comando para criar todas as contas de serviço para os componentes híbridos com os respetivos nomes predefinidos no diretório predefinido.

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

Isto cria as seguintes contas de serviço com os ficheiros de certificado transferidos no diretório ./tools/service-accounts:

Conta de serviço Função de IAM Email Ficheiro de certificação
apigee-cassandra roles/storage.objectAdmin apigee-cassandra@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-cassandra.json
apigee-logger roles/logging.logWriter apigee-logger@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-logger.json
apigee-mart roles/apigeeconnect.Agent apigee-mart@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-mart.json
apigee-metrics roles/monitoring.metricWriter apigee-metrics@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-metrics.json
apigee-runtime Nenhuma função atribuída apigee-runtime@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-runtime.json
apigee-synchronizer roles/apigee.synchronizerManager apigee-synchronizer@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-synchronizer.json
apigee-udca roles/apigee.analyticsAgent apigee-udca@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-udca.json
apigee-watcher roles/apigee.runtimeAgent apigee-watcher@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-watcher.json

Crie uma única conta de serviço para um ambiente de não produção

Para ambientes de não produção, como um ambiente experimental ou de demonstração, pode criar uma única conta de serviço denominada "apigee-non-prod" que pode usar para todos os componentes. Esta conta de serviço terá todas as funções da IAM no exemplo anterior atribuídas.

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

Isto cria uma única conta de serviço denominada apigee-non-prod e transfere o ficheiro de certificado para o diretório ./tools/service-accounts:

Conta de serviço Funções de IAM Email Ficheiro de certificação
apigee-non-prod roles/apigee.analyticsAgent
roles/apigee.runtimeAgent
roles/apigee.synchronizerManager
roles/apigeeconnect.Agent
roles/logging.logWriter
roles/monitoring.metricWriter
roles/storage.objectAdmin
apigee-non-prod@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-non-prod.json

create-service-account syntax

A ferramenta create-service-account usa a seguinte sintaxe:

create-service-account [flags] 

A tabela seguinte indica as flags create-service-account:

Bandeira Valores Descrição
--dir
-d
nome do diretório Especifica um diretório de saída para os ficheiros de chaves de contas de serviço. Se o diretório não existir, o comando create-service-account cria-o. Se o diretório já existir, create-service-account substitui todos os ficheiros no diretório que tenham o mesmo nome que os ficheiros de chaves que está a criar.

Se não especificar um diretório de saída, create-service-account escreve os ficheiros da conta de serviço no diretório service-accounts/ no diretório onde create-service-account reside.

--env
-e
prod
non-prod
Especifica se está a criar contas de serviço para um ambiente de produção (prod) ou um ambiente de não produção (non-prod).
  • --env prod cria contas de serviço para ambientes híbridos de produção.

    Num ambiente de produção, recomenda-se que tenha uma única conta de serviço para cada serviço do Apigee. Cada função criada tem uma única função IAM associada.

    create-service-account -env prod cria todas as contas de serviço usadas pelo Apigee Hybrid, a menos que especifique uma conta de serviço específica com --profile.

  • --env non-prod cria uma única conta de serviço com todas as funções da IAM associadas. Isto é útil para ambientes de não produção, como uma instalação experimental ou de demonstração.

    A conta de serviço vai ter o nome apigee-non-prod, a menos que especifique um nome com a flag --name.

Se executar create-service-account sem --env, é-lhe pedido que introduza prod ou non-prod.

--help
-h
nenhum Apresenta texto de ajuda.
--name
-n
Nome da conta de serviço Especifica um nome para a conta de serviço. --name aplica-se apenas a uma única conta de serviço, especificada com --profile ou --env non-prod.

O nome também faz parte do nome do ficheiro cert e do email da conta de serviço. Por exemplo, se executar create-service-account --profile apigee-logger --name my-logger (partindo do princípio de que, para este exemplo, o seu projeto do Google Cloud atual é my-hybrid-project) create-service-account, é criada uma conta com:

  • Nome: my-logger
  • Email: my-logger@my-hybrid-project.iam.gserviceaccount.com
  • Ficheiro Cert: my-hybrid-project-my-logger.json

Se não especificar --name, create-service-account usa o nome do perfil para o nome da conta de serviço ou "apigee-non-prod" se especificar --env non-prod.

‑‑profile
-p
apigee‑cassandra
apigee‑logger
apigee‑mart
apigee‑metrics
apigee‑runtime
apigee‑synchronizer
apigee‑udca
apigee‑watcher
Apenas para ambientes de produção, especifica uma única conta de serviço a criar.

Pode especificar um nome para a conta de serviço com a flag --name.

Requer --env prod.

‑‑project‑id
-i
ID do projeto O ID do projeto do Google Cloud no qual está a criar as contas de serviço.

create-service-account lê o valor da variável de ambiente PROJECT_ID. Se não estiver presente, pode usar a flag --project-id.

Se não especificar um ID do projeto, o create-service-account usa o ID do projeto na sua configuração atual do gcloud.

Para mais informações sobre as contas de serviço usadas pelo Apigee hybrid, consulte o artigo Acerca das contas de serviço.

Também pode criar contas de serviço na Google Cloud Console. Consulte também Criar e gerir contas de serviço.