Etapa 4: criar contas de serviço

Nesta etapa, explicamos como criar as contas de serviço do Google Cloud necessárias para o funcionamento da Apigee híbrida.

Informações gerais

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 usando create-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 ou gcloud 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 com gcloud.

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.

  1. Verifique se as variáveis de ambiente HYBRID_FILES e PROJECT_ID 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
  2. 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.
    
  3. 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

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
  • Agente de análise da Apigee
  • Agente do Apigee Connect
  • Agente do ambiente de execução da Apigee
  • Gerenciador de sincronização da Apigee
  • Gravador de registros
  • Gravador de métricas do Monitoring
  • Administrador de objetos do Storage

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:

  1. 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
  2. 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"
  3. 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.

  1. 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"
  2. 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"
  3. 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"
  4. 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"
  5. Conta de serviço apigee-runtime:
    gcloud iam service-accounts create apigee-runtime \
      --display-name="apigee-runtime" \
      --project=$PROJECT_ID
  6. 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"
  7. 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"
  8. 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