Versión 1.5. Esta versión es compatible como se describe en la política de asistencia de la versión de Anthos, que ofrece los últimos parches y actualizaciones de vulnerabilidades de seguridad, exposiciones y problemas que afectan a los clústeres de Anthos alojados en VMware (GKE On-Prem). Consulta las notas de la versión para obtener más detalles. Esta no es la versión más reciente.

Cuentas de servicio y claves

En esta página, se explican las cuentas de servicio y las claves de Google Cloud que necesitas para crear clústeres de GKE On-Prem.

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 del agente 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 Cloud se denomina 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 Cloud en particular. Esto sigue este patrón general según el cual se otorga una función a una identidad 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 la identidad, y el proyecto de Google Cloud es el recurso.

Es importante comprender que puedes otorgar una función a una cuenta de servicio en un proyecto de Cloud que no es el proyecto superior de la cuenta de servicio.

Usa gkeadm para crear cuentas de servicio automáticamente

En esta página, se muestra cómo crear cuentas de servicio manualmente y cómo otorgar funciones a cuentas de servicio. Como alternativa a seguir estos pasos de forma manual, puedes hacer que gkeadm cree cuentas de servicio y otorgue 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

GKE On-Prem usa esta cuenta de servicio para descargar componentes de GKE On-Prem en tu nombre desde Container Registry.

Para crear una cuenta de servicio de acceso de 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.

Para crear una clave JSON para tu cuenta de servicio de acceso a 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 tu cuenta de servicio de acceso a componentes.

Otorga funciones a tu cuenta de servicio de acceso a componentes

Los archivos de configuración de los clústeres de administrador y de usuario tienen varios campos que especifican un ID del proyecto.

En el archivo de configuración de clústeres de administrador:

stackdriver:
  projectID: ""
...
cloudAuditLogging:
  projectid: ""

En el archivo de configuración de clústeres de usuario:

stackdriver:
  projectID: ""
...
gkeConnect:
  projectID: ""
...
usageMetering:
  bigQueryProjectID: ""
...
cloudAuditLogging:
  projectid: ""

No es necesario que los ID de los archivos de configuración sean distintos. Por ejemplo, gkeConnect.projectID podría ser igual que cloudAuditLogging.projectID. De hecho, todos los ID de proyecto que se encuentran en tus archivos de configuración podrían ser los mismos.

Tu cuenta de servicio de acceso a componentes debe tener las siguientes funciones de IAM en cada proyecto de Cloud que se especifique en tus archivos de configuración de clústeres de administrador y de usuario. Estas funciones son obligatorias para que GKE On-Prem pueda realizar comprobaciones previas:

  • serviceusage.serviceUsageViewer
  • iam.serviceAccountCreator
  • iam.roleViewer

En cada proyecto de Cloud que especificaste en tus archivos de configuración de clústeres, ejecuta los siguientes comandos para otorgar las funciones necesarias a tu cuenta de servicio de acceso a componentes:

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.serviceAccountCreator"
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.roleViewer"

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de uno de los proyectos de Cloud que especificaste en tus archivos de configuración.

  • 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

GKE On-Prem usa esta cuenta de servicio para registrar tus clústeres de GKE On-Prem con Google Cloud.

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 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 de registro de Connect debe tener la función gkehub.admin en tu proyecto de Connect. Este es el proyecto de Cloud en el que deseas ver y administrar tus clústeres de GKE On-Prem.

Para otorgar la función gkehub.admin a la cuenta de servicio del registro de Connect:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/gkehub.admin"

Reemplaza PROJECT_ID por el ID del proyecto de Connect.

Cuenta de servicio del agente de Connect

GKE On-Prem usa esta cuenta de servicio para mantener una conexión entre GKE On-Prem y Google Cloud.

Para crear una cuenta de servicio de agente de Connect:

gcloud iam service-accounts create connect-agent-sa \
    --project PROJECT_ID

Reemplaza PROJECT_ID por el ID del proyecto de Cloud que deseas que sea el superior de tu cuenta de servicio de agente de Connect.

A fin de crear una clave JSON para tu cuenta de servicio de agente de Connect:

gcloud iam service-accounts keys create connect-agent-key.json \
    --iam-account SERVICE_ACCOUNT_EMAIL

Reemplaza SERVICE_ACCOUNT_EMAIL con la dirección de correo electrónico de tu cuenta de servicio de agente de Connect.

Tu cuenta de servicio de agente de Connect debe tener la función gkehub.connect en tu proyecto de Connect. Este es el proyecto de Cloud en el que deseas ver y administrar tus clústeres de GKE On-Prem.

Para otorgar la función gkehub.connect a la cuenta de servicio del agente de Connect:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/gkehub.connect"

Reemplaza PROJECT_ID por el ID del proyecto de Connect.

Cuenta de servicio de supervisión de registros

GKE On-Prem 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 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

Reemplaza SERVICE_ACCOUNT_EMAIL por la dirección de correo electrónico de tu cuenta de servicio de registro y supervisión.

Tu cuenta de servicio de registro y supervisión debe tener las siguientes funciones en tu proyecto de registro y supervisión. Este es el proyecto de Cloud en el que quieres ver los registros de tus clústeres de GKE On-Prem.

  • stackdriver.resourceMetadata.writer
  • logging.logWriter
  • monitoring.metricWriter
  • monitoring.dashboardEditor

Para otorgar las funciones necesarias a tu cuenta de servicio de registro y supervisión, sigue estos pasos:

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/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"

Reemplaza PROJECT_ID con el ID de tu proyecto de registro y supervisión.

Cuentas de servicio opcionales

Cuenta de servicio de medición de uso

GKE On-Prem utiliza esta cuenta de servicio para almacenar los 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 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 la función bigquery.dataEditor en tu proyecto de medición de uso. Este es el proyecto de Cloud en el que quieres ver los datos de uso para tu clúster de GKE On-Prem.

Para otorgar la función bigquery.dataEditor a la cuenta de servicio de medición de uso:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/bigquery.dataEditor"

Reemplaza PROJECT_ID por el ID del proyecto de medición de uso.

Cuenta de servicio de registro de auditoría

GKE On-Prem usa esta cuenta de servicio para enviar registros de auditoría de Kubernetes desde tu clúster hacia 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 Cloud que deseas que sea el superior de tu cuenta de servicio de registro de auditoría.

Para crear una clave JSON para tu cuenta de servicio de registro de auditoría, sigue estos pasos:

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 autorización binaria

GKE On-Prem 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.