Cette section décrit l'utilisation d'Apigee Connect (version bêta) pour la communication entre le plan de gestion hybride et le service MART dans le plan d'exécution.
Introduction
Apigee Connect permet au plan de gestion hybride d'Apigee de se connecter en toute sécurité au service MART dans le plan d'exécution sans avoir à exposer le point de terminaison MART sur Internet. Si vous utilisez Apigee Connect, vous n'avez pas besoin de configurer la passerelle d'entrée MART avec un alias d'hôte et un certificat DNS autorisé.
Prérequis
Apigee hybrid version 1.2.0 ou ultérieure doit être installé et configuré avant de configurer Apigee Connect.
- Si vous installez Apigee hybrid pour la première fois, suivez les instructions d'installation indiquées dans la documentation d'Apigee hybrid.
- Si vous utilisez actuellement la version 1.1.x d'Apigee hybrid, vous devez mettre à niveau votre installation vers la version 1.2.0 avant de continuer. Pour connaître la procédure de mise à niveau, consultez la page Mettre à niveau Apigee hybrid.
Ajouter Apigee Connect à l'environnement d'exécution hybride
Dans cette section, nous partons du principe que vous avez installé et configuré Apigee hybrid version 1.2.0 ou ultérieure, ou que vous avez effectuez une mise à niveau vers cette version.
Lorsque Apigee Connect est configuré et activé, l'entrée MART est ignorée : le plan de gestion se connecte uniquement à MART à l'aide d'Apigee Connect. Tout le trafic MART entre le plan d'exécution hybride passe par la connexion sécurisée Apigee Connect.
Pour activer et utiliser Apigee Connect avec Apigee hybrid, procédez comme suit :
- Activez l 'API Apigee Connect dans la
bibliothèque d'API Google Cloud. Vous pouvez activer l'API dans la
console Google Cloud (GCP) ou avec
gcloud
. Pour obtenir des instructions sur l'activation des API dans Google Cloud Console, consultez la section Étape 3 : Activer les API. Pour utilisergcloud
afin d'activer l'API, procédez comme suit :
$ gcloud config set project YOUR_GCP_PROJECT_ID $ gcloud services enable apigeeconnect.googleapis.com
OùYOUR_GCP_PROJECT_ID
correspond au projet GCP pour lequel Apigee a été activé et une organisation Apigee a été provisionnée pour vous. - Ajoutez le rôle Agent Apigee Connect au compte de service MART que vous avez créé à l'étape Créer des comptes de service dans les instructions d'installation d'Apigee hybrid :
$ gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID --member serviceAccount:YOUR_MART_SERVICE_ACCOUNT_EMAIL --role roles/apigeeconnect.Agent
OùYOUR_GCP_PROJECT_ID
correspond au projet GCP pour lequel Apigee a été activé et une organisation Apigee a été provisionnée pour vous.YOUR_MART_SERVICE_ACCOUNT_EMAIL
correspond au nom du compte de service MART. Le nom se présente sous la forme d'une adresse e-mail. Exemple :apigee-mart@my-project.iam.gserviceaccount.com
.
Le rôle Agent Apigee Connect est prédéfini et l'autorisation suivante lui est attribuée :
Permission Description apigeeconnect.endpoints.connect
Il s'agit de l'autorisation de configurer l'agent Apigee Connect. Pour en savoir plus sur l'attribution d'autorisations d'accès via la console GCP ou les API, consultez les pages suivantes :
- Assurez-vous que le fichier de clé du compte de service MART se trouve dans le répertoire
hybrid_files/service_accounts
, comme expliqué dans la section Créer des comptes de service. - Ouvrez votre fichier de remplacement et ajoutez les stanzas suivants. La configuration nécessite que vous fournissiez le chemin d'accès à la clé de compte de service téléchargée. La clé doit correspondre à un compte de service doté du rôle Agent Apigee Connect.
# Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
Ajoutez le stanza sous l'en-tête k8sCluster, par exemple :k8sCluster: name: your_cluster_name region: your_cluster_region # Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
# Apigee Connect Agent connectAgent: enabled: true replicaCountMin: 3 serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
- Localisez la clé de compte de service dotée du rôle Administrateur de l'organisation Apigee que vous avez téléchargée lors de l'installation initiale d'Apigee hybrid, comme décrit dans la section Activer l'accès au synchroniseur. Vous avez besoin de cette clé pour générer un jeton nécessaire à un appel d'API, comme expliqué ci-dessous.
- Exécutez ces deux commandes pour obtenir un jeton :
$ export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file $ export TOKEN=$(gcloud auth application-default print-access-token)
Où org-admin-service-account-file correspond au chemin d'accès sur votre système à la clé de compte de service que vous avez téléchargée et dotée du rôle Administrateur de l'organisation Apigee. - Appelez l'API Apigee suivante afin d'activer Apigee Connect pour votre organisation :
curl -v -X PUT \ https://apigee.googleapis.com/v1/organizations/your_org_name \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name" : "your_org_name", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.connect.enabled", "value" : "true" } ] } }'
- Démarrez l'agent Apigee Connect dans le cluster :
$ $APIGEECTL_HOME/apigeectl apply -f your_overrides_file.yaml -c connect-agent
- Consultez le journal de l'agent Apigee Connect. Si aucune erreur n'est signalée, la mise à niveau a réussi :
$ kubectl logs -n namespace apigee-connect-agent-pod-name
L'agent Apigee Connect signale les catégories de journal suivantes :Catégorie de journaux d'audit Opérations DATA_READ ConnectionService.ListConnections
DATA_WRITE Tether.Egress
- Testez l'installation.
mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-project-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key
Avec cette mise à niveau, le plan d'exécution hybride communique avec le plan de gestion via Apigee Connect.
Voir aussi Suppression d'Apigee Connect.
Tester l'installation
- Ouvrez l'interface utilisateur Apigee hybride.
- Vérifiez que tous les développeurs et applications de développeur que vous avez créés précédemment sont présents dans l'interface utilisateur. Comme ces entités sont interrogées à partir du serveur MART, elles ne seront présentes que si la communication entre les plans de gestion et d'exécution est correctement configurée.
- Pour vous assurer que les requêtes transitent par Apigee Connect et non via l'entrée MART, consultez le journal du serveur MART. Vous devriez voir des entrées pour l'agent Apigee Connect nommé
apigee-connect-agent-1.0
:
$ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart | grep connect
Exemple :"2019-12-11 04:59:52,321 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576040392317 /v1/organizations/apigee-connect-hybrid-prod/developers/ count=100&expand=true&startKey=4ee9e8f7-12b2-4cde-bf10-32d991469876 200 GET apigee-connect-hybrid-prod 10.40.11.3 10.40.0.5 apigee-connect-agent-1.0 null"
- Dans l'UI Apigee hybrid, créez un produit d'API, un développeur et une application de développeur. Ensuite, consultez le journal du service MART pour vérifier que les entrées de journal confirment que les entités ont bien été envoyées au plan d'exécution. Par exemple, l'entrée de journal suivante indique que le produit d'API nommé
foo-product
a été reçu :
$ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart
2019-12-16 22:15:29,572 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576534529566 /v1/organizations/myorg/apiproducts/foo-product/ -NA- 201 CREATE myorg 10.16.1.61 10.16.1.64 apigee-connect-agent-1.0 null 2019-12-16 22:15:30,412 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576534530407 /v1/organizations/myorg/apps/ apiProduct=foo-product&expand=false 200 GET myorg 10.16.1.61 10.16.1.64 apigee-connect-agent-1.0 null
- Essayez de créer et de déployer un nouveau proxy, comme expliqué sur la page Créer et déployer un proxy.
- Configurez votre proxy avec la validation de clé API en suivant les étapes décrites sur la page Sécuriser un proxy d'API en exigeant des clés API. L'environnement d'exécution obtient les données requises pour valider une clé API à partir du plan de gestion via Apigee Connect. Par conséquent, si la validation de la clé API fonctionne, vous savez qu'Apigee Connect fonctionne correctement. Vous pouvez également consulter les journaux Apigee Connect pour voir un rapport sur les transferts de données.
Supprimer Apigee Connect
Si vous supprimez le déploiement d'Apigee Connect, l'état du pod peut rester à l'état "Arrêt" pendant sept minutes au maximum. Cette durée est prévue. Les agents Apigee Connect attendent que les connexions existantes expirent, au lieu de les arrêter soudainement. Le délai garantit que les requêtes en cours ne sont pas perdues.