Étape 4 : Créer des comptes de service

Présentation

Cette étape explique comment créer les comptes de service Google Cloud requis pour le fonctionnement d'Apigee hybrid et leur attribuer les rôles IAM appropriés.

Cette procédure utilise les deux variables d'environnement suivantes définies à l'étape 2: Télécharger les graphiques Apigee Helm. Ces variables sont facultatives. Si vous ne les avez pas définis, remplacez le chemin d'accès de répertoire approprié pour chaque variable dans les exemples de code.

Environnements de production et environnements hors production

Ce guide fait référence à des installations de production et hors production. Une installation de production est réglée pour des valeurs élevées de capacité d'utilisation, de stockage et d'évolutivité. Une installation hors production utilise moins de ressources et sert principalement à l'apprentissage et à la démonstration.

Lorsque vous créez et configurez des comptes de service pour Apigee hybrid, il est important de connaître le type d'installation que vous ciblez.

Pour les installations de production, nous vous recommandons de créer un compte de service distinct pour chaque composant Apigee hybrid. Par exemple, chacun des composants runtime, mart, metrics, mint, udca, etc., possède son propre compte de service.

Pour les installations hors production, vous pouvez créer un seul compte de service qui s'applique à tous les composants.

Pour en savoir plus sur les comptes de service utilisés par Apigee et les rôles qui leur sont attribués, consultez la page Comptes de service et rôles utilisés par les composants hybrides.

Authentifier les comptes de service

Apigee hybrid accepte les méthodes suivantes pour authentifier les comptes de service Google :

  • Secrets Kubernetes
  • Fichiers de clé JSON du compte de service ("Fichiers JSON" dans les onglets de sélection de la section suivante).
  • Vault
  • Fédération d'identité de charge de travail pour GKE (appelée "Fédération d'identité de charge de travail pour GKE" dans les onglets de sélection de la section suivante).
  • Fédération d'identité de charge de travail sur d'autres plates-formes ("Fédération d'identité de charge de travail sur d'autres plates-formes" dans les onglets de sélection de la section suivante).

Dans la section suivante, choisissez la procédure correspondant au type d'authentification que vous prévoyez d'utiliser.

Créer les comptes de service

Apigee hybrid utilise les comptes de service suivants :

Production

Compte de service Rôles IAM Graphique Helm Apigee
apigee-cassandra Administrateur des objets Storage apigee-datastore
apigee-logger Rédacteur de journaux apigee-telemetry
apigee-mart Agent Apigee Connect apigee-org
apigee-metrics Rédacteur de métriques Monitoring apigee-telemetry
apigee-mint-task-scheduler
(Obligatoire uniquement si vous utilisez Monétisation pour Apigee hybrid)
Aucun rôle requis apigee-org
apigee-runtime Aucun rôle requis apigee-env
apigee-synchronizer Gestionnaire de synchronisateur Apigee
Administrateur des objets de l'espace de stockage
apigee-env
apigee-udca Agent d'analyses Apigee apigee-org
apigee-env
apigee-watcher Agent d'exécution Apigee apigee-org

Hors production

Compte de service Rôles IAM Graphique Helm Apigee
apigee-non-prod Administrateur des objets de l'espace de stockage
Rédacteur de journaux
Agent Apigee Connect
Rédacteur de métriques de surveillance
Gestionnaire de synchronisateur Apigee
Agent d'analyse Apigee
Agent d'exécution Apigee
apigee-datastore
apigee-telemetry
apigee-org
apigee-env

L'outil create-service-account

Apigee fournit un outil, create-service-account, dans le répertoire apigee-operator/etc/tools :

$APIGEE_HELM_CHARTS_HOME/
    └── apigee-operator/
        └── etc/
            └── tools/
                └── create-service-account

Cet outil crée les comptes de service, attribue les rôles IAM à chaque compte et télécharge les fichiers de certificat au format JSON pour chaque compte.

Vérifiez que vous pouvez exécuter create-service-account. Si vous venez de télécharger les graphiques, il est possible que le fichier create-service-account ne soit pas en mode exécutable. Exécutez la commande suivante dans votre répertoire APIGEE_HELM_CHARTS_HOME :

$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help

Si le résultat indique permission denied, vous devez rendre le fichier exécutable, par exemple avec chmod sous Linux, MacOS ou UNIX, ou dans l'explorateur Windows, ou à l'aide de la commande icacls dans Windows. Exemple :

chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account

Créer les comptes de service

Choisissez la procédure pour la méthode d'authentification du compte de service que vous prévoyez d'utiliser dans votre installation. Pour en savoir plus, consultez Méthodes d'authentification des comptes de service dans Apigee hybrid.

Secrets Kubernetes

Pour préparer les fichiers de clé de compte de service à stocker dans les secrets Kubernetes, vous pouvez utiliser l'outil create-service-account pour créer les fichiers de clé de compte de service avec l'indicateur --dir afin de créer un répertoire pour les fichiers de clé.

