Comptes de service et clés

Ce document décrit les comptes de service et les clés Google Cloud dont vous avez besoin pour créer des clusters dans votre mise en œuvre Google Distributed Cloud.

Ces instructions sont complètes. Pour une introduction plus courte à l'utilisation d'un compte de service, consultez la section Configurer une infrastructure minimale.

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 l'attribuez à le compte de service sur un projet Google Cloud particulier. Cette approche suit le schéma général qui consiste à attribuer un rôle à un principe 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 le principe et le projet Google Cloud est la ressource.

Il est important de comprendre que vous pouvez attribuer un rôle à un compte de service dans 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.editor sur votre projet hôte de parc.

Pour attribuer des rôles sur un projet Google Cloud, vous devez disposer de certaines autorisations sur le 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

Google Distributed Cloud utilise ce compte de service pour télécharger les 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

Votre compte de service d'accès au composant doit disposer des rôles IAM suivants sur votre projet hôte de parc. Ces rôles sont requis pour que Google Distributed Cloud puisse effectuer des vérifications préliminaires:

  • serviceusage.serviceUsageViewer
  • iam.roleViewer
  • iam.serviceAccountViewer
  • compute.viewer

Pour accorder les rôles, procédez comme suit :

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"

Remplacez les éléments suivants :

  • FLEET_HOST_PROJECT_ID: ID du projet hôte de votre parc.

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

Compte de service connect-register

Google Distributed Cloud utilise ce compte de service pour enregistrer vos clusters dans un parc.

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.editor sur votre projet hôte de parc.

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

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

Compte de service logging-monitoring

Google Distributed Cloud 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

Votre compte de service de journalisation et de surveillance doit disposer des rôles suivants sur votre projet hôte du parc:

  • opsconfigmonitoring.resourceMetadata.writer
  • logging.logWriter
  • monitoring.metricWriter
  • monitoring.dashboardEditor
  • kubernetesmetadata.publisher

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

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"

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

Comptes de service facultatifs

Compte de service de journalisation d'audit

Google Distributed Cloud utilise ce compte de service pour envoyer les journaux d'audit Kubernetes de votre cluster aux journaux d'audit Cloud.

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 de mesure de l'utilisation

Google Distributed Cloud 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 disposer du 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 USAGE_METERING_PROJECT_ID \
    --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
    --role "roles/bigquery.dataEditor"

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

Compte de service d'autorisation binaire

Google Distributed Cloud utilise ce compte de service pour appeler l'API Binary Authorization.

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.