Nesta etapa, explicamos como criar as contas de serviço do Google Cloud necessárias para o funcionamento da Apigee híbrida.
Visão geral
A Apigee híbrida usa contas de serviço do Google Cloud para permitir que os componentes híbridos se comuniquem fazendo chamadas de API autorizadas.
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, tempo 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.
Identidade da carga de trabalho no GKE
Para instalações híbridas da Apigee 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 salvos 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.
A identidade da carga de trabalho está disponível apenas em instalações do GKE.
Criar contas de serviço
Use os procedimentos a seguir para criar as contas de serviço do Google Cloud para a instalação híbrida:
- A ferramenta
create-service-account
: se você estiver instalando a Apigee híbrida em uma plataforma diferente do GKE ou se estiver instalando no GKE, mas não quiser usar a identidade da carga de trabalho, use a ferramenta fornecida pela Apigee,create-service-account
, para criar as contas de serviço, atribuir os papéis às contas de serviço e criar e fazer o download dos arquivos de chave para a conta de serviço em um único comando. Siga os procedimentos em
Criar contas de serviço usandocreate-service-account
. - Console do Google Cloud ou
gcloud
: se você estiver instalando a Apigee híbrida no GKE e planeja usar a identidade da carga de trabalho, use o Console do Google Cloud ougcloud
para criar a contas de serviço sem fazer o download dos arquivos de certificado. Siga os procedimentos em
Criar contas de serviço no Console do Google Cloud ou comgcloud
.
Criar contas de serviço usando create-service-account
Use a ferramenta create-service-account
nas seguintes circunstâncias:
- Você está instalando em uma plataforma diferente do GKE
- Você está instalando no GKE, mas não planeja usar a identidade da carga de trabalho.
Caso contrário, pule para Criar contas de serviço no Console do Google Cloud ou com gcloud
.
- Verifique se as variáveis de ambiente HYBRID_FILES e HYBRID_FILES estão definidas.
PROJECT_ID precisa ser definido como o ID do 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 na projeto correto.echo $HYBRID_FILES
echo $PROJECT_ID
- Crie a conta de serviço com o seguinte comando:
Sem produção
Esse comando cria uma única conta de serviço chamada
apigee-non-prod
para uso em uma instalação de não produção e faz o download do arquivo de chave da 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
Esse comando cria todas as contas de serviço individuais para uma instalação de produção e faz o download dos arquivos de chave das 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 o seguinte prompt aparecer, digite 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 essa for a primeira vez que você está criando uma conta de serviço específica, a ferramenta a criará sem mais solicitações.
Se, no entanto, você vir a mensagem e o prompt a seguir, digite 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 usando o seguinte comando. Você é responsável por armazenar essas
chaves privadas com segurança. Os nomes dos arquivos da chave são prefixados com o nome do seu projeto do Google Cloud.
ls $HYBRID_FILES/service-accounts
O resultado será similar a este:
project_id-apigee-non-prod.json
- Para saber mais sobre o
create-service-account
e todas ascreate-service-account
- Para saber mais sobre os conceitos relacionados do Google Cloud, consulte Como criar e gerenciar contas de serviço e Como criar e gerenciar chaves da conta de serviço.
Crie contas de serviço no Console do Google Cloud ou com gcloud
Se você planeja usar a identidade da carga de trabalho no GKE para autenticar componentes de ambiente de execução híbrido, não é necessário criar e fazer o download de arquivos de certificado para as contas de serviço. Portanto, não use a ferramenta create-service-account
. Em vez disso,
crie as contas de serviço no Console do Google Cloud ou com a API IAM em gcloud
.
Caso contrário, pule para Criar contas de serviço usando create-service-account
.
Console
Siga as instruções em Criar contas de serviço para criar as contas de serviço a seguir e atribuir os seguintes papéis a elas:
Sem produção
Para instalações de não produção:
Nome da conta de serviço | Papéis IAM |
---|---|
apigee-non-prod |
|
Production
Para instalações de produção:
Instalações de produção | |
---|---|
Nome da conta de serviço | Papéis IAM |
apigee-cassandra |
Administrador de objetos do Storage |
apigee-logger |
Gravador de registros |
apigee-mart |
Agente do Apigee Connect |
apigee-metrics |
Gravador de métricas do Monitoring |
apigee-runtime |
Nenhum papel necessário |
apigee-synchronizer |
Gerenciador de sincronização da Apigee |
apigee-udca |
Agente de análise da Apigee |
apigee-watcher |
Agente do ambiente de execução da Apigee |
gcloud
Use os seguintes comandos para criar as contas de serviço e atribuir os papéis do IAM.
Sem produção
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
- Conceda papéis 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 vinculações de papel:
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"
Production
Para instalações de produção:
Use os comandos a seguir para criar cada conta de serviço e atribuir o papel correspondente do IAM.
- 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 gcloud
, consulte Criar contas de serviço.
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.
1 2 3 4 (PRÓXIMA) Etapa 5: criar certificados TLS 6 7 8 9 10 11