Etapa 4: criar contas de serviço

Informações gerais

Nesta etapa, explicamos como criar as contas de serviço do Google Cloud necessárias para a Apigee híbrida funcionar e como atribuir os papéis apropriados do IAM a elas.

Este procedimento usa as duas variáveis de ambiente a seguir definidas na Etapa 2: fazer o download dos gráficos do Apigee Helm. Essas variáveis são opcionais. Se você não as tiver definido, substitua o caminho do diretório apropriado para cada variável nos exemplos de código.

Ambientes de produção e não produção

Este guia se refere às instalações de produção e de não produção. Uma instalação de produção é ajustada para aumentar a capacidade de uso, o armazenamento e a escalonabilidade. Uma instalação de não produção usa menos recursos e é principalmente para fins de aprendizado e demonstração.

Ao criar e configurar contas de serviço para a Apigee híbrida, é importante estar ciente do tipo de instalação que você está segmentando.

Para instalações de produção, recomendamos criar uma conta de serviço separada para cada componente da Apigee híbrida. Por exemplo, ambiente de execução, mart, métricas, udca e assim por diante recebem uma conta de serviço própria.

Para instalações sem produção, crie uma única conta de serviço que se aplique a todos os componentes.

Para saber mais sobre as contas de serviço usadas pela Apigee e os papéis atribuídos a elas, consulte Contas de serviço e papéis usados por componentes híbridos.

Como autenticar contas de serviço

A Apigee híbrida oferece suporte a três métodos de autenticação de contas de serviço do Google:

Identidade da carga de trabalho no AKS, EKS ou GKE

Para instalações híbridas da Apigee no GKE, o Google Cloud oferece uma opção chamada Identidade da carga de trabalho para autenticar componentes de ambiente de execução híbrido. Essa opção não usa os arquivos de certificado salvos para autenticar as contas de serviço. Em vez disso, ela associa as contas de serviço do Google Cloud que você criou nesta etapa a contas de serviço do Kubernetes no cluster do Kubernetes.

A identidade da carga de trabalho está disponível apenas em instalações do GKE.

Criar contas de serviço

A Apigee híbrida usa as seguintes contas de serviço:

Prod.

Conta de serviço Papéis do IAM Gráfico do Apigee Helm
apigee-cassandra Administrador de objetos do Storage apigee-datastore
apigee-logger Gravador de registros apigee-telemetry
apigee-mart Agente do Apigee Connect apigee-org
apigee-metrics Gravador de métricas do Monitoring apigee-telemetry
apigee-runtime Nenhum papel necessário apigee-env
apigee-synchronizer Gerenciador de sincronização da Apigee apigee-env
apigee-udca Agente de análise da Apigee apigee-org
apigee-watcher Agente do ambiente de execução da Apigee apigee-org

Sem produção

Conta de serviço Papéis do IAM Gráfico do Apigee Helm
apigee-non-prod Administrador de objetos do Storage
Gravador de registros
Agente de conexão da Apigee
Gravador de métrica de monitoramento
Gerenciador sincronizador da Apigee
Agente de Analytics da Apigee
Agente do ambiente de execução da Apigee
apigee-datastore
apigee-telemetry
apigee-org
apigee-env

A ferramenta create-service-account

A Apigee fornece uma ferramenta, create-service-account, no diretório apigee-operator/etc/tools:

$APIGEE_HELM_CHARTS_HOME/
    └── apigee-operator/
        └── etc/
            └── tools/
                └── create-service-account

Essa ferramenta cria as contas de serviço, atribui os papéis do IAM a cada uma delas e faz o download dos arquivos de certificado no formato JSON para cada uma delas.

Verifique se é possível executar create-service-account. Se você acabou de fazer o download dos gráficos, o arquivo create-service-account pode não estar em um modo executável. No diretório APIGEE_HELM_CHARTS_HOME, execute o seguinte comando:

$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/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 $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account

Criar contas de serviço

Como o Helm não aceita referências a arquivos fora do diretório de gráficos, você criará cada arquivo de certificado da conta de serviço no diretório de gráfico para o componente híbrido correspondente.

Para as próximas etapas, escolha se você está configurando uma instalação de produção ou de não produção.

Prod.

  1. Verifique se a variável de ambiente PROJECT_ID está definida.
    echo $PROJECT_ID

    O create-service-account tool uses the value of thePROJECT_ID environment variable . Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flag --project-id my_project_id aos comandos create-service-account.

  2. Crie as contas de serviço com os comandos a seguir, em que $APIGEE_HELM_CHARTS_HOME é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar cada conta de serviço. Responda com y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-cassandra \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-logger \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-mart \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-metrics \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-runtime \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-synchronizer \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-udca \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-watcher \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
  3. Para verificar se os arquivos da conta de serviço foram criados nos diretórios corretos, confira o conteúdo do diretório de cada gráfico. A resposta será parecida com esta:
    ls ./apigee-datastore
    Chart.yaml  my_project_id-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml  my_project_id-apigee-logger.json  my_project_id-apigee-metrics.json  templates  values.yaml
    
    ls ./apigee-org
    Chart.yaml                      my_project_id-apigee-udca.json     templates
    my_project_id-apigee-mart.json  my_project_id-apigee-watcher.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml  my_project_id-apigee-runtime.json  my_project_id-apigee-synchronizer.json  templates  values.yaml
    

Sem produção

  1. Verifique se a variável de ambiente PROJECT_ID está definida.
    echo $PROJECT_ID

    O create-service-account tool uses the value of thePROJECT_ID environment variable . Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flag --project-id my_project_id aos comandos create-service-account.

  2. Crie a conta de serviço com o comando a seguir, em que $APIGEE_HELM_CHARTS_HOME é o caminho em que você fez o download dos gráficos do Apigee Helm. Talvez seja necessário criar cada conta de serviço. Responda com y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
  3. Verifique o nome do arquivo da conta de serviço criado no diretório apigee-datastore:
    ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    Chart.yaml  my_project_id-apigee-non-prod.json  templates  values.yaml
  4. Copie o arquivo da conta de serviço para os outros diretórios de gráficos que precisarão referenciá-lo:
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-env/

Para mais informações sobre contas de serviço e a ferramenta create-service-account, consulte:

Agora você criou contas de serviço e atribuiu os papéis necessários aos componentes da Apigee híbrida. Em seguida, crie os certificados TLS exigidos pelo gateway de entrada híbrido.

Próxima etapa

1 2 3 4 (PRÓXIMA) Etapa 5: criar certificados TLS 6 7 8 9 10 11 12