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. 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 | 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 | Arquivo de certificação | |
---|---|---|---|
apigee-non-prod |
roles/apigee.analyticsAgent |
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, |
--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 ).
Se você executar |
--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
Se você não especificar |
‑‑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
Exige |
‑‑project‑id -i |
project id | O ID do projeto do Google Cloud em que você está criando as contas de serviço.
Se você não especificar um código do projeto, |
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.