Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Apigee se integra con Controles de Servicio de VPC, que te permiten aislar los recursos de tus proyectos de Google Cloud. Esto ayuda a evitar filtraciones de datos.
En esta sección se describe cómo usar Controles de Servicio de VPC con Apigee.
Información general
Controles de Servicio de VPC define un perímetro de servicio que actúa como límite entre un proyecto y otros servicios. Los perímetros de servicio son un método a nivel de organización para proteger los servicios de Google Cloud de tus proyectos y, de esta forma, mitigar el riesgo de filtración externa de datos.
Controles de Servicio de VPC también puede asegurarse de que los clientes de un perímetro que tengan acceso privado a los recursos no tengan acceso a recursos no autorizados fuera del perímetro.
Para obtener información detallada sobre las ventajas de los perímetros de servicio, consulta la descripción general de Controles de Servicio de VPC.
Cuando uses Controles de Servicio de VPC, ten en cuenta lo siguiente:
- Tanto el proyecto de Google Cloud como su tiempo de ejecución asociado se incluyen en el perímetro de Controles de Servicio de VPC de ese proyecto.
- La interacción entre los servicios dentro de un perímetro se puede restringir mediante la función Servicios accesibles de la red de VPC.
Tanto Apigee como Apigee Hybrid se integran con Controles de Servicio de VPC. Para ver una lista completa de los productos que se integran con Controles de Servicio de VPC, consulta Productos admitidos.
Impacto en la conectividad a Internet
Cuando los Controles de Servicio de VPC están habilitados, el acceso a Internet está inhabilitado: el tiempo de ejecución de Apigee ya no se comunicará con ningún destino público de Internet. Para ello, debes enrutar el tráfico a tu red VPC mediante rutas personalizadas. Consulta Importar y exportar rutas personalizadas.
Configurar Controles de Servicio de VPC con Apigee
El proceso general para configurar Controles de Servicio de VPC con Apigee es el siguiente:
- Habilita Controles de Servicio de VPC.
- Crea un perímetro de servicio.
- Configura el perímetro de servicio.
Estos pasos se describen con más detalle a continuación.
Para configurar Controles de Servicio de VPC con Apigee, haz lo siguiente:
-
Habilita los Controles de Servicio de VPC para la conexión emparejada de tu red a Apigee ejecutando el siguiente comando:
gcloud services vpc-peerings enable-vpc-service-controls \ --network=SHARED_VPC_NETWORK --project=PROJECT_ID
Donde:
- SHARED_VPC_NETWORK es el nombre de tu red de VPC compartida.
- PROJECT_ID es el nombre del proyecto que aloja la red de VPC compartida. No es el proyecto que se usa para crear la organización de Apigee.
Este comando habilita Controles de Servicio de VPC en tu proyecto. Puedes ejecutar este comando varias veces para habilitar Controles de Servicio de VPC en más de un proyecto.
-
Crea un perímetro como se describe en la guía de inicio rápido de Controles de Servicio de VPC. Cuando creas un perímetro, eliges qué proyectos quieres añadir a ese perímetro y qué servicios quieres proteger.
En Apigee y Apigee Hybrid, Google recomienda proteger todos los servicios al crear un perímetro, incluida la API de Apigee.
Para obtener más información, consulta el artículo Crear un perímetro de servicio.
- Configura el perímetro de servicio tal como se describe en Detalles y configuración del perímetro de servicio.
Para añadir un portal integrado a tu perímetro, consulta Añadir un portal integrado al perímetro.
Configurar Controles de Servicio de VPC con Apigee Hybrid
Apigee hybrid admite Controles de Servicio de VPC, pero debes seguir otros pasos. El proceso general para integrar Apigee hybrid con Controles de Servicio de VPC es el siguiente:
- Configura la conectividad privada.
- Protege servicios adicionales dentro del perímetro.
- Configura un repositorio privado. Un repositorio privado es aquel que se encuentra dentro del perímetro. No es necesario que sea un repositorio local, siempre que esté dentro del perímetro.
- Envía las imágenes de Apigee a tu repositorio privado.
- Actualiza las anulaciones para usar el repositorio privado durante el proceso de instalación y configuración híbrido.
Cada uno de estos pasos se describe con más detalle en el siguiente procedimiento.
Para configurar Controles de Servicio de VPC con Apigee hybrid, haz lo siguiente:
- Configura direcciones IP privadas para los hosts de tu red híbrida, tal como se describe en el artículo Configurar la conectividad privada con las APIs y los servicios de Google. Para ello, debes configurar rutas, reglas de cortafuegos y entradas de DNS para que las APIs de Google puedan acceder a esas IPs privadas.
-
Sigue los pasos que se indican en el artículo sobre cómo configurar Controles de Servicio de VPC con Apigee.
Durante este proceso, debes asegurarte de proteger los siguientes servicios, además de los que se especifican para Apigee, dentro de tu perímetro:
- Anthos Service Mesh
- Cloud Monitoring (Stackdriver)
- Google Kubernetes Engine (si se ejecuta en GKE)
- Google Container Registry (si lo usas como repositorio local)
Para añadir estos servicios a tu perímetro, sigue las instrucciones que se indican en Detalles y configuración del perímetro de servicio.
- Copia las imágenes de Apigee en tu repositorio privado:
-
Descarga las imágenes firmadas de Apigee desde Docker Hub como se describe aquí. Asegúrate de especificar los números de la última versión.
Por ejemplo:
docker pull google/apigee-installer:1.3.3 docker pull google/apigee-authn-authz:1.3.3 docker pull google/apigee-mart-server:1.3.3 docker pull google/apigee-synchronizer:1.3.3 docker pull google/apigee-runtime:1.3.3 docker pull google/apigee-hybrid-cassandra-client:1.3.3 docker pull google/apigee-hybrid-cassandra:1.3.3 docker pull google/apigee-cassandra-backup-utility:1.3.3 docker pull google/apigee-udca:1.3.3 docker pull google/apigee-stackdriver-logging-agent:1.6.8 docker pull google/apigee-prom-prometheus:v2.9.2 docker pull google/apigee-stackdriver-prometheus-sidecar:0.7.5 docker pull google/apigee-connect-agent:1.3.3 docker pull google/apigee-watcher:1.3.3 docker pull google/apigee-operators:1.3.3 docker pull google/apigee-kube-rbac-proxy:v0.4.1
-
Etiqueta las imágenes.
En el siguiente ejemplo se etiquetan las imágenes de un repositorio de GCR ubicado en EE. UU.:
docker tag google/apigee-installer:1.3.3 us.gcr.io/project_ID/apigee-installer:1.3.3 docker tag google/apigee-authn-authz:1.3.3 us.gcr.io/project_ID/apigee-authn-authz:1.3.3 docker tag google/apigee-mart-server:1.3.3 us.gcr.io/project_ID/apigee-mart-server:1.3.3 docker tag google/apigee-synchronizer:1.3.3 us.gcr.io/project_ID/apigee-synchronizer:1.3.3 docker tag google/apigee-runtime:1.3.3 us.gcr.io/project_ID/apigee-runtime:1.3.3 docker tag google/apigee-hybrid-cassandra-client:1.3.3 us.gcr.io/project_ID/apigee-hybrid-cassandra-client:1.3.3 docker tag google/apigee-hybrid-cassandra:1.3.3 us.gcr.io/project_ID/apigee-hybrid-cassandra:1.3.3 docker tag google/apigee-cassandra-backup-utility:1.3.3 us.gcr.io/project_ID/apigee-cassandra-backup-utility:1.3.3 docker tag google/apigee-udca:1.3.3 us.gcr.io/project_ID/apigee-udca:1.3.3 docker tag google/apigee-stackdriver-logging-agent:1.6.8 us.gcr.io/project_ID/apigee-stackdriver-logging-agent:1.6.8 docker tag google/apigee-prom-prometheus:v2.9.2 us.gcr.io/project_ID/apigee-prom-prometheus:v2.9.2 docker tag google/apigee-stackdriver-prometheus-sidecar:0.7.5 us.gcr.io/project_ID/apigee-stackdriver-prometheus-sidecar:0.7.5 docker tag google/apigee-connect-agent:1.3.3 us.gcr.io/project_ID/apigee-connect-agent:1.3.3 docker tag google/apigee-watcher:1.3.3 us.gcr.io/project_ID/apigee-watcher:1.3.3 docker tag google/apigee-operators:1.3.3 us.gcr.io/project_ID/apigee-operators:1.3.3 docker tag google/apigee-kube-rbac-proxy:v0.4.1 us.gcr.io/project_ID/apigee-kube-rbac-proxy:v0.4.1
Aunque no es obligatorio, Google recomienda que incluya el ID del proyecto u otro valor identificativo en la ruta del repositorio de cada imagen.
-
Envía las imágenes a tu repositorio privado.
En el siguiente ejemplo se insertan las imágenes en un repositorio de GCR ubicado en EE. UU.:
docker push us.gcr.io/project_ID/apigee-installer:1.3.3 docker push us.gcr.io/project_ID/apigee-authn-authz:1.3.3 docker push us.gcr.io/project_ID/apigee-mart-server:1.3.3 docker push us.gcr.io/project_ID/apigee-synchronizer:1.3.3 docker push us.gcr.io/project_ID/apigee-runtime:1.3.3 docker push us.gcr.io/project_ID/apigee-hybrid-cassandra-client:1.3.3 docker push us.gcr.io/project_ID/apigee-hybrid-cassandra:1.3.3 docker push us.gcr.io/project_ID/apigee-cassandra-backup-utility:1.3.3 docker push us.gcr.io/project_ID/apigee-cassandra-backup-utility:1.3.3 docker push us.gcr.io/project_ID/apigee-udca:1.3.3 docker push us.gcr.io/project_ID/apigee-stackdriver-logging-agent:1.6.8 docker push us.gcr.io/project_ID/apigee-prom-prometheus:v2.9.2 docker push us.gcr.io/project_ID/apigee-stackdriver-prometheus-sidecar:0.7.5 docker push us.gcr.io/project_ID/apigee-connect-agent1.3.3 docker push us.gcr.io/project_ID/apigee-watcher1.3.3 docker push us.gcr.io/project_ID/apigee-operators1.3.3 docker push us.gcr.io/project_ID/apigee-kube-rbac-proxy:v0.4.1
Aunque no es obligatorio, Google recomienda que incluya el ID del proyecto u otro valor identificativo en la ruta del repositorio de cada imagen.
-
-
Actualiza el archivo de anulaciones para que las URLs de las imágenes dirijan a tu repositorio privado, tal como se describe en el artículo Especificar anulaciones de configuración.
Debe cambiar las URLs de las imágenes de los siguientes componentes:
Nombre del componente (en el archivo de anulaciones) URL de imagen ao
your_private_repo/apigee-operators
authz
your_private_repo/apigee-authn-authz
cassandra
your_private_repo/apigee-hybrid-cassandra
auth: your_private_repo/apigee-hybrid-cassandra-client
backup: your_private_repo/apigee-cassandra-backup-utility
restore: your_private_repo/apigee-cassandra-backup-utilityconnectAgent
your_private_repo/apigee-connect-agent
installer
your_private_repo/apigee-installer
kubeRBACProxy
your_private_repo/apigee-kube-rbac-proxy
logger
your_private_repo/apigee-stackdriver-logging-agent
mart
your_private_repo/apigee-mart-server
metrics
your_private_repo/apigee-prom-prometheus
sdSidecar: your_private_repo/apigee-stackdriver-prometheus-sidecarruntime
your_private_repo/apigee-runtime
synchronizer
your_private_repo/apigee-synchronizer
udca
your_private_repo/apigee-udca
fluentd: your_private_repo/apigee-stackdriver-logging-agentwatcher
your_private_repo/apigee-watcher
- Aplica los cambios con las nuevas imágenes de GCR, tal como se describe en Aplicar la configuración al clúster.
Conceder acceso a la periferia a portales integrados
VPC-SC permite conceder niveles de acceso de VPC-SC a portales integrados, pero este proceso requiere pasos adicionales, tal como se describe en esta sección.
Si no concede un nivel de acceso a los portales integrados, estos no estarán disponibles para las organizaciones de Apigee que tengan habilitado VPC-SC.
Para conceder un nivel de acceso a los portales, sigue estos pasos:
- No coloca portales integrados dentro del perímetro.
- Permite acceder a los portales integrados desde fuera del perímetro.
- Permite que los usuarios del portal accedan a los datos de Apigee protegidos por VPC-SC (como los datos de aplicaciones) fuera del perímetro de VPC-SC.
Para obtener más información, consulta Permitir el acceso a recursos protegidos desde fuera de un perímetro.
Requisitos previos
Antes de conceder acceso perimetral a un portal integrado, debes habilitar la API Access Context Manager API
en tu proyecto, si aún no lo has hecho. Puedes hacerlo en la consola de Cloud o mediante el comando gcloud services enable.
Para comprobar si la API está habilitada, examina el resultado del comando gcloud services list, tal como se describe en el paso 2: Habilita las APIs de Apigee.
Además, debes tener la dirección de correo de la cuenta de servicio del proyecto en el que se usa el portal. Para obtenerlo, necesitas el ID y el número del proyecto de GCP. En los siguientes pasos se describe cómo obtener estos valores:
- Para obtener los detalles de un proyecto de GCP, usa el comando gcloud projects list, como se muestra en el siguiente ejemplo:
gcloud projects list
Este comando devuelve el ID del proyecto (en la columna
PROJECT_ID
) y el número del proyecto (en la columnaPROJECT_NUMBER
) de cada proyecto de tu organización de GCP. -
Identifica la dirección de correo de la cuenta de servicio de Apigee. Es la misma cuenta que creó el instalador de Apigee cuando aprovisionaste tu organización en el paso 3: Crear una organización.
Para obtener esta dirección de correo, usa el comando
iam service-accounts list
, que utiliza la siguiente sintaxis:gcloud iam service-accounts list --project GCP_PROJECT_ID
Por ejemplo:
gcloud iam service-accounts list --project my-project DISPLAY NAME EMAIL DISABLED Apigee default service account service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.com False Compute Engine default service account8675309
-compute@developer.gserviceaccount.com FalseLa cuenta de servicio que necesitas es aquella cuya dirección de correo tiene el siguiente formato:
service-GCP_PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com
Por ejemplo:
service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.com -
Para obtener el ID de la política (o del perímetro), usa el comando
access-context-manager policies list
. Pasa el ID de la organización a este comando, como se muestra en el siguiente ejemplo:gcloud access-context-manager policies list --organization=organizations/GCP_ORG_ID
gcloud
responde con una lista de políticas asociadas a la organización especificada. Por ejemplo:gcloud access-context-manager policies list --organization=organizations/
2244340
NAME ORGANIZATION TITLE ETAG04081981
2244340
Default policy
421924c5a97c0Icu8El ID de la política de VPC-SC (también conocido como ID del perímetro) es el ID del perímetro de servicio de VPC-SC que actúa como límite entre tu proyecto y otros servicios. Es el valor de la columna
NAME
.
Pasos para conceder acceso perimetral a portales integrados
Para conceder acceso perimetral a un portal integrado, sigue estos pasos:
- Obtén la dirección de correo de la cuenta de servicio y el ID de la política de VPC-SC, tal como se describe en la sección Requisitos previos.
-
Crea un archivo de condiciones en el equipo del administrador que especifique la dirección de la cuenta de servicio que concederá acceso al portal a través del perímetro.
El archivo puede tener el nombre que quieras, pero debe tener la extensión
*.yaml
. Por ejemplo,my-portal-access-rules.yaml
. -
En el archivo de condiciones, añade una sección
members
que especifique la cuenta de servicio de Apigee, como se muestra en el siguiente ejemplo:- members: - serviceAccount:
service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.comTen en cuenta que basta con añadir una sección
members
; no es necesario que añadas una sección de nivel de acceso. Para obtener más información sobre cómo crear un archivo de condiciones, consulta Limitar el acceso por usuario o cuenta de servicio. - Crea un nivel de acceso con el comando
access-context-manager levels create
. Por ejemplo:gcloud access-context-manager levels create ACCESS_LEVEL_ID \ --title ACCESS_LEVEL_TITLE \ --basic-level-spec PATH/TO/CONDITIONS_FILE.yaml \ --policy=POLICY_ID
Donde:
- ACCESS_LEVEL_ID es un identificador del nuevo nivel de acceso que se va a conceder. Por ejemplo,
my-portal-access-level
. - ACCESS_LEVEL_TITLE es el título del nivel de acceso. Puedes ponerle el título que quieras, pero Google recomienda que le asignes un valor significativo para que tú y otros administradores sepáis a qué se aplica. Por ejemplo, My Portal Access Level.
- CONDITIONS_FILE es la ruta al archivo YAML que has creado en el paso anterior.
- POLICY_ID es el ID de la política o del perímetro.
Por ejemplo:
gcloud access-context-manager levels create
my-portal-access-level
\ --title My Portal Access Level \ --basic-level-spec ~/my-portal-access-rules.yaml
\ --policy=04081981
- ACCESS_LEVEL_ID es un identificador del nuevo nivel de acceso que se va a conceder. Por ejemplo,
- Actualiza el perímetro con el nuevo nivel de acceso mediante el comando
access-context-manager perimeters update
:gcloud access-context-manager perimeters update POLICY_ID \ --add-access-levels=ACCESS_LEVEL_ID \ --policy=POLICY_ID
Por ejemplo:
gcloud access-context-manager perimeters update
04081981
\ --add-access-levels=my-portal-access-level
\ --policy=04081981
Solución de problemas
Comprueba lo siguiente:
- Si la API Access Context Manager no está habilitada en tu proyecto de GCP,
gcloud
te pedirá que la habilites cuando intentes enumerar o definir políticas. - Asegúrate de usar el ID de organización de GCP y no el de Apigee cuando obtengas detalles sobre la organización.
- Algunos comandos descritos en esta sección requieren permisos elevados. Por ejemplo, para obtener detalles sobre las cuentas de servicio de un proyecto, debes ser propietario de ese proyecto.
-
Para verificar que la cuenta de servicio existe, ejecuta el comando
iam service-accounts describe
como se muestra en el siguiente ejemplo:gcloud iam service-accounts describe
service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.comgcloud
responde con información sobre la cuenta de servicio, incluido el nombre visible y el ID del proyecto al que pertenece. Si la cuenta de servicio no existe,gcloud
responde con un errorNOT_FOUND
.
Limitaciones
Las integraciones de Apigee con Controles de Servicio de VPC tienen las siguientes limitaciones:
- Los portales integrados requieren pasos adicionales para configurarse.
- Debes implementar portales de Drupal dentro del perímetro de servicio.