Etapa 4: criar contas de serviço

Visão geral

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, mint, udca e assim por diante. Cada componente tem uma conta de serviço dedicada.

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 aos seguintes métodos de autenticação de contas de serviço do Google:

  • Secrets do Kubernetes
  • Arquivos de chave JSON da conta de serviço ("Arquivos JSON" nas guias de seleção na seção a seguir).
  • Vault
  • Federação de identidade da carga de trabalho para GKE ("WIF para GKE" nas guias de seleção na seção a seguir).
  • Federação de identidade da carga de trabalho em outras plataformas ("WIF em outras plataformas" nas guias de seleção na seção a seguir).

Na seção a seguir, escolha o procedimento para o tipo de autenticação que você planeja usar.

Criar contas de serviço

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

Produção

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 da métrica de monitoramento apigee-telemetry
apigee-mint-task-scheduler
(obrigatório apenas se você estiver usando a Monetização para a Apigee híbrida)
Nenhum papel necessário apigee-org
apigee-runtime Nenhum papel necessário apigee-env
apigee-synchronizer Gerenciador de sincronização da Apigee
Administrador de objetos do Storage
apigee-env
apigee-udca Agente de análise da Apigee apigee-org
apigee-env
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. Por exemplo:

chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account

Criar contas de serviço

Escolha o procedimento para o método de autenticação da conta de serviço que você planeja usar na instalação. Para mais informações, consulte Métodos de autenticação de contas de serviço na Apigee híbrida.

Secrets do Kubernetes

Para preparar os arquivos de chave da conta de serviço para armazenar em secrets do Kubernetes, use a ferramenta create-service-account para criar os arquivos de chave da conta de serviço com a flag --dir e criar um diretório para eles.

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 PROJECT_ID ao comando 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 \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Para verificar se os arquivos da conta de serviço foram criados, confira o conteúdo do diretório service-accounts. A resposta será parecida com esta:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-cassandra.json            my-project-apigee-runtime.json
    my-project-apigee-logger.json               my-project-apigee-synchronizer.json
    my-project-apigee-mart.json                 my-project-apigee-udca.json
    my-project-apigee-metrics.json              my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json

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 PROJECT_ID ao comando create-service-account.

  2. Crie as contas 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 a 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/service-accounts
  3. Para verificar se o arquivo da conta de serviço foi criado, confira o conteúdo do diretório service-accounts. A resposta será parecida com esta:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-non-prod.json

Arquivos JSON

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.

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 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-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

    Se você estiver ativando a monetização para a Apigee híbrida (Apigee híbrida v1.15.1 e mais recentes):

    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-mint-task-scheduler \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
  3. Copie o arquivo JSON apigee-udca para o diretório de gráfico apigee-env. Ele é necessário para operações no escopo da organização e do ambiente.
    cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
  4. 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-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml                     my-project-apigee-metrics.json  values.yaml
    my-project-apigee-logger.json  templates
    
    ls ./apigee-org
    Chart.yaml                                  my-project-apigee-udca.json
    my-project-apigee-mart.json                 my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml                      my-project-apigee-synchronizer.json  templates
    my-project-apigee-runtime.json  my-project-apigee-udca.json          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 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  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 $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-org/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-env/

Vault

Para preparar os arquivos de chave da conta de serviço para armazenar no Vault, use a ferramenta create-service-account para criar os arquivos de chave da conta de serviço com a flag --dir e criar um diretório para os arquivos de chave.

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 PROJECT_ID ao comando 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 \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Para verificar se os arquivos da conta de serviço foram criados, confira o conteúdo do diretório service-accounts. A resposta será parecida com esta:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-cassandra.json            my-project-apigee-runtime.json
    my-project-apigee-logger.json               my-project-apigee-synchronizer.json
    my-project-apigee-mart.json                 my-project-apigee-udca.json
    my-project-apigee-metrics.json              my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json
    

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 PROJECT_ID ao comando create-service-account.

  2. Crie as contas 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 a 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/service-accounts
  3. Para verificar se o arquivo da conta de serviço foi criado, confira o conteúdo do diretório service-accounts. A resposta será parecida com esta:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-non-prod.json

WIF para GKE

Crie as contas de serviço para sua instalação com os seguintes comandos:

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 PROJECT_ID ao comando 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 \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifique a criação das contas de serviço do Google com o seguinte comando:
    gcloud iam service-accounts list --project $PROJECT_ID

    A saída será parecida com esta:

    DISPLAY NAME                EMAIL                                                          DISABLED
    apigee-cassandra            apigee-cassandra@my-project.iam.gserviceaccount.com            False
    apigee-mart                 apigee-mart@my-project.iam.gserviceaccount.com                 False
    apigee-metrics              apigee-metrics@my-project.iam.gserviceaccount.com              False
    apigee-mint-task-scheduler  apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com  False
    apigee-runtime              apigee-runtime@my-project.iam.gserviceaccount.com              False
    apigee-synchronizer         apigee-synchronizer@my-project.iam.gserviceaccount.com         False
    apigee-udca                 apigee-udca@my-project.iam.gserviceaccount.com                 False
    apigee-watcher              apigee-watcher@my-project.iam.gserviceaccount.com              False
    

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 PROJECT_ID ao comando create-service-account.

  2. Crie as contas 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 a 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/service-accounts
  3. Verifique a criação das contas de serviço do Google com o seguinte comando:
    gcloud iam service-accounts list --project $PROJECT_ID

    A saída será parecida com esta:

    DISPLAY NAME         EMAIL                                                   DISABLED
    apigee-non-prod      apigee-non-prod@my-project.iam.gserviceaccount.com      False
    

Opcional:não é necessário ter os arquivos de chave da conta de serviço para a Federação de Identidade da Carga de Trabalho para GKE. Você pode excluir o diretório service-accounts depois de terminar.

WIF em outras plataformas

Crie as contas de serviço para sua instalação com os seguintes comandos:

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 PROJECT_ID ao comando 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 \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifique a criação das contas de serviço do Google com o seguinte comando:
    gcloud iam service-accounts list --project $PROJECT_ID

    A saída será parecida com esta:

    DISPLAY NAME                EMAIL                                                          DISABLED
    apigee-cassandra            apigee-cassandra@my-project.iam.gserviceaccount.com            False
    apigee-mart                 apigee-mart@my-project.iam.gserviceaccount.com                 False
    apigee-metrics              apigee-metrics@my-project.iam.gserviceaccount.com              False
    apigee-mint-task-scheduler  apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com  False
    apigee-runtime              apigee-runtime@my-project.iam.gserviceaccount.com              False
    apigee-synchronizer         apigee-synchronizer@my-project.iam.gserviceaccount.com         False
    apigee-udca                 apigee-udca@my-project.iam.gserviceaccount.com                 False
    apigee-watcher              apigee-watcher@my-project.iam.gserviceaccount.com              False
    

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 PROJECT_ID ao comando create-service-account.

  2. Crie as contas 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 a 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/service-accounts
  3. Verifique a criação das contas de serviço do Google com o seguinte comando:
    gcloud iam service-accounts list --project $PROJECT_ID

    A saída será parecida com esta:

    DISPLAY NAME         EMAIL                                                   DISABLED
    apigee-non-prod      apigee-non-prod@my-project.iam.gserviceaccount.com      False
    

Opcional:não é necessário ter os arquivos de chave da conta de serviço para a Federação de Identidade da Carga de Trabalho para GKE. Você pode excluir o diretório service-accounts depois de terminar.

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: configurar a autenticação da conta de serviço 6 7 8 9 10 11