É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, 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 trois méthodes d'authentification des comptes de service Google:

Workload Identity sur AKS, EKS ou GKE

Pour les installations Apigee hybrid sur GKE, Google Cloud propose une option appelée Workload Identity servant à authentifier les composants d'exécution hybrides. Cette option n'utilise pas les fichiers de certificat téléchargés pour authentifier les comptes de service, mais associe les comptes de service Google Cloud que vous créez à cette étape aux comptes de service Kubernetes dans le cluster Kubernetes. Consultez la section Activer Workload Identity sur GKE ou Activer la fédération d'identité de charge de travail sur AKS et EKS.

Créer les comptes de service

Apigee hybrid utilise les comptes de service suivants :

Prod

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-runtime Aucun rôle requis apigee-env
apigee-synchronizer Gestionnaire de synchronisateur Apigee 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

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.

Prod

  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
  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  PROJECT_ID-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml  PROJECT_ID-apigee-logger.json  PROJECT_ID-apigee-metrics.json  templates  values.yaml
    
    ls ./apigee-org
    Chart.yaml                      PROJECT_ID-apigee-udca.json     templates
    PROJECT_ID-apigee-mart.json  PROJECT_ID-apigee-watcher.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml  PROJECT_ID-apigee-runtime.json  PROJECT_ID-apigee-synchronizer.json  templates  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.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-env/

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 : Créer des certificats TLS 6 7 8 9 10 11