Sécuriser IAP pour le transfert TCP avec VPC Service Controls

Cette page explique comment utiliser VPC Service Controls afin de protéger IAP pour le transfert TCP et comment utiliser IAP pour le transfert TCP dans un périmètre VPC Service Controls.

Avant de commencer

  1. Consultez la présentation de VPC Service Controls.

  2. Configurez l'utilisation d'IAP pour le transfert TCP sans périmètre de service.

  3. Créez un périmètre de service à l'aide de VPC Service Controls. Ce périmètre de service protège les ressources de services gérées par Google que vous spécifiez. Lorsque vous créez le périmètre de service, procédez comme suit :

    1. Ajoutez le projet contenant l'instance Compute Engine à laquelle vous souhaitez vous connecter avec IAP aux projets de votre périmètre de service. Si vous exécutez IAP pour un client TCP sur une instance Compute Engine, placez également le projet contenant cette instance dans le périmètre.

    2. Ajoutez l'API TCP d'Identity-Aware Proxy à la liste des services protégés par votre périmètre de service.

    Si vous avez créé votre périmètre de service sans ajouter les projets et services nécessaires, consultez la section Gérer les périmètres de service pour savoir comment mettre votre périmètre de service à jour.

Configurer les enregistrements DNS à l'aide de Cloud DNS

Si votre IAP pour un client TCP, qui est probablement l'outil de ligne de commande gcloud, ne s'exécute dans aucun périmètre, vous pouvez ignorer cette étape. Par ailleurs, si vous exécutez le client dans un périmètre, vous devez configurer les enregistrements DNS pour l'IAP pour TCP.

L'IAP pour TCP utilise des domaines qui ne sont pas des sous-domaines de googleapis.com. À l'aide de Cloud DNS, ajoutez des enregistrements DNS pour faire en sorte que votre réseau VPC gère correctement les requêtes envoyées à ces domaines. Pour en savoir plus sur les routes VPC, consultez la présentation des routes.

Procédez comme suit pour créer une zone gérée pour un domaine, ajouter des enregistrements DNS pour acheminer les requêtes et exécuter la transaction. Vous pouvez utiliser l'outil gcloud avec le terminal de votre choix ou utiliser Cloud Shell où l'outil gcloud est préinstallé.

  1. Configurez le DNS *.googleapis.com comme d'habitude pour les intégrations de VPC Service Controls.

  2. Recueillez les informations suivantes à utiliser lors de la configuration de vos enregistrements DNS :

    • PROJECT_ID est l'ID du projet qui héberge votre réseau VPC.

    • NETWORK_NAME est le nom du réseau VPC dans lequel vous exécutez votre IAP pour le client TCP.

    • ZONE_NAME est le nom de la zone que vous créez. Exemple : iap-tcp-zone.

  3. Créez une zone gérée privée pour le domaine tunnel.coudproxy.app afin que le réseau VPC puisse la gérer.

    gcloud dns managed-zones create ZONE_NAME \
     --visibility=private \
     --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
     --dns-name=tunnel.cloudproxy.app \
     --description="Description of your managed zone"
    
  4. Lancez une transaction.

    gcloud dns record-sets transaction start --zone=ZONE_NAME
    
  5. Ajoutez l'enregistrement DNS A suivant. Cela permet de rediriger le trafic vers les adresses IP virtuelles restreintes de Google.

    gcloud dns record-sets transaction add \
     --name=tunnel.cloudproxy.app. \
     --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \
     --zone=ZONE_NAME \
     --ttl=300
    
  6. Ajoutez l'enregistrement DNS CNAME suivant pour pointer vers l'enregistrement A que vous venez d'ajouter. Ainsi, tout le trafic correspondant au domaine est redirigé vers les adresses IP mentionnées à l'étape précédente.

    gcloud dns record-sets transaction add \
     --name="*.tunnel.cloudproxy.app." \
     --type=CNAME tunnel.cloudproxy.app. \
     --zone=ZONE_NAME \
     --ttl=300
    
  7. Exécutez la transaction.

    gcloud dns record-sets transaction execute --zone=ZONE_NAME
    

Configurer le DNS avec BIND

Au lieu d'utiliser Cloud DNS, vous pouvez utiliser BIND. Dans ce cas, suivez les instructions permettant de configurer DNS avec BIND, mais utilisez les IAP pour les domaines TCP plutôt que les domaines googleapis.com généraux.

Utiliser l'adresse IP virtuelle privée

Au lieu d'utiliser l'adresse IP virtuelle restreinte, vous pourrez peut-être utiliser l'adresse IP virtuelle privée, selon la configuration du périmètre et du réseau. Si vous préférez procéder ainsi, utilisez

199.36.153.8 199.36.153.9 199.36.153.10 199.36.153.11

à la place du signe

199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7

dans les instructions de configuration de vos enregistrements DNS.

Utiliser un VPC partagé

Si vous utilisez un VPC partagé, vous devez ajouter l'hôte et les projets de service au périmètre de service. Veuillez consultez la section Gestion des périmètres de service.

Étape suivante