Configurer des services privés internes uniquement

Cette page présente la configuration requise pour exposer un service d'environnement flexible App Engine uniquement sur son adresse IP interne.

Par défaut, les services de l'environnement flexible reçoivent à la fois une adresse IP interne et une adresse IP externe éphémère lors de leur premier déploiement. L'adresse IP externe éphémère permet à votre service d'envoyer des requêtes aux services App Engine avec des domaines personnalisés et des ressources sur Internet. Les adresses IP externes éphémères entraînent des coûts.

Si votre service ne nécessite pas d'adresse IP externe, vous pouvez l'empêcher d'envoyer des requêtes aux ressources sur Internet et réduire les coûts en limitant votre service à n'utiliser que son adresse IP interne. Cela n'empêche pas votre service de recevoir des requêtes provenant d'Internet ou des services App Engine avec des domaines personnalisés, car le nom de domaine complet de votre service est toujours visible de l'extérieur.

Limites

La désactivation des adresses IP externes éphémères présente les limitations suivantes:

  • Services avec domaines personnalisés: pour envoyer des requêtes aux services App Engine avec des domaines personnalisés, vous devez configurer Cloud NAT.
  • Ressources externes: Pour envoyer des requêtes à des ressources externes, vous devez configurer Cloud NAT.
  • Dépendance de l'accès privé à Google: les instances dont le mode d'adresse IP est défini sur internal nécessitent l'accès privé à Google sur le sous-réseau cible.
  • Anciens réseaux : les anciens réseaux ne peuvent pas utiliser l'accès privé à Google et ne peuvent donc pas désactiver les adresses IP externes éphémères.

Avant de commencer

Pour déployer des applications d'environnement flexible sans adresse IP externe, vous devez activer l'accès privé à Google sur le sous-réseau cible.

Préparer votre réseau VPC partagé

Si vous utilisez un VPC partagé, suivez les étapes ci-dessous pour préparer votre réseau VPC partagé en vue d'une configuration supplémentaire.

  1. Vérifiez que vous disposez d'une route compatible avec l'Accès privé à Google. En règle générale, la route par défaut d'un réseau est compatible avec l'accès privé à Google. Pour les autres routes, vérifiez que la route est configurée comme suit.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Instance tags: INSTANCE_TAGS
    Next hop: DEFAULT_INTERNET_GATEWAY
    

    Remplacez les éléments suivants :

    • SHARED_VPC_NETWORK_NAME: nom de votre réseau VPC partagé.
    • INSTANCE_TAGS: si vous n'utilisez aucun tag d'instance, ne spécifiez rien dans ce champ. Si vous utilisez des tags d'instances, incluez aef-instances dans votre liste de tags d'instances.
    • DEFAULT_INTERNET_GATEWAY : La passerelle Internet par défaut

    Pour en savoir plus sur les routes compatibles avec l'accès privé à Google, consultez la documentation de l'accès privé à Google sur les options de routage.

  2. Vérifiez que vous disposez d'une règle de pare-feu compatible avec l'accès privé à Google. La règle de pare-feu doit être configurée comme suit :

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Destination filter: IP ranges
    Direction of traffic: Egress
    Attach on match: Allow
    Instance tags: INSTANCE_TAGS
    

    Remplacez les éléments suivants :

    • SHARED_VPC_NETWORK_NAME: nom de votre réseau VPC partagé.
    • INSTANCE_TAGS: si vous n'utilisez aucun tag d'instance, ne spécifiez rien dans ce champ. Si vous utilisez des tags d'instances, incluez aef-instances dans votre liste de tags d'instances.

    Pour en savoir plus sur les règles de pare-feu compatibles avec l'accès privé à Google, consultez la documentation de l'accès privé à Google sur la configuration du pare-feu.

Configurer votre service pour n'utiliser que son adresse IP interne

  1. Mettre à jour Google Cloud CLI Cela garantit que vous utilisez une version de la gcloud CLI compatible avec les adresses IP privées pour les applications de l'environnement flexible.

    gcloud components update
  2. Dans votre fichier app.yaml, ajoutez le champ instance_ip_mode à la section network et définissez-le sur internal.

    • Si votre fichier app.yaml contient déjà une section network, ajoutez la ligne suivante dans la section network:

      instance_ip_mode: internal

    • Si votre fichier app.yaml ne possède pas de section network, créez-la et spécifiez le mode IP de l'instance en ajoutant les lignes suivantes:

      network:
       instance_ip_mode: internal

    Enregistrez les modifications.

  3. Déployez le service.

    gcloud beta app deploy
  4. Vérifiez la configuration en consultant la page "Instances" de la console Google Cloud.

    Accéder à la page "Instances"

    Faites défiler la page jusqu'au tableau Instances (sous le graphique Résumé). Dans la colonne Adresse IP de la VM, vérifiez qu'aucune adresse IP n'est répertoriée. L'absence d'adresse IP dans cette colonne signifie que votre instance ne dispose pas d'adresse IP externe. Même si ce champ est vide, votre instance possède toujours une adresse IP interne.

Envoyer des requêtes externes sans adresse IP externe

Si votre service envoie des requêtes à Internet, mais que vous souhaitez qu'il utilise seulement son adresse IP interne, vous pouvez utiliser Cloud NAT pour créer une passerelle. Votre service peut envoyer des requêtes externes via la passerelle Cloud NAT sans utiliser les adresses IP externes éphémères par défaut.

  1. Suivez la procédure décrite dans la section Configurer votre service pour n'utiliser que son adresse IP interne.

  2. Suivez les étapes pour configurer Cloud NAT.

Pour en savoir plus sur cette approche, consultez la documentation de Cloud Architecture Center sur le déploiement de Cloud NAT pour la récupération.