Este passo explica como criar as contas de serviço da Google Cloud necessárias para o funcionamento do Apigee hybrid.
Vista geral
O Apigee hybrid usa contas de serviço do Google Cloud para permitir que os componentes híbridos comuniquem fazendo chamadas de API autorizadas.
Ambientes de produção vs. 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.
Workload Identity no GKE
Para instalações híbridas do Apigee no GKE, o Google Cloud oferece uma opção denominada Workload Identity para autenticar componentes de 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.
O Workload Identity só está disponível em instalações do GKE.
Crie as contas de serviço
create-service-account
Use a ferramenta create-service-account
nas seguintes circunstâncias:
- Está a fazer a instalação numa plataforma que não seja o GKE
- Está a instalar no GKE, mas não planeia usar a identidade de carga de trabalho.
Caso contrário, avance para Criar contas de serviço no Google Cloud console ou com gcloud
.
- Certifique-se de que as variáveis de ambiente HYBRID_FILES e PROJECT_ID estão definidas.
PROJECT_ID tem de estar definido como o ID do seu projeto do Google Cloud, porque a ferramenta
create-service-account
lê a variável de ambiente PROJECT_ID para criar as contas de serviço no projeto correto.echo $HYBRID_FILES
echo $PROJECT_ID
- Crie a conta de serviço com o seguinte comando:
Não prod
Este comando cria uma única conta de serviço denominada
apigee-non-prod
para utilização numa instalação não de produção e transfere o ficheiro de chave para a conta de serviço no diretório$HYBRID_FILES/service-accounts
.$HYBRID_FILES/tools/create-service-account --env non-prod --dir $HYBRID_FILES/service-accounts
Produção
Este comando cria todas as contas de serviço individuais para uma instalação de produção e transfere os ficheiros de chave para as contas de serviço no diretório
$HYBRID_FILES/service-accounts
.$HYBRID_FILES/tools/create-service-account --env prod --dir $HYBRID_FILES/service-accounts
Se vir a seguinte mensagem, introduza y:
[INFO]: gcloud configured project ID is project_id. Enter: y to proceed with creating service account in project: project_id Enter: n to abort.
Se estiver a instalar o Apigee Hybrid numa plataforma que não seja o GKE ou se estiver a instalar no GKE, mas não quiser usar a identidade de carga de trabalho, use a ferramenta fornecida pela Apigee, create-service-account, para criar as contas de serviço, atribuir as funções às contas de serviço e criar e transferir os ficheiros de chaves para a conta de serviço num único comando.
Se estiver a criar uma conta de serviço específica pela primeira vez, a ferramenta cria-a sem mais pedidos.
No entanto, se vir a seguinte mensagem e comando, introduza y para gerar novas chaves:
[INFO]: Service account apigee-non-prod@project_id.iam.gserviceaccount.com already exists. ... [INFO]: The service account might have keys associated with it. It is recommended to use existing keys. Press: y to generate new keys.(this does not deactivate existing keys) Press: n to skip generating new keys.
-
Verifique se a chave da conta de serviço foi criada através do seguinte comando. É responsável por armazenar estas chaves privadas em segurança. Os nomes dos ficheiros das chaves têm como prefixo o nome do seu projeto do Google Cloud.
ls $HYBRID_FILES/service-accounts
O resultado deve ter um aspeto semelhante ao seguinte:
project_id-apigee-non-prod.json
- Para saber mais sobre o
create-service-account
e todas as respetivas opções, consultecreate-service-account
. - Para saber mais acerca dos conceitos relacionados do Google Cloud, consulte os artigos Criar e gerir contas de serviço e Criar e gerir chaves de contas de serviço.
Se planeia usar a identidade da carga de trabalho no GKE para autenticar
componentes de tempo de execução híbrido, não precisa de criar nem transferir ficheiros de certificados para as
contas de serviço. Por isso, não use a ferramenta create-service-account
. Em alternativa,
crie as contas de serviço no Google Cloud console ou com a API IAM em gcloud
.
Siga as instruções em Crie contas de serviço usando para criar as seguintes contas de serviço e atribuir-lhes as seguintes funções:
Consola
Não prod
Para instalações de não produção:
Nome da conta de serviço | Funções de IAM |
---|---|
apigee-non-prod |
|
Produção
Para instalações de produção:
Instalações de produção | |
---|---|
Nome da conta de serviço | Funções de IAM |
apigee-cassandra |
Administrador de objetos de armazenamento |
apigee-logger |
Escritor de registos |
apigee-mart |
Agente do Apigee Connect |
apigee-metrics |
Escritor de métricas de monitorização |
apigee-runtime |
Nenhuma função necessária |
apigee-synchronizer |
Apigee Synchronizer Manager |
apigee-udca |
Agente do Apigee Analytics |
apigee-watcher |
Agente de runtime do Apigee |
Use os seguintes comandos para criar as contas de serviço e atribuir as funções do IAM.
gcloud
Não prod
Para instalações de não produção:
- Crie a conta de serviço
apigee-non-prod
:gcloud iam service-accounts create apigee-non-prod \ --display-name="apigee-non-prod" \ --project=$PROJECT_ID
- Atribua as funções do IAM à conta de serviço:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
- Verifique as associações de funções:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com"
Produção
Para instalações de produção:
Use os comandos seguintes para criar cada conta de serviço e atribuir a função do IAM correspondente.
- Conta de serviço
apigee-cassandra
:gcloud iam service-accounts create apigee-cassandra \ --display-name="apigee-cassandra" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-cassandra@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
- Conta de serviço
apigee-logger
:gcloud iam service-accounts create apigee-logger \ --display-name="apigee-logger" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-logger@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
- Conta de serviço
apigee-mart
:gcloud iam service-accounts create apigee-mart \ --display-name="apigee-mart" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-mart@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
- Conta de serviço
apigee-metrics
:gcloud iam service-accounts create apigee-metrics \ --display-name="apigee-metrics" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-metrics@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
- Conta de serviço
apigee-runtime
:gcloud iam service-accounts create apigee-runtime \ --display-name="apigee-runtime" \ --project=$PROJECT_ID
- Conta de serviço
apigee-synchronizer
:gcloud iam service-accounts create apigee-synchronizer \ --display-name="apigee-synchronizer" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-synchronizer@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
- Conta de serviço
apigee-udca
:gcloud iam service-accounts create apigee-udca \ --display-name="apigee-udca" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-udca@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
- Conta de serviço
apigee-watcher
:gcloud iam service-accounts create apigee-watcher \ --display-name="apigee-watcher" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-watcher@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
Para saber mais sobre como criar contas de serviço com o gcloud
, consulte o artigo
Crie contas de serviço.
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.
1 2 3 4 (NEXT) Passo 5: crie certificados TLS 6 7 8 9 10