Neste documento, explicamos as contas de serviço e as chaves do Google Cloud necessárias para criar clusters na sua implementação de clusters do Anthos no VMware (GKE On-Prem).
As instruções aqui são completas. Para uma introdução mais curta sobre como usar uma conta de serviço, consulte Configurar infraestrutura mínima.
Antes de começar
Crie projetos do Google Cloud.
Visão geral de contas de serviço
Antes de criar os clusters de administrador e de usuário, é necessário ter estas contas de serviço:
- Conta de serviço de acesso a componentes
- Conta de serviço connect-register
- Conta de serviço logging-monitoring
Dependendo dos recursos que você quer ativar, talvez também seja necessário ter algumas contas de serviço opcionais.
Noções básicas sobre contas de serviço e projetos do Google Cloud
Ao criar uma conta de serviço, você a associa a um projeto do Google Cloud. Esse projeto do Google Cloud é chamado de projeto pai da conta de serviço.
Você identifica o projeto pai de uma conta de serviço observando
o endereço de e-mail dela. Por exemplo, veja o endereço de e-mail
de uma conta de serviço denominada logger
. O projeto pai é alice-123
.
logger@alice-123.iam.gserviceaccount.com
Ao conceder um papel de Identity and Access Management (IAM) a uma conta de serviço, você o concede à conta de serviço em um projeto específico do Google Cloud. Isso segue o padrão geral de conceder um papel a uma identidade em um recurso.
Por exemplo, é possível conceder o papel bigquery.dataEditor
à
conta de serviço logger@alice-123.iam.gserviceaccount.com
no projeto bob-456
. Nesse caso, a conta de serviço é a identidade e o
projeto do Google Cloud é o recurso.
É importante compreender que é possível conceder um papel a uma conta de serviço em um projeto do Google Cloud que não seja o projeto pai da conta de serviço.
Permissões para conceder papéis a contas de serviço
Cada uma das contas de serviço precisa receber determinados papéis no projeto relevante
do Google Cloud. Por exemplo, sua conta de serviço connect-register precisa
receber o papel gkehub.admin
no projeto host da frota.
Para conceder papéis em um projeto do Google Cloud, é preciso
ter determinadas permissões no projeto. Para detalhes, consulte
roles/resourcemanager.projectIamAdmin
em
Noções básicas sobre papéis.
Se tiver as permissões necessárias, você mesmo poderá conceder os papéis. Caso contrário, outra pessoa na sua organização precisará conceder esses papéis para você.
Como usar gkeadm
para criar automaticamente contas de serviço
Nesta página, mostramos como criar contas de serviço manualmente e conceder papéis
a elas. Como alternativa a executar essas etapas manualmente, é possível que
gkeadm
crie algumas contas de serviço e conceda papéis quando você
criar uma estação de trabalho de administrador. Para mais informações, consulte
Como criar a estação de trabalho de administrador.
Conta de serviço de acesso a componentes
Os clusters do Anthos no VMware usam essa conta de serviço para fazer o download de componentes do cluster, em seu nome, do Container Registry.
Para criar uma conta de serviço de acesso a componentes:
gcloud iam service-accounts create component-access-sa \ --display-name "Component Access Service Account" \ --project PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Google Cloud que você quer que seja o projeto pai da sua conta de serviço.
Para criar uma chave JSON para sua conta de serviço de acesso a componentes:
gcloud iam service-accounts keys create component-access-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Substitua SERVICE_ACCOUNT_EMAIL pelo endereço de e-mail da conta de serviço de acesso a componentes.
Como conceder papéis à sua conta de serviço de acesso a componentes
Os arquivos de configuração do cluster de usuário e de administrador têm vários campos que especificam um ID de projeto.
No arquivo de configuração do cluster de administrador:
stackdriver: projectID: "" ... cloudAuditLogging: projectid: ""
No arquivo de configuração do cluster do usuário:
stackdriver: projectID: "" ... gkeConnect: projectID: "" ... usageMetering: bigQueryProjectID: "" ... cloudAuditLogging: projectid: ""
Os IDs de projeto nos seus arquivos de configuração não precisam ser distintos. Por
exemplo, gkeConnect.projectID
pode ser igual a
cloudAuditLogging.projectID
. Na verdade, todos os IDs de projeto nos
arquivos de configuração podem ser iguais.
Sua conta de serviço de acesso a componentes precisa receber os seguintes papéis de IAM em cada projeto do Google Cloud especificado nos arquivos de configuração de cluster de usuário e de administrador. Estes papéis são necessários para que os clusters do Anthos no VMware possam fazer verificações de simulação:
serviceusage.serviceUsageViewer
iam.roleViewer
iam.serviceAccountViewer
Para cada projeto do Google Cloud especificado nos arquivos de configuração do cluster, execute os seguintes comandos para conceder os papéis necessários à conta de serviço de acesso ao componente:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/serviceusage.serviceUsageViewer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.roleViewer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.serviceAccountViewer"
Substitua:
PROJECT_ID: ID de um dos projetos do Google Cloud especificados em arquivos de configuração.
SERVICE_ACCOUNT_EMAIL: o endereço de e-mail da conta de serviço de acesso a componentes.
Conta de serviço connect-register
Os clusters do Anthos no VMware usam essa conta de serviço para registrar seus clusters de usuários com o Google Cloud.
Para criar uma conta de serviço de conexão entre registros:
gcloud iam service-accounts create connect-register-sa \ --project PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Google Cloud que você quer que seja o pai da conta de serviço do connect-register.
Para criar uma chave JSON para sua conta de serviço do connect-register:
gcloud iam service-accounts keys create connect-register-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Substitua SERVICE_ACCOUNT_EMAIL pelo endereço de e-mail da conta de serviço do connect-register.
Sua conta de serviço connect-register precisa receber o papel gkehub.admin
no
projeto host da frota.
Este é o projeto do Google Cloud em que você quer visualizar e gerenciar os
clusters.
Para conceder o papel gkehub.admin
à sua conta de serviço connect-register:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/gkehub.admin"
Substitua FLEET_HOST_PROJECT_ID pelo ID do projeto host da frota.
Conta de serviço logging-monitoring
Os clusters do Anthos no VMware usam essa conta de serviço para exportar registros e métricas de clusters para o Cloud Logging e o Cloud Monitoring.
Para criar uma conta de serviço de monitoramento de registros:
gcloud iam service-accounts create logging-monitoring-sa \ --project=PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Google Cloud que você quer que seja o pai da conta de serviço de monitoramento de registros.
Para criar uma chave JSON para sua conta de serviço de monitoramento de registros:
gcloud iam service-accounts keys create logging-monitoring-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Substitua SERVICE_ACCOUNT_EMAIL pelo endereço de e-mail da conta de serviço de monitoramento de registros.
Sua conta de serviço de monitoramento de geração de registros precisa receber os seguintes papéis no seu projeto de geração de registros. Este é o projeto do Google Cloud em que você quer visualizar os registros dos clusters.
stackdriver.resourceMetadata.writer
opsconfigmonitoring.resourceMetadata.writer
logging.logWriter
monitoring.metricWriter
monitoring.dashboardEditor
Para conceder os papéis necessários à conta de serviço de monitoramento de registros:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/stackdriver.resourceMetadata.writer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/opsconfigmonitoring.resourceMetadata.writer"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/monitoring.dashboardEditor"
Substitua PROJECT_ID pelo ID do projeto de geração de registros.
Contas de serviço opcionais
Conta de serviço de medição de uso
Os clusters do Anthos no VMware usam essa conta de serviço para armazenar dados de uso em um conjunto de dados do BigQuery.
Para criar uma conta de serviço de medição de uso:
gcloud iam service-accounts create usage-metering-sa \ --project PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Google Cloud que você quer que seja o pai da sua conta de serviço de medição de uso.
Para criar uma chave JSON para sua conta de serviço de medição de uso:
gcloud iam service-accounts keys create usage-metering-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Substitua SERVICE_ACCOUNT_EMAIL pelo endereço de e-mail da conta de serviço de medição de uso.
Sua conta de serviço de medição de uso precisa receber o papel bigquery.dataEditor
no
projeto de medição de uso.
Esse é o projeto do Google Cloud em que você quer visualizar os dados de uso do cluster
do usuário.
Para conceder o papel bigquery.dataEditor
à conta de serviço de medição de uso:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/bigquery.dataEditor"
Substitua PROJECT_ID pelo ID do projeto de medição de uso.
Conta de serviço do Audit Logging
Os clusters do Anthos no VMware usam essa conta de serviço para enviar registros de auditoria do Kubernetes do seu cluster para os registros de auditoria do Cloud.
Para criar uma conta de serviço de geração de registros de auditoria:
gcloud iam service-accounts create audit-logging-sa \ --project PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto do Google Cloud que você quer que seja o pai da sua conta de serviço de registro de auditoria.
Para criar uma chave JSON para sua conta de serviço de geração de registros de auditoria:
gcloud iam service-accounts keys create audit-logging-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Substitua SERVICE_ACCOUNT_EMAIL pelo endereço de e-mail da conta de serviço de geração de registros de auditoria.
Você não precisa conceder papéis à conta de serviço de registro de auditoria. A permissão dos Registros de auditoria do Cloud é concedida automaticamente no momento da criação do cluster de usuário. Se o cluster de administrador usar um ID do projeto ou uma conta de serviço diferente para o registro de auditoria com todos os clusters de usuário, siga as etapas em [problemas conhecidos]((/anthos/clusters/docs/on-prem/1.11/known-issues#audit-logging-permission) para conceder permissão.
Conta de serviço de autorização binária
Os clusters do Anthos no VMware usam essa conta de serviço para chamar a API Binary Authorization.
Para informações sobre como criar uma conta de serviço de autorização binária, consulte Autorização binária no GKE On-Prem.
A seguir
Criar uma estação de trabalho de administrador.