Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
Apigee se integra a los Controles del servicio de VPC, que te permiten aislar recursos de tus proyectos de Google Cloud. Esto ayuda a evitar filtraciones o robo de datos.
En esta sección, se describe cómo usar los Controles del servicio de VPC con Apigee.
Descripción general
Los Controles del servicio de VPC definen un perímetro de servicio que actúa como un límite entre un proyecto y otros servicios. Los perímetros de servicio son un método a nivel de organización que protegen a los servicios de Google Cloud en los proyectos a fin de mitigar el riesgo de robo de datos.
Los Controles del servicio de VPC también pueden garantizar que los clientes dentro de un perímetro que tengan acceso privado a los recursos no tengan acceso a recursos no autorizados fuera del perímetro.
Para obtener una descripción detallada de los beneficios de los perímetros de servicio, consulta la Descripción general de los Controles del servicio de VPC.
Ten en cuenta lo siguiente cuando uses los Controles del servicio de VPC:
- Tanto el proyecto de Google Cloud como el entorno de ejecución asociado se incorporan dentro del perímetro de los Controles del servicio de VPC de ese proyecto.
- La interacción entre servicios dentro de un perímetro se puede restringir mediante la característica de servicios accesibles de red de VPC.
Apigee Hybrid y Apigee Hybrid se integran a los Controles del servicio de VPC. Para ver una lista completa de los productos que se integran con los Controles del servicio de VPC, consulta Productos compatibles.
Impacto en la conexión a Internet
Cuando los Controles del servicio de VPC están habilitados, se inhabilita el acceso a Internet: el entorno de ejecución de Apigee ya no se comunicará con ningún destino de Internet público. Para enrutar el tráfico a tu VPC, debes establecer rutas personalizadas. Consulta Importa y exporta rutas personalizadas.
Configura los Controles del servicio de VPC con Apigee
El proceso general para configurar los Controles del servicio de VPC con Apigee es el siguiente:
- Habilitar los controles del servicio de VPC
- Crear un nuevo perímetro de servicio
- Configurar el perímetro de servicio
Estos archivos se describen con más detalle a continuación.
Para configurar los Controles del servicio de VPC con Apigee:
-
Habilita los Controles del servicio de VPC para la conexión de intercambio de tráfico de tu red a Apigee mediante la ejecución del comando siguiente:
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 en el que se aloja la red de VPC compartida. No es el proyecto que se usa para crear la organización de Apigee.
Este comando habilita los Controles del servicio de VPC para tu proyecto. Puedes ejecutar este comando varias veces para habilitar los Controles del servicio de VPC en más de un proyecto.
-
Crea un perímetro nuevo como se describe en la Guía de inicio rápido de los Controles del servicio de VPC. Cuando creas un perímetro, eliges qué proyectos agregar dentro de ese perímetro y qué servicios proteger.
Para Apigee Hybrid y Apigee, Google recomienda que protejas todos los servicios cuando crees un perímetro, incluida la API de Apigee.
Para obtener más información, consulta Crea un perímetro de servicio.
- Configura el perímetro de servicio, como se describe en Detalles y configuración del perímetro de servicio.
Para agregar un portal integrado dentro de tu perímetro, consulta Agrega un portal integrado al perímetro.
Configura los Controles del servicio de VPC con Apigee Hybrid
Apigee Hybrid admite los Controles del servicio de VPC, pero hay pasos adicionales que debes realizar. El proceso general para integrar Apigee Hybrid en los Controles del 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 el único que está dentro del perímetro; no necesita ser 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íbrida.
Cada uno de estos pasos se describe con más detalle en el siguiente procedimiento.
Para configurar los Controles del servicio de VPC con Apigee Hybrid:
- Configura direcciones IP privadas para tus hosts de red híbrida, como se describe en Configura la conectividad privada a las API y a los servicios de Google. Esto implica configurar rutas, reglas de firewall y entradas de DNS para permitir que las API de Google accedan a esas IP privadas.
-
Sigue los pasos de Configura los Controles del servicio de VPC con Apigee.
Durante este proceso, debes asegurarte de proteger los siguientes servicios, además de los especificados para Apigee, en tu perímetro:
- Anthos Service Mesh
- Cloud Monitoring (Stackdriver)
- Google Kubernetes Engine (si ejecutas en GKE)
- Google Container Registry (si lo usas como repositorio local)
Para agregar estos servicios a tu perímetro, sigue las instrucciones de 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 últimos números de la 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 en un repositorio GCR de 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
Si bien no es obligatorio, Google recomienda incluir el ID del proyecto o algún otro valor de identificación en la ruta del repositorio para cada imagen.
-
Envía las imágenes a tu repositorio privado.
En el siguiente ejemplo, se envían las imágenes a un repositorio GCR de 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
Si bien no es obligatorio, Google recomienda incluir el ID del proyecto o algún otro valor de identificación en la ruta del repositorio para cada imagen.
-
-
Actualiza tu archivo de anulaciones para dirigir las URL de imagen a tu repositorio privado, como se describe en Especifica anulaciones de configuración.
Debes cambiar las URL de imagen de los siguientes componentes:
Nombre del componente (en el archivo de anulación) 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 imágenes nuevas en GCR, como se describe en Aplica la configuración al clúster.
Otorga a los portales integrados acceso al perímetro
VPC-SC admite el otorgamiento de niveles de acceso VPC-SC a portales integrados, pero este proceso requiere pasos adicionales, como se describe en esta sección.
Si no otorgas un nivel de acceso a los portales integrados, estos no estarán disponibles para las organizaciones de Apigee compatibles con VPC-SC.
Otorga un nivel de acceso a los portales:
- No coloca los portales integrados dentro del perímetro.
- Permite acceder a portales integrados desde el exterior.
- Permite la exposición de datos de Apigee protegidos de VPC-SC (como los datos de aplicación) a los usuarios del portal fuera del perímetro VPC-SC.
Para obtener más información, consulta Permite el acceso a recursos protegidos desde fuera del perímetro.
Requisitos previos
Antes de otorgar acceso al perímetro a un portal integrado, debes habilitar el Access Context Manager API
para tu proyecto, si aún no está habilitado. Puedes hacerlo en Cloud Console o mediante el comando gcloud services enable.
Para verificar si la API está habilitada, examina el resultado del comando gcloud services list, como se describe en Paso 2: Habilita las API de Apigee.
Además, debes tener la dirección de correo electrónico de la cuenta de servicio en el proyecto en que se usa el portal. Para obtener esto, necesita el ID y el número del proyecto de GCP. En los siguientes pasos, se describe cómo obtener estos valores:
- Obtén los detalles del proyecto de GCP con el comando gcloud projects list, como se muestra en el siguiente ejemplo:
gcloud projects list
Con este comando, se muestra el ID del proyecto (en la columna
PROJECT_ID
) y el número del proyecto (en la columnaPROJECT_NUMBER
) de cada proyecto en tu organización de GCP. -
Identifica la dirección de correo electrónico de la cuenta de servicio de Apigee. Esta es la misma cuenta que el instalador de Apigee creó cuando aprovisionaste tu organización en el Paso 3: Crea una organización.
Para obtener esta dirección de correo electrónico, usa el comando
iam service-accounts list
, que usa 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 deseas es la que tiene una dirección de correo electrónico que coincide con el siguiente formato:
service-GCP_PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com
Por ejemplo:
service-
8675309
@gcp-sa-apigee.iam.gserviceaccount.com -
Obtén el ID de política (o perímetro) con 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 con 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 política de VPC-SC (también conocido como ID de perímetro) es el ID del perímetro de servicio de VPC-SC que actúa como un límite entre tu proyecto y otros servicios). Es el valor de la columna
NAME
.
Pasos para otorgar acceso del perímetro a los portales integrados
Para otorgar acceso del perímetro a un portal integrado, sigue estos pasos:
- Recopila la dirección de correo electrónico de la cuenta de servicio y el ID de política de VPC-SC, como se describe en Requisitos.
-
Crea un archivo de condiciones en tu máquina de administrador que especifique la dirección de la cuenta de servicio que otorgará al portal acceso a través del perímetro.
El archivo puede tener el nombre que desees, pero debe tener la extensión
*.yaml
. Por ejemplo:my-portal-access-rules.yaml
-
En el archivo de condiciones, agrega 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 agregar una sección
members
es suficiente. no es necesario que agregues una sección de nivel de acceso. Si deseas obtener más información para crear un archivo de condiciones, consulta Limita 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 para el nivel de acceso nuevo que se otorga. Por ejemplo,
my-portal-access-level
. - ACCESS_LEVEL_TITLE es un título para el nivel de acceso. El título puede ser el que desees, pero Google recomienda que le asignes un valor significativo para que tú y otros administradores sepan a qué se aplica. Por ejemplo, Nivel de acceso a mi portal.
- CONDITIONS_FILE es la ruta al archivo YAML que creaste en el paso anterior.
- POLICY_ID es el ID de perímetro o política.
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 para el nivel de acceso nuevo que se otorga. Por ejemplo,
- Actualiza el perímetro con el nivel de acceso nuevo 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
Soluciona problemas
Verifica lo siguiente:
- Si la API de Access Context Manager no está habilitada para tu proyecto de GCP,
gcloud
te solicitará que la habilites cuando intentes enumerar o establecer políticas. - Asegúrate de usar el ID de la organización de GCP y no el ID de la organización Apigee cuando obtienes detalles sobre la organización.
- Algunos comandos que se describen 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 exista, 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 comercial 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 los Controles del servicio de VPC tienen las siguientes limitaciones:
- Los portales integrados requieren que se configuren pasos adicionales.
- Debes implementar portales de Drupal dentro del perímetro de servicio.