Versión 1.9. 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 es la versión más reciente.

Cuentas de servicio y claves

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 clústeres de Anthos alojados en VMware (GKE On-Prem).

Las instrucciones que aparecen aquí están completas. Si deseas obtener una introducción más corta para usar una cuenta de servicio, consulta Cuenta de servicio (guía de inicio rápido).

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 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 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 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 ciertas funciones en el proyecto de Cloud pertinente. Por ejemplo, tu cuenta de servicio connect-register debe tener la función gkehub.admin en tu proyecto de Connect.

Para otorgar funciones en un proyecto de 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

Clústeres de Anthos alojados en VMware 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

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 los proyectos de 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 los clústeres de Anthos alojados en VMware puedan realizar las verificaciones previas:

  • serviceusage.serviceUsageViewer
  • 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.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.

Creación automática de cuentas de servicio

Cuando usas gkeadm para crear una estación de trabajo de administrador, tienes la opción de permitir que gkeadm cree ciertas cuentas de servicio por ti. Para que gkeadm cree cuentas de servicio, incluye --auto-create-service-accounts en el comando gkeadm create admin-workstation.

Si eliges que gkeadm cree cuentas de servicio por ti, debes otorgar la función iam.serviceAccountCreator a tu cuenta de servicio de acceso a los componentes en todos los proyectos de Cloud que se enumeran en tus archivos de configuración del clúster.

Haz lo siguiente para cada proyecto de Cloud que aparezca en los archivos de configuración del clúster:

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

Cuenta de servicio del registro de Connect

Clústeres de Anthos alojados en VMware usa esta cuenta de servicio para registrar tus clústeres de usuario 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 del registro de conexión 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.

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 de supervisión de registros

Clústeres de Anthos alojados en VMware 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.

A la cuenta de servicio de supervisión y registro se le deben otorgar las siguientes funciones en el proyecto de supervisión de registros. Este es el proyecto de Cloud en el que deseas ver los registros de tus clústeres.

  • stackdriver.resourceMetadata.writer
  • opsconfigmonitoring.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/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"

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

Clústeres de Anthos alojados en VMware 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 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 el proyecto de medición de uso. Este es el proyecto de 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 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

Clústeres de Anthos alojados en VMware usa esta cuenta de servicio para enviar registros de auditoría de Kubernetes de tu clúster a 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.

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

Clústeres de Anthos alojados en VMware 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.