Comptes de service et clés

Ce document présente les clés et les comptes de service Google Cloud dont vous avez besoin pour créer des clusters dans votre mise en œuvre Anthos clusters on VMware (GKE On-Prem).

Ces instructions sont complètes. Pour une présentation plus courte de l'utilisation d'un compte de service, consultez la page Compte de service (Guide de démarrage rapide).

Avant de commencer

Créez des projets Google Cloud.

Présentation des comptes de service

Avant de créer vos clusters d'administrateur et d'utilisateur, vous devez disposer des comptes de service suivants :

  • Compte de service d'accès au composant
  • Compte de service connect-register
  • Compte de service logging-monitoring

En fonction des fonctionnalités que vous souhaitez activer, vous devrez peut-être disposer de comptes de service facultatifs.

Comprendre les comptes de service et les projets Google Cloud

Lorsque vous créez un compte de service, vous l'associez à un projet Google Cloud. Ce projet Google Cloud est appelé projet parent du compte de service.

Vous pouvez déterminer le projet parent d'un compte de service en consultant l'adresse e-mail du compte de service. Par exemple, voici l'adresse e-mail d'un compte de service nommé logger. Le projet parent est alice-123.

logger@alice-123.iam.gserviceaccount.com

Lorsque vous attribuez un rôle Identity and Access Management (IAM) à un compte de service, vous lui attribuez le rôle sur le compte de service sur un projet Google Cloud particulier. Il suit le schéma général d'attribution d'un rôle à une identité sur une ressource.

Par exemple, vous pouvez attribuer le rôle bigquery.dataEditor au compte de service logger@alice-123.iam.gserviceaccount.com sur le projet bob-456. Dans ce cas, le compte de service est l'identité et le projet Google Cloud est la ressource.

Il est important de comprendre que vous pouvez attribuer un rôle à un compte de service sur un projet Google Cloud qui n'est pas le projet parent du compte de service.

Autorisations requises pour l'attribution de rôles aux comptes de service

Chacun de vos comptes de service doit disposer de certains rôles sur le projet Google Cloud concerné. Par exemple, votre compte de service connect-register doit disposer du rôle gkehub.admin sur votre projet hôte de parc.

Pour attribuer des rôles à un projet Google Cloud, vous devez disposer de certaines autorisations sur ce projet. Pour en savoir plus, consultez la section roles/resourcemanager.projectIamAdmin de la section Comprendre les rôles.

Si vous disposez des autorisations requises, vous pouvez attribuer les rôles vous-même. Sinon, un autre membre de votre organisation doit attribuer les rôles pour vous.

Utiliser gkeadm pour créer automatiquement des comptes de service

Cette page explique comment créer manuellement des comptes de service et leur attribuer des rôles. Au lieu d'effectuer manuellement ces étapes, vous pouvez demander à gkeadm de créer certains des comptes de service et d'attribuer des rôles pour vous lorsque vous créez un poste de travail administrateur. Pour plus d'informations, consultez la section Créer votre poste de travail administrateur.

Compte de service d'accès au composant

Anthos clusters on VMware utilise ce compte de service pour télécharger des composants de cluster, en votre nom, à partir de Container Registry.

Pour créer un compte de service d'accès au composant, procédez comme suit :

gcloud iam service-accounts create component-access-sa \
    --display-name "Component Access Service Account" \
    --project PROJECT_ID

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous souhaitez utiliser comme projet parent de votre compte de service.

Pour créer une clé JSON pour votre compte de service d'accès au composant, procédez comme suit :

gcloud iam service-accounts keys create component-access-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Remplacez SERVICE_ACCOUNT_EMAIL par l'adresse e-mail de votre compte de service d'accès au composant.

Attribuer des rôles à votre compte de service d'accès au composant

Les fichiers de configuration de cluster d'administrateur et de cluster utilisateur comportent plusieurs champs spécifiant un ID de projet.

Dans le fichier de configuration du cluster d'administrateur :

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

Dans le fichier de configuration du cluster d'utilisateur :

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

Les ID de projet inclus dans vos fichiers de configuration ne doivent pas nécessairement être distincts. Par exemple, gkeConnect.projectID peut être identique à cloudAuditLogging.projectID. En fait, tous les ID de projet dans vos fichiers de configuration peuvent être identiques.

Votre compte de service d'accès au composant doit disposer des rôles IAM suivants sur chaque projet Google Cloud spécifié dans les fichiers de configuration de votre cluster d'administrateur et d'utilisateur. Ces rôles sont nécessaires pour que Clusters Anthos sur VMware puisse effectuer des vérifications préliminaires :

  • serviceusage.serviceUsageViewer
  • iam.roleViewer
  • iam.serviceAccountViewer

