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.
$APIGEE_HELM_CHARTS_HOME
: o diretório onde transferiu os gráficos Helm do Apigee, definidos no Passo 2: transfira os gráficos Helm do Apigee.$PROJECT_ID
: o ID do projeto do Google Cloud, definido na Parte 1: configuração do projeto e da organização – Passo 1: ativar APIs.
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
- 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 the
. Se não estiver definido, defina-o com o ID do seu 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 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 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
apigee-udca
ficheiro 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/
- 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.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 my_project_id-apigee-udca.json templates values.yaml
Não prod
- 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 the
. Se não estiver definido, defina-o com o ID do seu 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 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 comy
.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
- 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
- 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.