Utiliser VPC Service Controls avec Apigee et Apigee hybrid

Apigee s'intègre à VPC Service Controls qui vous permet d'isoler les ressources de vos projets Google Cloud. Cela permet d'éviter les fuites ou l'exfiltration de données.

Cette section explique comment utiliser VPC Service Controls avec Apigee.

Présentation

VPC Service Controls définit un périmètre de service qui agit comme une limite entre un projet et d'autres services. Les périmètres de service constituent une méthode appliquée au niveau de l'organisation qui vise à protéger les services Google Cloud au sein de vos projets afin de minimiser le risque d'exfiltration des données.

VPC Service Controls permet également de s'assurer que les clients qui disposent d'un accès privé à certaines ressources dans un périmètre ne peuvent pas accéder à des ressources non autorisées situées en dehors du périmètre.

Pour obtenir des informations détaillées sur les avantages des périmètres de service, consultez la page Présentation de VPC Service Controls.

Lorsque vous utilisez VPC Service Controls, tenez compte des points suivants :

  • Le projet Google Cloud et son environnement d'exécution associé sont tous deux inclus dans le périmètre VPC Service Controls de ce projet.
  • L'interaction entre les services au sein d'un périmètre peut être limitée à l'aide de la fonctionnalité Services accessibles au réseau VPC.

Apigee et Apigee hybrid s'intègrent à VPC Service Controls. Pour obtenir la liste complète des produits qui s'intègrent à VPC Service Controls, consultez la page Produits compatibles.

Configurer VPC Service Controls avec Apigee

Le processus général de configuration de VPC Service Controls avec Apigee se déroule comme suit :

  1. Activez VPC Service Controls.
  2. Créez un périmètre de service.
  3. Configurez le périmètre de service.

Ces fichiers sont décrits plus en détail ci-dessous.

Pour configurer VPC Service Controls avec Apigee, procédez comme suit :

  1. Activez VPC Service Controls sur la connexion d'appairage entre votre réseau et Apigee en exécutant la commande suivante :

    gcloud beta services vpc-peerings enable-vpc-service-controls \
      --network=NETWORK_NAME --project=PROJECT_ID

    Où :

    • NETWORK_NAME est le nom de votre réseau d'appairage VPC.

      Si vous avez utilisé les valeurs par défaut lors de la configuration d'Apigee, le nom du réseau est "DEFAULT". Toutefois, dans les environnements de production, il s'agit du nom de votre réseau d'appairage personnalisé.

    • PROJECT_ID est le nom du projet que vous avez créé lors du processus de configuration d'Apigee.

    Cette commande active VPC Service Controls pour votre projet. Vous pouvez exécuter cette commande plusieurs fois pour activer VPC Service Controls pour plusieurs projets.

  2. Créez un périmètre comme décrit dans le guide de démarrage rapide de VPC Service Controls. Lorsque vous créez un périmètre, vous choisissez les projets à ajouter au sein de ce périmètre, ainsi que les services à sécuriser.

    Pour Apigee et Apigee hybrid, Google vous recommande de sécuriser tous les services lorsque vous créez un périmètre, y compris l'API Apigee et l'API Apigee Connect.

    Pour plus d'informations, consultez la section Créer un périmètre de service.

  3. Configurez le périmètre de service, comme décrit dans la section Détails et configuration du périmètre de service.

Configurer VPC Service Controls avec Apigee hybrid

Apigee hybrid est compatible avec VPC Service Controls, mais vous devez effectuer des étapes supplémentaires. Le processus général d'intégration d'Apigee hybrid à VPC Service Controls est le suivant :

  1. Configurez la connectivité privée
  2. Sécurisez les services supplémentaires au sein du périmètre.
  3. Configurez un dépôt privé. Un dépôt privé est un dépôt qui se trouve dans le périmètre. Il n'est pas nécessairement un dépôt local tant qu'il se trouve dans le périmètre.
  4. Transférez les images Apigee vers votre dépôt privé.
  5. Mettez à jour les remplacements afin d'utiliser le dépôt privé lors du processus d'installation et de configuration hybrides.

Chacune de ces étapes est décrite plus en détail dans la procédure suivante.

Pour configurer VPC Service Controls avec Apigee hybrid :

  1. Configurez des adresses IP privées pour vos hôtes de réseau hybride, comme décrit dans la section Configurer une connectivité privée aux API et services Google. Vous devez configurer les routes, les règles de pare-feu et les entrées DNS pour permettre aux API Google d'accéder à ces adresses IP privées.
  2. Suivez les étapes de la section Configurer VPC Service Controls avec Apigee.

    Au cours de ce processus, vous devez veiller à sécuriser les services suivants dans votre périmètre, en plus de ceux spécifiés pour Apigee :

    • Anthos Service Mesh
    • Cloud Monitoring (Stackdriver)
    • Google Kubernetes Engine (si vous exécutez GKE)
    • Google Container Registry (si vous l'utilisez comme dépôt local)

    Pour ajouter ces services à votre périmètre, suivez les instructions de la section Détails et configuration du périmètre de service.

  3. Copiez les images Apigee dans votre dépôt privé :
    1. Téléchargez les images Apigee signées de Docker Hub comme décrit ici. Veillez à indiquer les derniers numéros de version.

      Exemple :

      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
    2. Ajoutez des tags aux images.

      L'exemple suivant ajoute des tags aux images dans un dépôt GCR basé aux États-Unis :

      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

      Bien que cela ne soit pas obligatoire, Google recommande d'inclure l'ID du projet ou une autre valeur d'identification dans le chemin du dépôt pour chaque image.

    3. Transférez les images vers votre dépôt privé.

      L'exemple suivant envoie les images vers un dépôt GCR basé aux États-Unis :

      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

      Bien que cela ne soit pas obligatoire, Google recommande d'inclure l'ID du projet ou une autre valeur d'identification dans le chemin du dépôt pour chaque image.

  4. Mettez à jour votre fichier de remplacement pour faire pointer les URL d'images vers votre dépôt privé, comme décrit dans la section Spécifier des remplacements de configuration.

    Vous devez modifier les URL d'images pour les composants suivants :

    Nom du composant (dans le fichier de remplacement) URL de l'image
    authz your_private_repo/apigee-authn-authz
    mart your_private_repo/apigee-mart-server
    synchronizer your_private_repo/apigee-synchronizer
    runtime your_private_repo/apigee-runtime
    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-utility
    udca your_private_repo/apigee-udca

    fluentd: your_private_repo/apigee-stackdriver-logging-agent
    logger your_private_repo/apigee-stackdriver-logging-agent
    metrics your_private_repo/apigee-prom-prometheus

    sdSidecar: your_private_repo/apigee-stackdriver-prometheus-sidecar
    connectAgent your_private_repo/apigee-connect-agent
    watcher your_private_repo/apigee-watcher
    ao your_private_repo/apigee-operators
    kubeRBACProxy your_private_repo/apigee-kube-rbac-proxy

  5. Appliquez vos modifications à l'aide des nouvelles images dans GCR, comme décrit dans la section Appliquer la configuration au cluster.

Limites

Les intégrations d'Apigee à VPC Service Controls présentent les limites suivantes :

  • Vous devez utiliser Drupal si vous utilisez des portails. Vous ne pouvez pas utiliser de portails intégrés.
  • Vous devez déployer des portails Drupal dans le périmètre de service.