Passo 4: crie contas de serviço

Vista geral

Este passo explica como criar as contas de serviço do Google Cloud necessárias para o funcionamento do Apigee hybrid e atribuir-lhes as funções do IAM adequadas.

Este procedimento usa as duas variáveis de ambiente seguintes definidas no Passo 2: transfira os gráficos do Helm do Apigee. Estas variáveis são opcionais. Se não os definiu, substitua o caminho do diretório adequado para cada variável nos exemplos de código.

Ambientes de produção vs. de não produção

Este guia refere-se às instalações de produção ("Prod") e não produção ("Non-prod"). Uma instalação de produção é otimizada para uma maior capacidade de utilização, armazenamento e escalabilidade. Uma instalação de não produção usa menos recursos e destina-se principalmente a fins de aprendizagem e demonstração.

Quando cria e configura contas de serviço para o Apigee Hybrid, é importante ter em atenção o tipo de instalação que está a segmentar.

Para instalações de produção, recomendamos que crie uma conta de serviço separada para cada componente híbrido do Apigee. Por exemplo, o tempo de execução, o mart, as métricas, o udca, etc., têm cada um a sua própria conta de serviço.

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

Para saber mais sobre as contas de serviço usadas pelo Apigee e as funções que lhes são atribuídas, consulte o artigo Contas de serviço e funções usadas pelos componentes híbridos.

Autenticação de contas de serviço

O Apigee hybrid suporta três métodos de autenticação de contas de serviço Google:

Workload Identity no AKS, EKS ou GKE

Para instalações híbridas do Apigee no GKE, o Google Cloud oferece uma opção denominada Workload Identity para autenticar componentes do runtime híbrido. Esta opção não usa ficheiros de certificados transferidos para autenticar as contas de serviço. Em vez disso, associa as contas de serviço do Google Cloud que criar neste passo às contas de serviço do Kubernetes no cluster do Kubernetes. Consulte os artigos Ativar o Workload Identity no GKE ou Ativar a federação de identidades da carga de trabalho no AKS e EKS

Crie as contas de serviço

O Apigee Hybrid usa as seguintes contas de serviço:

Prod

Conta de serviço Funções de IAM Gráfico Helm do Apigee
apigee-cassandra Administrador de objetos de armazenamento apigee-datastore
apigee-logger Escritor de registos apigee-telemetry
apigee-mart Agente do Apigee Connect apigee-org
apigee-metrics Escritor de métricas de monitorização apigee-telemetry
apigee-runtime Nenhuma função necessária apigee-env
apigee-synchronizer Apigee Synchronizer Manager
Administrador de objetos de armazenamento
apigee-env
apigee-udca Agente do Apigee Analytics apigee-org
apigee-env
apigee-watcher Agente de runtime do Apigee apigee-org

Não prod

Conta de serviço Funções de IAM Gráfico Helm do Apigee
apigee-non-prod Storage Object Admin
Logs Writer
Apigee Connect Agent
Monitoring Metric Writer
Apigee Synchronizer Manager
Apigee Analytics Agent
Apigee Runtime Agent
apigee-datastore
apigee-telemetry
apigee-org
apigee-env

A ferramenta create-service-account

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

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

Esta ferramenta cria as contas de serviço, atribui as funções do IAM a cada conta e transfere os ficheiros de certificado no formato JSON para cada conta.

Valide se consegue executar create-service-account. Se acabou de transferir os gráficos, o ficheiro create-service-account pode não estar num 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 indicar permission denied, tem de tornar o ficheiro executável, por exemplo, com chmod no Linux, MacOS ou UNIX, ou no Explorador do Windows, ou com o comando icacls no Windows. Por exemplo:

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

Crie as contas de serviço

Uma vez que o Helm não suporta referências a ficheiros fora do diretório do gráfico, vai criar cada ficheiro de certificado da conta de serviço no diretório do gráfico para o componente híbrido correspondente.

Para os passos seguintes, escolha se está a configurar uma instalação de produção ou não de produção.

Prod

  1. Certifique-se de que 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 definido, defina-o com o ID do seu 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 seguintes comandos, em que $APIGEE_HELM_CHARTS_HOME é o caminho onde transferiu os gráficos Helm do Apigee. Pode ser-lhe pedido que crie cada conta de serviço. Responde 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
  3. Copie o apigee-udcaficheiro JSON para o diretório do gráficoapigee-env. É necessário para operações ao nível da organização e ao nível do ambiente.
    cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
  4. Verifique se os ficheiros da conta de serviço foram criados nos diretórios corretos, verificando o conteúdo do diretório de cada gráfico. O resultado deve ter o seguinte aspeto:
    ls ./apigee-datastore
    Chart.yaml  PROJECT_ID-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml  PROJECT_ID-apigee-logger.json  PROJECT_ID-apigee-metrics.json  templates  values.yaml
    
    ls ./apigee-org
    Chart.yaml                      PROJECT_ID-apigee-udca.json     templates
    PROJECT_ID-apigee-mart.json  PROJECT_ID-apigee-watcher.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml  PROJECT_ID-apigee-runtime.json  PROJECT_ID-apigee-synchronizer.json my_project_id-apigee-udca.json  templates  values.yaml
    

Não prod

  1. Certifique-se de que 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 definido, defina-o com o ID do seu 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 seguinte comando, em que $APIGEE_HELM_CHARTS_HOME é o caminho onde transferiu os gráficos do Helm do Apigee. Pode ser-lhe pedido que crie cada conta de serviço. Responde com y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
  3. Valide o nome do ficheiro 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 ficheiro da conta de serviço para os outros diretórios de gráficos que vão precisar de consultá-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/

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

Agora, criou contas de serviço e atribuiu as funções necessárias aos componentes do Apigee hybrid. Em seguida, crie os certificados TLS necessários para o gateway de entrada híbrido.

Passo seguinte

1 2 3 4 (NEXT) Passo 5: crie certificados TLS 6 7 8 9 10 11