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.
$APIGEE_HELM_CHARTS_HOME
: o diretório em que você fez o download dos gráficos do Apigee Helm, definido na Etapa 2: fazer o download dos gráficos do Apigee Helm.$PROJECT_ID
: o ID do projeto do Google Cloud, definido na Parte 1: configuração do projeto e da organização - Etapa 1: ativar APIs.
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, no EKS ou no GKE
Para instalações da Apigee híbrida 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 baixados 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. Consulte Como ativar a Identidade da carga de trabalho no GKE ou Como ativar a federação de identidade da carga de trabalho no AKS e no EKS
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-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. 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.
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
aos comandoscreate-service-account
. -
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 comy
.$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
- Copie o arquivo JSON
apigee-udca
para o diretório de gráficoapigee-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/
- 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 PROJECT_ID-apigee-cassandra.json templates values.yamlls ./apigee-telemetry
Chart.yaml PROJECT_ID-apigee-logger.json PROJECT_ID-apigee-metrics.json templates values.yamlls ./apigee-org
Chart.yaml PROJECT_ID-apigee-udca.json templates PROJECT_ID-apigee-mart.json PROJECT_ID-apigee-watcher.json values.yamlls ./apigee-env
Chart.yaml PROJECT_ID-apigee-runtime.json PROJECT_ID-apigee-synchronizer.json templates values.yaml
Sem produção
- Verifique se a variável de ambiente
PROJECT_ID
está definida.echo $PROJECT_ID
O
create-service-account tool uses the value of the
. Se não estiver, defina-a com o ID do projeto do Google Cloud ou adicione a flagPROJECT_ID
environment variable--project-id PROJECT_ID
aos comandoscreate-service-account
. -
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 comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
- 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
- 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.