Pour chaque projet Google Cloud que vous avez spécifié dans les fichiers de configuration de votre cluster, exécutez les commandes suivantes afin d'attribuer les rôles requis à votre compte de service d'accès au composant:

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"

Remplacez les éléments suivants :

  • PROJECT_ID: ID de l'un des projets Google Cloud que vous avez spécifié dans vos fichiers de configuration.

  • SERVICE_ACCOUNT_EMAIL : adresse e-mail de votre compte de service d'accès au composant.

Compte de service connect-register

Les clusters Anthos sur VMware utilisent ce compte de service pour enregistrer vos clusters utilisateur avec Google Cloud.

Pour créer un compte de service connect-register :

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

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous souhaitez utiliser comme parent de votre compte de service connect-register.

Pour créer une clé JSON pour votre compte de service connect-register :

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

Remplacez SERVICE_ACCOUNT_EMAIL par l'adresse e-mail de votre compte de service connect-register.

Le compte de service connect-register doit disposer du rôle gkehub.admin sur votre projet hôte de parc. Il s'agit du projet Google Cloud dans lequel vous souhaitez afficher et gérer vos clusters.

Attribuez le rôle gkehub.admin à votre compte de service connect-register :

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

Remplacez PROJECT_ID par l'ID de votre projet hôte de parc.

Compte de service logging-monitoring

Anthos clusters on VMware utilise ce compte de service pour exporter les journaux et les métriques des clusters vers Cloud Logging et Cloud Monitoring.

Pour créer un compte de service logging-monitoring, procédez comme suit :

gcloud iam service-accounts create logging-monitoring-sa \
    --project=PROJECT_ID

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous souhaitez utiliser comme parent de votre compte de service logging-monitoring.

Pour créer une clé JSON pour votre compte de service logging-monitoring, procédez comme suit :

gcloud iam service-accounts keys create logging-monitoring-key.json \
    --iam-account SERVICE_ACCOUNT_EMAIL

Remplacez SERVICE_ACCOUNT_EMAIL par l'adresse e-mail de votre compte de service logging-monitoring.

Votre compte de service de logging-monitoring doit disposer des rôles suivants sur votre projet logging-monitoring. Il s'agit du projet Google Cloud dans lequel vous souhaitez afficher les journaux de vos clusters.

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

Pour attribuer les rôles requis à votre compte de service logging-monitoring, procédez comme suit :

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"

Remplacez PROJECT_ID par l'ID de votre projet logging-monitoring.

Comptes de service facultatifs

Compte de service de mesure de l'utilisation

Anthos clusters on VMware utilise ce compte de service pour stocker les données d'utilisation dans un ensemble de données BigQuery.

Pour créer un compte de service de mesure de l'utilisation, procédez comme suit :

gcloud iam service-accounts create usage-metering-sa \
    --project PROJECT_ID

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous souhaitez utiliser comme parent de votre compte de service de mesure de l'utilisation.

Pour créer une clé JSON pour votre compte de service de mesure de l'utilisation, procédez comme suit :

gcloud iam service-accounts keys create usage-metering-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Remplacez SERVICE_ACCOUNT_EMAIL par l'adresse e-mail de votre compte de service de mesure de l'utilisation.

Votre compte de service de mesure de l'utilisation doit avoir le rôle bigquery.dataEditor sur votre projet de mesure de l'utilisation. Il s'agit du projet Google Cloud dans lequel vous souhaitez afficher les données d'utilisation de votre cluster d'utilisateur.

Attribuez le rôle bigquery.dataEditor à votre compte de service de mesure de l'utilisation :

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

Remplacez PROJECT_ID par l'ID de votre projet de mesure de l'utilisation.

Compte de service de journalisation d'audit

Anthos clusters on VMware utilise ce compte de service pour envoyer les journaux d'audit Kubernetes de votre cluster vers Cloud Audit Logging.

Pour créer un compte de service de journalisation d'audit, procédez comme suit :

gcloud iam service-accounts create audit-logging-sa \
    --project PROJECT_ID

Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous souhaitez utiliser comme parent de votre compte de service de journalisation d'audit.

Pour créer une clé JSON pour votre compte de service de journalisation d'audit :

gcloud iam service-accounts keys create audit-logging-key.json \
   --iam-account SERVICE_ACCOUNT_EMAIL

Remplacez SERVICE_ACCOUNT_EMAIL par l'adresse e-mail de votre compte de service de journalisation d'audit.

Vous n'avez pas besoin d'accorder de rôles à votre compte de service de journalisation d'audit.

Compte de service d'autorisation binaire

Anthos clusters on VMware utilise ce compte de service pour appeler l'autorisation binaire de l'API.

Pour plus d'informations sur la création d'un compte de service d'autorisation binaire, consultez la section Autorisation binaire dans GKE On-Prem.

Étapes suivantes

Créez un poste de travail d'administrateur.