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 Google 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 Identity and Access Management (IAM) a una cuenta de servicio, otorgas la función a la cuenta de servicio en un proyecto de Google Cloud en particular. Esto sigue el patrón general de otorgar 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 Google Cloud que no sea el proyecto superior de la cuenta de servicio.

Permisos para otorgar funciones a las cuentas de servicio

A cada una de tus cuentas de servicio se les deben otorgar ciertas funciones en el proyecto de Google Cloud relevante. 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 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

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.

A tu cuenta de servicio de acceso a los componentes se les deben otorgar las siguientes funciones de IAM en cada proyecto de Google Cloud que se especifique en los archivos de configuración del clúster 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
  • iam.serviceAccountViewer

Para cada proyecto de Google Cloud que hayas especificado en los archivos de configuración del clúster, ejecuta los siguientes comandos a fin de otorgar los roles necesarios a tu cuenta de servicio de acceso a los 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"
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.serviceAccountViewer"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de uno de los proyectos de Google Cloud que especificaste en los 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

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 Google Cloud que deseas que sea el superior de tu cuenta de servicio del registro de conexión.

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 Google 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 Google Cloud que deseas que sea el superior de tu cuenta de servicio de supervisión de registros.

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 los siguientes roles en el proyecto de supervisión de registros. Este es el proyecto de Google 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 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 la función 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 del clúster de usuario.

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 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 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.