Étape 8 : Activer l'accès au plan de contrôle

Pour que le plan d'exécution et le plan de contrôle puissent communiquer, vous devez activer les autorisations requises pour le synchronisateur et l'accès éditeur à Analytics avec l'API updateControlPlaneAccess.

Obtenir un jeton d'autorisation

Pour effectuer les appels d'API Apigee décrits plus loin dans cette rubrique, vous devez obtenir un jeton d'autorisation doté du rôle Administrateur de l'organisation Apigee.

  1. Si vous n'êtes pas propriétaire du projet Google Cloud associé à votre organisation Apigee hybrid, assurez-vous que votre compte utilisateur Google Cloud dispose du rôle roles/apigee.admin (Administrateur de l'organisation Apigee). Vous pouvez vérifier les rôles qui vous sont attribués à l'aide de cette commande :
    gcloud projects get-iam-policy ${PROJECT_ID}  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:your_account_email"
    

    Par exemple :

    gcloud projects get-iam-policy my-project  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:myusername@example.com"

    Le résultat doit inclure roles/apigee.admin.

  2. Si vous ne disposez pas de roles/apigee.admin, ajoutez le rôle Administrateur de l'organisation Apigee à votre compte utilisateur. Exécutez la commande suivante pour ajouter le rôle à votre compte utilisateur :
    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
      --member user:your_account_email \
      --role roles/apigee.admin

    Par exemple :

    gcloud projects add-iam-policy-binding my-project \
      --member user:myusername@example.com \
      --role roles/apigee.admin
  3. Sur la ligne de commande, obtenez vos identifiants d'authentification gcloud à l'aide de la commande suivante :

    Linux / macOS

    export TOKEN=$(gcloud auth print-access-token)

    Pour vérifier que votre jeton a été renseigné, utilisez echo, comme le montre l'exemple suivant :

    echo $TOKEN

    Votre jeton doit s'afficher sous forme de chaîne encodée.

    Windows

    for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a

    Pour vérifier que votre jeton a été renseigné, utilisez echo, comme le montre l'exemple suivant :

    echo %TOKEN%

    Votre jeton doit s'afficher sous forme de chaîne encodée.

Activer l'accès au synchronisateur

Pour activer l'accès au synchronisateur :

  1. Obtenez l'adresse e-mail du compte de service auquel vous accordez l'accès au synchronisateur. Pour les environnements de production, il doit s'agir de apigee-synchronizer. Pour les environnements hors production, il doit s'agir de apigee-non-prod. Exécutez la commande suivante :

    Production

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"

    Hors production

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
  2. Appelez l'API updateControlPlaneAccess pour activer les autorisations requises pour le synchronisateur à l'aide de la commande suivante :

    Sans résidence des données

    curl -X PATCH -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \
      -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
    

    Où :

    • ${ORG_NAME} : nom de votre organisation hybride.
    • apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: adresse e-mail du compte de service.

    Résidence des données

    curl -X PATCH -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \
      -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
    

    Où :

    • CONTROL_PLANE_LOCATION : emplacement des données de votre plan de contrôle si votre installation hybride utilise la résidence des données. Il s'agit de l'emplacement où sont stockés le contenu principal du client, comme les bundles proxy. Pour obtenir la liste, consultez Régions du plan de contrôle de l'API Apigee disponibles.
    • ${ORG_NAME} : nom de votre organisation hybride.
    • apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: adresse e-mail du compte de service.
  3. Afin de vérifier que le compte de service a été défini, utilisez la commande suivante pour appeler l'API et obtenir une liste de comptes de service :

    Sans résidence des données

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
        

    Résidence des données

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
        

    Le résultat doit ressembler à ce qui suit :

    {
      "synchronizerIdentities": [
        "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ]
    }

Activer l'accès éditeur à Analytics

Plusieurs composants d'exécution Apigee hybrid publient des enregistrements d'analyse et de débogage pour la création de rapports et le débogage. Pour activer la publication de ces données, vous devez accorder des autorisations supplémentaires aux comptes de service qui exécutent ces composants Apigee afin qu'ils puissent publier des données directement sur le plan de contrôle.

Pour activer l'accès éditeur à Analytics :

  1. Obtenez l'adresse e-mail des comptes de service auxquels vous accordez l'accès éditeur à Analytics. Pour les environnements de production, il doit s'agir de apigee-runtime, apigee-mart et apigee-mint-task-scheduler (si vous activez la monétisation pour Apigee hybrid). Pour les environnements hors production, il doit s'agir de apigee-non-prod.

    Production

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-runtime OR apigee-mart OR apigee-mint-task-scheduler"

    Hors production

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
  2. Définissez les autorisations des comptes de service pour les composants d'exécution, MART et le planificateur de tâches Mint (si vous activez la monétisation pour Apigee hybrid sur la version v1.15.1 et versions ultérieures) afin de publier des données sur le plan de contrôle à l'aide de la commande suivante :

    Sans résidence des données

    Appelez l'API updateControlPlaneAccess pour activer les autorisations pour les comptes de service d'exécution et MART :

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Si vous activez la monétisation pour Apigee hybrid, définissez les autorisations pour le compte de service du planificateur de tâches Mint :

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Où les éléments suivants sont les adresses e-mail des comptes de service :

    • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
    • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
    • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com

    Résidence des données

    Appelez l'updateControlPlaneAccess API pour activer les autorisations pour les comptes de service d'exécution et MART :

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Si vous activez la monétisation pour Apigee hybrid, définissez les autorisations pour le compte de service du planificateur de tâches Mint :

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Où :

    • CONTROL_PLANE_LOCATION est l'emplacement des données de votre plan de contrôle si votre installation hybride utilise la résidence des données. Il s'agit de l'emplacement où sont stockés le contenu principal du client, comme les bundles proxy. Pour obtenir la liste, consultez Régions du plan de contrôle de l'API Apigee disponibles.
    • Les éléments suivants sont les adresses e-mail des comptes de service :

      • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com

    La réponse devrait ressembler à ceci :

    {
      "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "UPDATE",
        "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess",
        "state": "IN_PROGRESS"
      }
    }
    
  3. Vérifiez l'état de l'opération à l'aide de l'identifiant dans le champ name de la réponse de mise à jour :

    Sans résidence des données

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
      -H "Content-Type:application/json"  \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"

    Résidence des données

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
      -H "Content-Type:application/json"  \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"

    La page devrait ressembler à l'exemple ci-dessous :

    {
      "name": "organizations/YOUR_ORG_NAME/operations/$OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "UPDATE",
        "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess",
        "name": "organizations/YOUR_ORG_NAME/controlPlaneAccess"
      }
    }
    
  4. Vérifiez la configuration ControlPlaneAccess de l'organisation :

    Sans résidence des données

    curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

    Résidence des données

    curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

    La page devrait ressembler à l'exemple ci-dessous :

    {
      "synchronizerIdentities": [
        "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ],
      "analyticsPublisherIdentities": [
        "serviceAccount:apigee-mart@YOUR_ORG_NAME.iam.gserviceaccount.com",
        "serviceAccount:apigee-mint-task-scheduler@YOUR_ORG_NAME.iam.gserviceaccount.com",
        "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ]
    }
    

Vous avez maintenant activé la communication entre vos plans d'exécution et de gestion Apigee hybrid. Installez ensuite cert-manager pour permettre à Apigee hybride d'interpréter et de gérer les certificats.

Étape suivante

1 2 3 4 5 6 7 8 (SUITE) Étape 9 : Installer cert-manager 10 11