En este documento, se explican las cuentas de servicio y las claves de Google Cloud que necesitas para crear clústeres en tu implementación de Google Distributed Cloud.
Las instrucciones que aparecen aquí están completas. Para obtener una introducción más corta sobre el uso de una cuenta de servicio, consulta Configura una infraestructura mínima.
Antes de comenzar
Crea proyectos de Google Cloud.
Descripción general de las cuentas de servicio
Antes de crear tus clústeres de administrador y de usuario, debes tener estas cuentas de servicio:
- Cuenta de servicio de acceso a componentes
- Cuenta de servicio del registro de Connect
- Cuenta de servicio de supervisión de registros
Según las funciones que desees habilitar, es posible que también debas tener algunas cuentas de servicio opcionales.
Información sobre las cuentas de servicio y los proyectos de Google Cloud
Cuando creas una cuenta de servicio, la asocias a un proyecto de Google Cloud. Este proyecto de Google Cloud se llama proyecto superior de la cuenta de servicio.
Puedes determinar el proyecto superior de una cuenta de servicio si observas la dirección de correo electrónico de la cuenta de servicio. Por ejemplo, esta es la dirección de correo electrónico de una cuenta de servicio llamada logger
. El proyecto superior es alice-123
.
logger@alice-123.iam.gserviceaccount.com
Cuando otorgas una función de administración de identidades y accesos (IAM) a una cuenta de servicio, le otorgas la función a la cuenta de servicio en un proyecto de Google Cloud en particular. Esto sigue este patrón general según el cual se otorga un rol a un principal en un recurso.
Por ejemplo, puedes otorgar la función bigquery.dataEditor
a la cuenta de servicio logger@alice-123.iam.gserviceaccount.com
en el proyecto bob-456
. En este caso, la cuenta de servicio es el principal, y el proyecto de Google Cloud es el recurso.
Es importante comprender que puedes otorgar una rol a una cuenta de servicio en un proyecto de Google Cloud que no es un proyecto superior de la cuenta de servicio.
Permisos para otorgar funciones a las cuentas de servicio
Cada una de tus cuentas de servicio debe tener ciertos roles en el proyecto de Google Cloud pertinente. Por ejemplo, tu cuenta de servicio del registro de conexión debe tener la función gkehub.editor
en tu proyecto host de flota.
Para otorgar roles en un proyecto de Google Cloud, debes tener ciertos permisos en el proyecto. Para obtener más información, consulta roles/resourcemanager.projectIamAdmin
en Información sobre las funciones.
Si tienes los permisos necesarios, puedes otorgar las funciones tú mismo. De lo contrario, alguien de tu organización deberá otorgar las funciones por ti.
Usa gkeadm
para crear cuentas de servicio automáticamente
En esta página, se muestra cómo crear cuentas de servicio de forma manual y cómo otorgar funciones a cuentas de servicio. Como alternativa para realizar estos pasos de forma manual, puedes hacer que gkeadm
cree algunas de las cuentas de servicio y otorgar funciones por ti cuando creas una estación de trabajo de administrador. Para obtener más información, consulta Crea tu estación de trabajo de administrador.
Cuenta de servicio de acceso a componentes
Google Distributed Cloud usa esta cuenta de servicio para descargar componentes del clúster en tu nombre, desde Container Registry.
Para crear una cuenta de servicio de acceso a componentes, haz lo siguiente:
gcloud iam service-accounts create component-access-sa \ --display-name "Component Access Service Account" \ --project PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud que deseas que sea el proyecto superior de tu cuenta de servicio.
A fin de crear una clave JSON para tu cuenta de servicio de acceso a los componentes, haz lo siguiente:
gcloud iam service-accounts keys create component-access-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Reemplaza SERVICE_ACCOUNT_EMAIL por la dirección de correo electrónico de la cuenta de servicio de acceso a los componentes.
Otorga funciones a tu cuenta de servicio de acceso a componentes
Tu cuenta de servicio de acceso a los componentes debe tener los siguientes roles de IAM en tu proyecto host de la flota. Estos roles son obligatorios para que Google Distributed Cloud pueda realizar comprobaciones previas:
serviceusage.serviceUsageViewer
iam.roleViewer
iam.serviceAccountViewer
compute.viewer
Para otorgar las funciones, sigue estos pasos:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/serviceusage.serviceUsageViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.roleViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.serviceAccountViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/compute.viewer"
Reemplaza lo siguiente:
FLEET_HOST_PROJECT_ID: el ID del proyecto host de tu flota.
SERVICE_ACCOUNT_EMAIL: la dirección de correo electrónico de tu cuenta de servicio de acceso a componentes.
Cuenta de servicio del registro de Connect
Google Distributed Cloud usa esta cuenta de servicio para registrar tus clústeres en una flota.
Para crear una cuenta de servicio de registro de Connect, sigue estos pasos:
gcloud iam service-accounts create connect-register-sa \ --project PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud que deseas que sea el superior de tu cuenta de servicio de registro de Connect.
A fin de crear una clave JSON para tu cuenta de servicio de registro de Connect, sigue estos pasos:
gcloud iam service-accounts keys create connect-register-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Reemplaza SERVICE_ACCOUNT_EMAIL por la dirección de correo electrónico de tu cuenta de servicio de registro de Connect.
Tu cuenta de servicio del registro de conexión debe tener la función gkehub.editor
en el proyecto host de la flota.
Para otorgar la función gkehub.editor
a la cuenta de servicio del registro de Connect:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/gkehub.editor"
Cuenta de servicio de supervisión de registros
Google Distributed Cloud usa esta cuenta de servicio para exportar registros y métricas de clústeres a Cloud Logging y Cloud Monitoring.
Para crear una cuenta de servicio de registro y supervisión, sigue estos pasos:
gcloud iam service-accounts create logging-monitoring-sa \ --project=PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud que deseas que sea el superior de tu cuenta de servicio de registro y supervisión.
A fin de crear una clave JSON para tu cuenta de servicio de registro y supervisión, sigue estos pasos:
gcloud iam service-accounts keys create logging-monitoring-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
La cuenta de servicio de supervisión y registro debe tener los siguientes roles en tu proyecto host de flota:
opsconfigmonitoring.resourceMetadata.writer
logging.logWriter
monitoring.metricWriter
monitoring.dashboardEditor
kubernetesmetadata.publisher
Para otorgar las funciones necesarias a tu cuenta de servicio de registro y supervisión, sigue estos pasos:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/opsconfigmonitoring.resourceMetadata.writer" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/logging.logWriter" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/monitoring.dashboardEditor" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/kubernetesmetadata.publisher"
Reemplaza SERVICE_ACCOUNT_EMAIL por la dirección de correo electrónico de tu cuenta de servicio de registro y supervisión.
Cuentas de servicio opcionales
Cuenta de servicio de registro de auditoría
Google Distributed Cloud usa esta cuenta de servicio para enviar registros de auditoría de Kubernetes desde tu clúster a los registros de auditoría de Cloud.
Para crear una cuenta de servicio de registro de auditoría, sigue estos pasos:
gcloud iam service-accounts create audit-logging-sa \ --project PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud que deseas que sea el superior de tu cuenta de servicio de registro de auditoría.
A fin de crear una clave JSON para la cuenta de servicio de registro de auditoría, haz lo siguiente:
gcloud iam service-accounts keys create audit-logging-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Reemplaza SERVICE_ACCOUNT_EMAIL por la dirección de correo electrónico de tu cuenta de servicio de registro de auditoría.
No es necesario otorgar funciones a la cuenta de servicio de registro de auditoría.
Cuenta de servicio de medición de uso
Google Distributed Cloud usa esta cuenta de servicio para almacenar datos de uso en un conjunto de datos de BigQuery.
Para crear una cuenta de servicio de medición de uso, sigue estos pasos:
gcloud iam service-accounts create usage-metering-sa \ --project PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud que deseas que sea el superior de tu cuenta de servicio de medición de uso.
Para crear una clave JSON para su cuenta de servicio de medición de uso, sigue estos pasos:
gcloud iam service-accounts keys create usage-metering-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Reemplaza SERVICE_ACCOUNT_EMAIL por la dirección de correo electrónico de tu cuenta de servicio de medición de uso.
Tu cuenta de servicio de medición de uso debe tener el rol bigquery.dataEditor
en el proyecto de medición de uso.
Este es el proyecto de Google Cloud en el que deseas ver los datos de uso de tu clúster de usuarios.
Para otorgar la función bigquery.dataEditor
a la cuenta de servicio de medición de uso:
gcloud projects add-iam-policy-binding USAGE_METERING_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/bigquery.dataEditor"
Reemplaza USAGE_METERING_PROJECT_ID por el ID del proyecto de medición de uso.
Cuenta de servicio de autorización binaria
Google Distributed Cloud usa esta cuenta de servicio para llamar a la API de autorización binaria.
Para obtener información sobre cómo crear una cuenta de servicio de autorización binaria, consulta Autorización binaria en GKE On-Prem.
¿Qué sigue?
Crea una estación de trabajo de administrador.