create-service-account

Visão geral de create-serice-account

create-serice-account é uma ferramenta de linha de comando fornecida com a Apigee híbrida que cria contas de serviço do Google Cloud com papéis que permitem que componentes individuais da Apigee híbrida façam chamadas de API autorizadas e façam o download dos arquivos de chave da conta de serviço associados. É possível usar os arquivos de chave da conta de serviço gerados por esse comando no arquivo de modificação da configuração.

create-service-account cria uma ou mais contas de serviço no seu projeto atual do Google Cloud ou no projeto especificado, atribuindo o correto Papel do IAM à conta de serviço e faz o download do arquivo de certificado para a conta de serviço em um diretório na máquina local.

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

Também é possível criar contas de serviço no Console do Google Cloud. Consulte também Como criar e gerenciar contas de serviço.

Pré-requisitos

Papel

A ferramenta create-service-account requer que a CLI do gcloud esteja instalada. Os usuários que invocam o utilitário precisam ter o papel Service Account Admin.

Projeto

As contas de serviço estão vinculadas a um projeto específico do Google Cloud. create-service-account cria contas de serviço no projeto atual ou no projeto especificado e vincula os papéis do IAM às contas de serviço desse projeto. create-service-account também usa o ID do projeto como parte do nome de arquivo e e-mail da chave da conta de serviço. Por exemplo, se o nome do projeto for my-Hybrid-project, o arquivo de chave da conta de serviço da apigee-logger terá o nome my-hybrid-project-apigee-logger.json e o e-mail da conta de serviço será apigee-logger@my-hybrid-project.iam.gserviceaccount.com.

É possível especificar um projeto definindo uma variável de ambiente PROJECT_ID ou com a sinalização --project-id. create-service-account lê o valor da variável de ambiente PROJECT_ID. Se ele não estiver presente, será possível usar a sinalização --project-id.

Se você não especificar um ID do projeto do Cloud, o create-service-account usará o projeto na configuração atual do projeto da gcloud.

É possível verificar a configuração atual do projeto gcloud definida com o seguinte comando:

gcloud config list project

Se você precisar alterar o código do projeto atual, use o seguinte comando:

gcloud config set project PROJECT_ID

em que PROJECT_ID é o ID do projeto atual do Cloud. As instruções para criar um projeto do Cloud são abordadas na Etapa 2: criar um projeto do Google Cloud.

Local do arquivo

Dependendo da ferramenta que você está usando para instalar e gerenciar a Apigee híbrida, create-service-account pode ser encontrado nos seguintes diretórios:

  • Gráficos do Helm: $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/
  • apigeectl: $APIGEECTL_HOME/apigeectl/tools/

Como verificar se a ferramenta create-service-account é executável

Verifique se é possível executar create-service-account. Se você acabou de fazer o download dos gráficos do Apigee Helm, as ferramentas de linha de comando podem não estar no modo executável. Navegue até o diretório em que create-service-account está instalado e verifique se ele é executável executando-o com --help:

./create-service-account --help

Se a saída informar permission denied, será necessário tornar o arquivo executável, por exemplo, com chmod no Linux, MacOS ou UNIX ou no Windows Explorer ou com o comando icacls no Windows. Por exemplo:

chmod +x ./create-service-account

Como usar o create-service-account

Nos exemplos a seguir, mostramos o uso de create-service-account para tarefas comuns de configuração da Apigee híbrida.

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

Observação: em um ambiente híbrido de produção, a Apigee recomenda usar uma conta de serviço separada para cada componente. Use o comando a seguir para criar todas as contas de serviço para os componentes híbridos com os nomes padrão no diretório padrão.

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

Isso criará as seguintes contas de serviço com os arquivos de certificado baixados no diretório ./tools/service-accounts:

Conta de serviço Papel do IAM E-mail Arquivo 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 Nenhum papel atribuído 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

Criar uma única conta de serviço para um ambiente que não seja de produção

Para ambientes de não produção, como um ambiente experimental ou de demonstração, é possível criar uma única conta de serviço chamada "apigee-non-prod" que pode ser usada para todos os componentes. Essa conta de serviço terá todos os papéis do IAM no exemplo anterior atribuído a ela.

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

Isso criará como uma única conta de serviço chamada apigee-non-prod e fará o download do arquivo de certificado no diretório ./tools/service-accounts:

Conta de serviço Papéis IAM E-mail Arquivo 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 a seguir lista as sinalizações create-service-account:

Sinalizar Valores Descrição
--dir
-d
nome do diretório Especifica um diretório de saída para os arquivos de chave da conta de serviço. Se o diretório não existir, create-service-account será criado por ele. Se o diretório já existir, create-service-account substituirá todos os arquivos do diretório que tenham o mesmo nome dos arquivos de chave que ele está criando.

Se você não especificar um diretório de saída, create-service-account vai gravar os arquivos da conta de serviço no diretório service-accounts/, dentro do diretório em que create-service-account reside.

--env
-e
prod
non-prod
Especifica se você está criando 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.

    Em um ambiente de produção, recomenda-se que você tenha uma única conta de serviço para cada serviço da Apigee. Cada papel criado terá um único papel do IAM associado.

    create-service-account -env prod criará todas as contas de serviço usadas pela Apigee híbrida, a menos que você especifique uma conta de serviço específica com --profile.

  • --env non-prod cria uma única conta de serviço com todos os papéis do IAM vinculados a ela. Isso é útil para ambientes que não estejam relacionados à produção, como uma instalação experimental ou de demonstração.

    A conta de serviço será chamada de apigee-non-prod, a menos que você especifique um nome com a sinalização --name.

Se você executar create-service-account sem --env, ele solicitará que você insira prod ou non-prod.

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

O nome também faz parte do nome do arquivo de certificado e do e-mail da conta de serviço. Por exemplo, se você executar create-service-account --profile apigee-logger --name my-logger (presumindo que esse seja seu projeto atual do Cloud, ele será my-hybrid-project) create-service-account criará uma conta com:

  • Nome: my-logger
  • E-mail: my-logger@my-hybrid-project.iam.gserviceaccount.com
  • Arquivo de certificação: my-hybrid-project-my-logger.json

Se você não especificar --name, create-service-account usará o nome do perfil para o nome da conta de serviço ou "apigee-non-prod" se você 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 ser criada.

É possível especificar um nome para a conta de serviço com a sinalização --name.

Exige --env prod.

‑‑project‑id
-i
project id O ID do projeto do Google Cloud em que você está criando as contas de serviço.

create-service-account lê o valor da variável de ambiente PROJECT_ID. Se ele não estiver presente, será possível usar a sinalização --project-id.

Se você não especificar um código do projeto, create-service-account usará o código do projeto na configuração atual da gcloud.

Para mais informações sobre as contas de serviço usadas pela Apigee híbrida, consulte Sobre contas de serviço.

Também é possível criar contas de serviço no Console do Google Cloud. Consulte também Como criar e gerenciar contas de serviço.