En esta sección, se describe el uso de Apigee Connect (Beta) para la comunicación entre el plano de administración híbrido y el servicio MART en el plano de entorno de ejecución.
Introducción
Apigee Connect permite que el plano de administración híbrido de Apigee se conecte de forma segura al servicio MART en el plano del entorno de ejecución sin necesidad de exponer el extremo de MART en Internet. Si usas Apigee Connect, no necesitas configurar la puerta de enlace de entrada de MART con un alias de host y un certificado DNS autorizado.
Requisitos previos
Antes de configurar Apigee Connect, se debe instalar y configurar la versión híbrida 1.2.0 o posterior de Apigee.
- Si instalas Apigee Hybrid por primera vez, sigue las instrucciones de instalación en la documentación de Apigee Hybrid.
- Si actualmente usas la versión 1.1.x de Apigee Hybrid, debes actualizar tu instalación a la versión 1.2.0 antes de continuar. Para conocer los pasos de actualización, consulta Actualización de Apigee Hybrid
Agrega Apigee Connect al entorno de ejecución híbrido
En esta sección, se da por sentado que instalaste Apigee Hybrid 1.2.0 o una versión más reciente, o que la actualizaste y configuraste.
Cuando Apigee Connect está configurado y habilitado, la entrada de MART se ignora: el plano de administración solo se conecta al MART mediante Apigee Connect. Todo el tráfico de MART entre el plano de entorno de ejecución híbrido pasa a través de la conexión segura de Apigee Connect.
Sigue estos pasos para habilitar y usar Apigee Connect con Apigee Hybrid:
- Habilita la API de Apigee Connect en la biblioteca de la API de Google Cloud. Puedes habilitar la API en la Google Cloud (GCP) Console o con
gcloud
. Para obtener instrucciones para habilitar las API en la consola de Google Cloud, consulta el Paso 3: Habilita las API. Para usargcloud
a fin de habilitar la API, ejecuta el siguiente comando:
$ gcloud config set project YOUR_GCP_PROJECT_ID $ gcloud services enable apigeeconnect.googleapis.com
En el queYOUR_GCP_PROJECT_ID
es el mismo proyecto de GCP para el que se habilitó Apigee y se aprovisionó una organización de Apigee. - Agrega la función Agente de Apigee Connect a la cuenta de servicio de MART que creaste en el paso Crea cuentas de servicio en las instrucciones de instalación de Apigee Hybrid:
$ gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID --member serviceAccount:YOUR_MART_SERVICE_ACCOUNT_EMAIL --role roles/apigeeconnect.Agent
En el queYOUR_GCP_PROJECT_ID
es el mismo proyecto de GCP para el que se habilitó Apigee y se aprovisionó una organización de Apigee.YOUR_MART_SERVICE_ACCOUNT_EMAIL
es el nombre de la cuenta de servicio de MART. El nombre tiene el formato de una dirección de correo electrónico. Por ejemplo:apigee-mart@my-project.iam.gserviceaccount.com
.
La función Agente de Apigee Connect está predefinida y tiene el siguiente permiso asignado:
Permiso Descripción apigeeconnect.endpoints.connect
Este es el permiso para configurar el agente de Apigee Connect. Para obtener detalles sobre cómo asignar permisos de acceso a través de GCP Console o las API, consulta:
- Asegúrate de que el archivo de claves de la cuenta de servicio de MART esté en el directorio
hybrid_files/service_accounts
, como se explica en Crea cuentas de servicio. - Abre el archivo de anulaciones y agrega las siguientes estrofas. La configuración requiere que proporciones la ruta a la clave de la cuenta de servicio descargada. La clave debe ser para una cuenta de servicio con la función de agente de Apigee Connect.
# Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
Agrega la estrofa debajo del encabezado k8sCluster, por ejemplo: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
- Ubica la clave de cuenta de servicio con la función Administrador de la organización de Apigee que descargaste cuando instalaste Apigee Hybrid originalmente como se describe en la sección Habilita el acceso del sincronizador. Necesitarás esta clave a fin de generar un token necesario para realizar una llamada a la API como se explica a continuación.
- Ejecuta estos dos comandos para obtener un token:
$ export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file $ export TOKEN=$(gcloud auth application-default print-access-token)
En los que org-admin-service-account-file es la ruta de tu sistema a la clave de la cuenta de servicio que descargaste con la función de Administrador de la organización de Apigee. - Llama a la siguiente API de Apigee a fin de habilitar Apigee Connect para tu organización:
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" } ] } }'
- Inicia el agente de Apigee Connect en el clúster:
$ $APIGEECTL_HOME/apigeectl apply -f your_overrides_file.yaml -c connect-agent
- Comprueba el registro del agente de Apigee Connect. Si no se informa ningún error, la actualización se realizará de forma correcta:
$ kubectl logs -n namespace apigee-connect-agent-pod-name
El agente de Apigee Connect informa las siguientes categorías de registro:Categoría de registros de auditoría Operaciones DATA_READ ConnectionService.ListConnections
DATA_WRITE Tether.Egress
- Prueba la instalación.
mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-project-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key
Con esta actualización, el plano de entorno de ejecución híbrido se comunica con el plano de administración a través de Apigee Connect.
Consulta también: Quita Apigee Connect.
Prueba la instalación
- Abre la IU de Apigee Hybrid.
- Verifica que todas las apps para programadores y desarrolladores que hayas creado antes estén presentes en la IU. Debido a que estas entidades se consultan desde el servidor de MART, estarán presentes solo si la comunicación entre los planos de administración y entorno de ejecución está configurada de forma correcta.
- Para asegurarte de que las solicitudes pasen por Apigee Connect y no mediante la entrada de MART, consulta el registro del servidor de MART. Deberías ver entradas para el agente de Apigee Connect llamado
apigee-connect-agent-1.0
:
$ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart | grep connect
Por ejemplo:
"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"
- En la IU híbrida, crea un producto de API, un desarrollador y una app para desarrolladores. Luego, comprueba el registro de servicio de MART para asegurarte de que las entradas de registro confirmen que las entidades se enviaron al plano de entorno de ejecución. Por ejemplo, en la siguiente entrada de registro, se muestra que se recibió el producto de API
foo-product
:
$ 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
- Intenta crear y, luego, implementar un proxy nuevo, como se explica en Crea e implementa un proxy.
- Para configurar tu proxy con la verificación de la clave de API, sigue los pasos que se indican en Protege un proxy de API mediante la solicitud de claves de API. El entorno de ejecución obtiene los datos necesarios para validar una clave de API desde el plano de administración a través de Apigee Connect. Por lo tanto, si la verificación de la clave de API funciona, sabes que Apigee Connect funciona correctamente. También puedes verificar los registros de Apigee Connect para ver un informe de las transferencias de datos.
Quita Apigee Connect
Si borras la implementación de Apigee Connect, el estado del pod puede permanecer en el estado “Finalización” hasta siete minutos. Se espera este tiempo. Los agentes de Apigee Connect esperan que las conexiones existentes venzan en lugar de detenerlos de forma repentina. El retraso garantiza que no se pierdan las solicitudes en curso.