Limiter l'accès aux ressources à des domaines spécifiques

Pour améliorer la sécurité globale, IAP refuse par défaut l'accès aux requêtes qui ne disposent pas d'une indication du nom de serveur (SNI) correspondante. IAP vérifie également la SNI du certificat de l'équilibreur de charge. Cela permet à IAP de limiter la redirection d'URL vers des domaines malveillants. La fonctionnalité des domaines autorisés IAP fournit une couche de sécurité supplémentaire pour vos ressources protégées par IAP. En tant que propriétaire de ressource ou administrateur IAP, vous pouvez limiter l'accès aux ressources protégées par IAP à des domaines spécifiques en configurant la fonctionnalité des domaines autorisés.

Vous pouvez également configurer les domaines autorisés IAP dans les scénarios suivants :

  • Votre navigateur ou un proxy intermédiaire force la mise en pool des connexions : dans ce scénario, vous recevez la réponse HTTP 429 et le code d'erreur 51. Pour résoudre le problème, un administrateur IAP peut mettre à jour la liste des domaines autorisés afin d'y inclure votre nom d'hôte.
  • Le nom d'hôte fourni ne correspond pas au certificat SSL sur le serveur : dans ce scénario, vous recevez le code d'erreur 52. Pour résoudre le problème, un administrateur IAP peut mettre à jour la liste des domaines autorisés afin d'y inclure votre nom d'hôte.

Configurer les domaines autorisés

Vous pouvez utiliser gcloud ou l'API pour configurer les paramètres des domaines autorisés. Pour configurer les domaines autorisés, utilisez les champs suivants :

  • enable: booléen. Active ou désactive la fonctionnalité des domaines autorisés.
  • Domains: chaîne. Liste des domaines autorisés. Les domaines peuvent contenir des préfixes génériques, tels que *.example.com.. Les noms de domaine ne peuvent pas contenir de caractère générique directement sur un suffixe public ou un domaine de premier niveau. Exemple : *.com, *.co.in.

Pour en savoir plus, consultez la section IapSettings.

Pour configurer les domaines autorisés IAP, procédez comme suit :

Console

  1. Accédez à la page IAP.
    Accéder à Identity-Aware Proxy.
  2. Sélectionnez un projet, puis la ressource sur laquelle vous souhaitez activer la fonctionnalité des domaines autorisés.
  3. Ouvrez les paramètres de la ressource. Sous Domaines autorisés, sélectionnez Activer les domaines autorisés.
  4. Spécifiez la liste des domaines autorisés, puis cliquez sur Enregistrer.

gcloud

Voici quelques exemples de commandes permettant de spécifier des domaines autorisés.

Pour en savoir plus, consultez gcloud iap settings set.

Exécutez la commande suivante :

gcloud iap settings set SETTING_FILE --folder=FOLDER --organization=ORGANIZATION --project=PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION

SETTING_FILE correspond à :

accessSettings:
  allowed_domains_settings:
    enable: true
    domains: ["*.example.com", "*.example.net"]

Remplacez les éléments suivants :

  • FOLDER : ID du dossier.
  • ORGANIZATION : ID de l'organisation.
  • PROJECT : ID du projet.
  • RESOURCE_TYPE : type de ressource IAP. Doit être app-engine, iap_web, compute, organization, folder, backend-services, forwarding-rule ou cloud-run.
  • SERVICE : nom du service. Ce paramètre est facultatif lorsque resource-type est compute ou app-engine.
  • VERSION : nom de la version. Ce paramètre n'est pas applicable à compute et est facultatif lorsque resource-type est app-engine.

Vous devez spécifier au moins l'un des indicateurs suivants pour définir le champ d'application des paramètres :

  • --organization=ORGANIZATION
  • --folder=FOLDER
  • --project=PROJECT

API

Pour configurer les domaines autorisés, procédez comme suit. Pour en savoir plus sur l'utilisation de l'API pour configurer les domaines autorisés, consultez IapSettings.

  1. Exécutez la commande suivante pour préparer un fichier iap_settings.json. Modifiez les valeurs si nécessaire.
 {
     "access_settings":{
         "allowed_domains_settings":{
             "enable": true
             "domains": [
                 "*.example.com",
                 "*.exampe.net"
             ]
         }
     }
 }
  1. Obtenez le nom de la ressource en exécutant la commande gcloud iap settings get. Copiez le champ "name" à partir du résultat. Vous aurez besoin du nom à l'étape suivante.
gcloud iap settings get --organization=ORGANIZATION --folder=FOLDER --project=PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
  1. Remplacez RESOURCE_NAME dans la commande suivante par le nom de l'étape précédente. Les IapSettings seront mises à jour.
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d @iap_settings.json \
"https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.allowedDomainsSettings.enable,iapSettings.accessSettings.allowedDomainsSettings.domains"

Dépannage

Problème d'accès aux domaines autorisés
Si vous recevez le code d'erreur 53, demandez à un administrateur IAP d'ajouter votre nom d'hôte à la liste des domaines autorisés.