Comptes de service et clés

Ce document présente les comptes de service et les clés dont vous avez besoin pour créer des clusters dans votre implémentation Google Distributed Cloud. Google 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éer des Google Cloud projets

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. Dans ce document, toutes les commandes gcloud iam service-accounts create utilisent la variable d'espace réservé PROJECT_ID, qui correspond à l'ID du 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 attribuez le rôle au compte de service sur un projetGoogle Cloud particulier. Ceci suit le modèle général d'attribution d'un rôle à un compte principal 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 compte principal et le projet Google Cloud est la ressource.

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, ou les projets peuvent être identiques. Pour permettre cette flexibilité, les commandes gcloud projects add-iam-policy-binding de ce document pour le compte de service d'accès aux composants, le compte de service connect-register et le compte de service logging-monitoring utilisent la variable d'espace réservé FLEET_HOST_PROJECT_ID. Il s'agit de l'ID du projet hôte du parc. L'ID que vous spécifiez en tant que FLEET_HOST_PROJECT_ID dans les commandes gcloud projects add-iam-policy-binding doit être identique.

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 projetGoogle 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 roles/resourcemanager.projectIamAdmin dans 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 à votre place.

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 à l'outil de ligne de commande gkeadm de créer certains des comptes de service et d'attribuer des rôles lorsque vous créez un poste de travail administrateur. Même si vous autorisez gkeadm à créer des comptes de service, vous devez créer manuellement le compte de service d'accès aux composants et attribuer les rôles IAM requis, comme décrit dans la section suivante. Pour en savoir plus sur les comptes de service que gkeadm peut créer, consultez 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 des composants de cluster, en votre nom, à partir d'Artifact Registry.

  1. Créez un compte de service d'accès au composant :

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

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

  2. Obtenez l'adresse e-mail du compte de service d'accès aux composants que vous venez de créer :

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Pour créer une clé JSON pour votre compte de service d'accès aux composants, procédez comme suit :

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

    Remplacez COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL par l'adresse e-mail de votre compte de service d'accès aux composants.

Attribuer des rôles à votre compte de service d'accès aux composants

Votre compte de service d'accès au composant doit disposer des rôles IAM suivants sur votre projet. Ces rôles sont nécessaires pour permettre à Google Distributed Cloud d'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:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/serviceusage.serviceUsageViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.roleViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.serviceAccountViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/compute.viewer"

Remplacez FLEET_HOST_PROJECT_ID par l'ID de votre projet hôte de parc. Il peut s'agir du même projet dans lequel le compte de service a été créé ou d'un autre projet. L'ID de projet que vous spécifiez ici doit être le même que celui que vous spécifiez lorsque vous accordez des rôles IAM au compte de service connect-register et au compte de service logging-monitoring.

Compte de service connect-register

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

  1. Créez un compte de service connect-register :

    gcloud iam service-accounts create connect-register-sa \
        --display-name "Connect-register Service Account" \
        --project PROJECT_ID
    

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

  2. Obtenez l'adresse e-mail du compte de service connect-register que vous venez de créer :

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Créez une clé JSON pour votre compte de service connect-register :

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

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

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

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

    L'ID de projet que vous spécifiez ici doit être le même que celui que vous spécifiez lorsque vous attribuez des rôles IAM au compte de service d'accès aux composants et au compte de service logging-monitoring.

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.

  1. Créez un compte de service logging-monitoring :

    gcloud iam service-accounts create logging-monitoring-sa \
        --display-name "Logging-monitoring Service Account" \
        --project=PROJECT_ID
    

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

  2. Obtenez l'adresse e-mail du compte de service logging-monitoring que vous venez de créer :

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Créez une clé JSON pour votre compte de service logging-monitoring :

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

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

Attribuer des rôles à votre compte de service logging-monitoring

Votre compte de service logging-monitoring doit disposer des rôles suivants sur votre projet :

  • 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:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/opsconfigmonitoring.resourceMetadata.writer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/monitoring.dashboardEditor"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/kubernetesmetadata.publisher"

L'ID de projet que vous spécifiez ici doit être le même que celui que vous spécifiez lorsque vous accordez des rôles IAM au compte de service d'accès aux composants et au compte de service connect-register.

Comptes de service facultatifs

Les comptes de service décrits dans cette section sont 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 vers Cloud Audit Logs.

Si vous prévoyez de créer des clusters avec l'option avancée de cluster activée (requise pour configurer des domaines de topologie), utilisez le compte de service et la clé logging-monitoring pour la journalisation d'audit au lieu de créer un autre compte de service.

  1. Créez un compte de service de journalisation d'audit :

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

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

  2. Obtenez l'adresse e-mail du compte de service de journalisation d'audit que vous venez de créer :

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Créez une clé JSON pour votre compte de service de journalisation d'audit :

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

    Remplacez AUDIT_LOGGING_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

Google Distributed Cloud utilise ce compte de service pour appeler l'API d'autorisation binaire.

Pour savoir comment créer un compte de service d'autorisation binaire, consultez Autorisation binaire dans GKE On-Prem.

Étapes suivantes

Créer un poste de travail administrateur