Comptes de service et clés

Cette page décrit les clés et les comptes de service Google Cloud dont vous aurez besoin pour créer des clusters dans GKE On-Prem.

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 connect-agent
  • 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 lui-même à un compte de service sur un projet Google Cloud particulier.Ce processus consiste à accorder 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.

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

GKE On-Prem utilise ce compte de service pour télécharger, en votre nom, des composants GKE On-Prem à 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 permettre à GKE On-Prem d'effectuer des vérifications préliminaires :

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

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

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

GKE On-Prem utilise ce compte de service pour enregistrer vos clusters GKE On-Prem 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.

Votre compte de service connect-register doit disposer du rôle gkehub.admin sur votre projet Connect. Il s'agit du projet Google Cloud dans lequel vous souhaitez afficher et gérer vos clusters GKE On-Prem.

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

Compte de service connect-agent

GKE On-Prem utilise ce compte de service pour maintenir une connexion entre GKE On-Prem et Google Cloud.

Pour créer un compte de service connect-agent, procédez comme suit :

gcloud iam service-accounts create connect-agent-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-agent.

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

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

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

Le compte de service connect-agent doit disposer du rôle gkehub.connect sur votre projet Connect. Il s'agit du projet Google Cloud dans lequel vous souhaitez afficher et gérer vos clusters GKE On-Prem.

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

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

Remplacez PROJECT_ID par l'ID de votre projet Connect.

Compte de service logging-monitoring

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

  • stackdriver.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/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

GKE On-Prem utilise ce compte de service pour stocker des 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 GKE On-Prem.

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

GKE On-Prem utilise ce compte de service pour envoyer les journaux d'audit Kubernetes de votre cluster vers les 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 d'autorisation binaire

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