Production

  1. Assurez-vous que la variable d'environnement PROJECT_ID est définie.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'option --project-id PROJECT_ID à la commande create-service-account.

  2. Créez les comptes de service à l'aide des commandes suivantes, où $APIGEE_HELM_CHARTS_HOME correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avec y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Vérifiez que les fichiers de compte de service ont été créés en vérifiant le contenu du répertoire service-accounts. Vous devriez obtenir le résultat suivant :
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-cassandra.json            my-project-apigee-runtime.json
    my-project-apigee-logger.json               my-project-apigee-synchronizer.json
    my-project-apigee-mart.json                 my-project-apigee-udca.json
    my-project-apigee-metrics.json              my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json

Hors production

  1. Assurez-vous que la variable d'environnement PROJECT_ID est définie.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'option --project-id PROJECT_ID à la commande create-service-account.

  2. Créez les comptes de service à l'aide de la commande suivante, où $APIGEE_HELM_CHARTS_HOME correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer le compte de service. Répondre avec y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Vérifiez que le fichier de compte de service a été créé en examinant le contenu du répertoire service-accounts. Vous devriez obtenir le résultat suivant :
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-non-prod.json

Fichiers JSON

Comme Helm n'est pas compatible avec le référencement de fichiers en dehors du répertoire de chart, vous allez créer chaque fichier de certificat de compte de service dans le répertoire de chart pour le composant hybride correspondant.

Pour les étapes suivantes, choisissez si vous configurez une installation de production ou hors production.

Production

  1. Assurez-vous que la variable d'environnement PROJECT_ID est définie.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'option --project-id PROJECT_ID aux commandes create-service-account.

  2. Créez les comptes de service à l'aide des commandes suivantes, où $APIGEE_HELM_CHARTS_HOME correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avec y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-cassandra \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-logger \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-mart \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-metrics \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-runtime \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-synchronizer \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-udca \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-udca \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-watcher \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org

    Si vous activez la monétisation pour Apigee hybrid (Apigee hybrid v1.15.1 et versions ultérieures) :

    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-mint-task-scheduler \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
  3. Copiez le fichier JSON apigee-udca dans le répertoire de chart apigee-env. Il est nécessaire pour les opérations de champ d'application organisation et environnement.
    cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
  4. Vérifiez que les fichiers de compte de service ont été créés dans les répertoires appropriés en vérifiant le contenu du répertoire de chaque graphique. Vous devriez obtenir le résultat suivant :
    ls ./apigee-datastore
    Chart.yaml  my-project-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml                     my-project-apigee-metrics.json  values.yaml
    my-project-apigee-logger.json  templates
    
    ls ./apigee-org
    Chart.yaml                                  my-project-apigee-udca.json
    my-project-apigee-mart.json                 my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml                      my-project-apigee-synchronizer.json  templates
    my-project-apigee-runtime.json  my-project-apigee-udca.json          values.yaml
    

Hors production

  1. Assurez-vous que la variable d'environnement PROJECT_ID est définie.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'option --project-id PROJECT_ID aux commandes create-service-account.

  2. Créez le compte de service à l'aide de la commande suivante, où $APIGEE_HELM_CHARTS_HOME correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avec y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
  3. Vérifiez le nom du fichier de compte de service créé dans le répertoire apigee-datastore:
    ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    Chart.yaml  PROJECT_ID-apigee-non-prod.json  templates  values.yaml
  4. Copiez le fichier du compte de service dans les autres répertoires de graphiques qui devront y faire référence:
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-org/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-env/

Vault

Pour préparer les fichiers de clé de compte de service à stocker dans Vault, vous pouvez utiliser l'outil create-service-account afin de créer les fichiers de clé de compte de service avec l'indicateur --dir pour créer un répertoire pour les fichiers de clé.

Production

  1. Assurez-vous que la variable d'environnement PROJECT_ID est définie.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'option --project-id PROJECT_ID à la commande create-service-account.

  2. Créez les comptes de service à l'aide des commandes suivantes, où $APIGEE_HELM_CHARTS_HOME correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avec y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Vérifiez que les fichiers de compte de service ont été créés en vérifiant le contenu du répertoire service-accounts. Vous devriez obtenir le résultat suivant :
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-cassandra.json            my-project-apigee-runtime.json
    my-project-apigee-logger.json               my-project-apigee-synchronizer.json
    my-project-apigee-mart.json                 my-project-apigee-udca.json
    my-project-apigee-metrics.json              my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json
    

Hors production

  1. Assurez-vous que la variable d'environnement PROJECT_ID est définie.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'option --project-id PROJECT_ID à la commande create-service-account.

  2. Créez les comptes de service à l'aide de la commande suivante, où $APIGEE_HELM_CHARTS_HOME correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer le compte de service. Répondre avec y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Vérifiez que le fichier de compte de service a été créé en examinant le contenu du répertoire service-accounts. Vous devriez obtenir le résultat suivant :
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-non-prod.json

WIF pour GKE

Créez les comptes de service pour votre installation à l'aide des commandes suivantes :

Production

  1. Assurez-vous que la variable d'environnement PROJECT_ID est définie.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'option --project-id PROJECT_ID à la commande create-service-account.

  2. Créez les comptes de service à l'aide des commandes suivantes, où $APIGEE_HELM_CHARTS_HOME correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avec y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Vérifiez la création des comptes de service Google à l'aide de la commande suivante :
    gcloud iam service-accounts list --project $PROJECT_ID

    Le résultat doit ressembler à ce qui suit :

    DISPLAY NAME                EMAIL                                                          DISABLED
    apigee-cassandra            apigee-cassandra@my-project.iam.gserviceaccount.com            False
    apigee-mart                 apigee-mart@my-project.iam.gserviceaccount.com                 False
    apigee-metrics              apigee-metrics@my-project.iam.gserviceaccount.com              False
    apigee-mint-task-scheduler  apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com  False
    apigee-runtime              apigee-runtime@my-project.iam.gserviceaccount.com              False
    apigee-synchronizer         apigee-synchronizer@my-project.iam.gserviceaccount.com         False
    apigee-udca                 apigee-udca@my-project.iam.gserviceaccount.com                 False
    apigee-watcher              apigee-watcher@my-project.iam.gserviceaccount.com              False
    

Hors production

  1. Assurez-vous que la variable d'environnement PROJECT_ID est définie.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'option --project-id PROJECT_ID à la commande create-service-account.

  2. Créez les comptes de service à l'aide de la commande suivante, où $APIGEE_HELM_CHARTS_HOME correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer le compte de service. Répondre avec y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Vérifiez la création des comptes de service Google à l'aide de la commande suivante :
    gcloud iam service-accounts list --project $PROJECT_ID

    Le résultat doit ressembler à ce qui suit :

    DISPLAY NAME         EMAIL                                                   DISABLED
    apigee-non-prod      apigee-non-prod@my-project.iam.gserviceaccount.com      False
    

Facultatif : Vous n'aurez pas besoin des fichiers de clé de compte de service pour Workload Identity Federation for GKE. Vous pouvez supprimer le répertoire service-accounts une fois que vous avez terminé.

WIF sur d'autres plates-formes

Créez les comptes de service pour votre installation à l'aide des commandes suivantes :

Production

  1. Assurez-vous que la variable d'environnement PROJECT_ID est définie.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'option --project-id PROJECT_ID à la commande create-service-account.

  2. Créez les comptes de service à l'aide des commandes suivantes, où $APIGEE_HELM_CHARTS_HOME correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer chaque compte de service. Répondre avec y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Vérifiez la création des comptes de service Google à l'aide de la commande suivante :
    gcloud iam service-accounts list --project $PROJECT_ID

    Le résultat doit ressembler à ce qui suit :

    DISPLAY NAME                EMAIL                                                          DISABLED
    apigee-cassandra            apigee-cassandra@my-project.iam.gserviceaccount.com            False
    apigee-mart                 apigee-mart@my-project.iam.gserviceaccount.com                 False
    apigee-metrics              apigee-metrics@my-project.iam.gserviceaccount.com              False
    apigee-mint-task-scheduler  apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com  False
    apigee-runtime              apigee-runtime@my-project.iam.gserviceaccount.com              False
    apigee-synchronizer         apigee-synchronizer@my-project.iam.gserviceaccount.com         False
    apigee-udca                 apigee-udca@my-project.iam.gserviceaccount.com                 False
    apigee-watcher              apigee-watcher@my-project.iam.gserviceaccount.com              False
    

Hors production

  1. Assurez-vous que la variable d'environnement PROJECT_ID est définie.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable Si ce n'est pas le cas, définissez-la avec votre ID de projet Google Cloud ou ajoutez l'option --project-id PROJECT_ID à la commande create-service-account.

  2. Créez les comptes de service à l'aide de la commande suivante, où $APIGEE_HELM_CHARTS_HOME correspond au chemin d'accès où vous avez téléchargé les graphiques Helm Apigee. Vous pouvez être invité à créer le compte de service. Répondre avec y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Vérifiez la création des comptes de service Google à l'aide de la commande suivante :
    gcloud iam service-accounts list --project $PROJECT_ID

    Le résultat doit ressembler à ce qui suit :

    DISPLAY NAME         EMAIL                                                   DISABLED
    apigee-non-prod      apigee-non-prod@my-project.iam.gserviceaccount.com      False
    

Facultatif : Vous n'aurez pas besoin des fichiers de clé de compte de service pour Workload Identity Federation for GKE. Vous pouvez supprimer le répertoire service-accounts une fois que vous avez terminé.

Pour en savoir plus sur les comptes de service et l'outil create-service-account, consultez la page suivante:

Vous avez à présent créé des comptes de service et attribué les rôles nécessaires aux composants Apigee hybrid. Ensuite, créez les certificats TLS requis par la passerelle d'entrée hybride.

Étape suivante

1 2 3 4 (SUITE) Étape 5 : Configurer l'authentification du compte de service 6 7 8 9 10 11