Restreindre l'accès aux ressources pour des domaines spécifiques

Pour améliorer la sécurité globale, IAP refuse par défaut l'accès aux requêtes qui n'ont pas d'indication de nom de serveur (SNI) correspondante. Cela permet à IAP de limiter la redirection des URL aux domaines malveillants. La fonctionnalité "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 restreindre l'accès aux ressources protégées par IAP à des domaines spécifiques en configurant la fonctionnalité de domaines autorisés.

Vous pouvez également configurer des domaines autorisés IAP dans les cas suivants:

  • Votre navigateur ou un proxy intermédiaire force le regroupement de connexions : dans ce scénario, vous recevez une réponse HTTP 429 et un 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 un 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 *.abc.com.. Les noms de domaine ne peuvent pas contenir de caractère générique directement sur un suffixe public ou sur un domaine de premier niveau. Exemple : *.com, *.co.in.

Pour en savoir plus, consultez la section IapSettings.

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

gcloud

Vous pouvez spécifier des domaines autorisés au niveau des ressources et des services au niveau de l'organisation, du projet et du dossier. Voici quelques exemples de commandes pour spécifier des domaines autorisés.

Pour en savoir plus, consultez la page 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

Pour définir les domaines autorisés dans une organisation, exécutez la commande suivante:

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

Pour définir les domaines autorisés pour les ressources d'un dossier, exécutez la commande suivante:

gcloud iap settings set SETTING_FILE --folder=FOLDER

Pour définir des domaines autorisés pour toutes les ressources de type Web d'un projet, exécutez la commande suivante:

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=iap_web

Pour définir des domaines autorisés pour tous les services App Engine d'un projet, exécutez la commande suivante:

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=app-engine --service=SERVICE

SETTING_FILE correspond à :

{
  "access_settings": {
      "allowed_domains_settings": {
          "enable": true,
          "domains": [
              "*.abc.com",
              "*.xyz.co.in"
          ]
      }
  }
}

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 ou folder.
  • SERVICE : le nom du service. Cette propriété est facultative lorsque resource-type est défini sur compute ou app-engine.
  • VERSION: nom de la version. Cela n'est pas applicable pour compute et est facultatif lorsque resource-type est app-engine.

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. Créez un fichier JSON avec des paramètres de domaine autorisés avec un masque de champ. Exemple de code JSON SETTING_FILE:

    {
       "iap_settings":{
          "value":{
             "access_settings":{
                "allowed_domains_settings":{
                   "enable":{
                      "value":"True"
                   },
                   "domains":{
                      "value":[
                         "*.abc.com",
                         "*.xyz.co.in"
                      ]
                   }
                }
             }
          }
       },
       "update_mask":{
          "value":"iap_settings.access_settings.allowed_domains_settings"
       }
    }
    
  2. Exécutez la commande suivante pour utiliser l'API UpdateIAPSettings afin d'ajouter les paramètres des domaines autorisés.

    curl -i -H "Content-Type:application/json" 
    -H "Authentication: Bearer $(gcloud auth print-access-token)" IAP_URL
    -d SETTINGS_FILE.JSON

Pour définir les paramètres de domaine autorisés pour toutes les ressources d'une organisation, utilisez l'URL suivante : https://iap.googleapis.com/v1/organization/ORGANIZATION_ID:iapsettings

Pour définir les paramètres de domaine autorisés pour toutes les ressources d'un dossier, utilisez l'URL suivante : https://iap.googleapis.com/v1/folder/FOLDER_ID:iapsettings

Pour définir les paramètres de domaine autorisés pour toutes les ressources de type Web d'un projet, utilisez l'URL suivante : https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web:iapsettings

Pour définir les paramètres de domaine autorisés pour toutes les ressources App Engine d'un projet, utilisez l'URL suivante : https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/appengine-APP_ID:iapsettings

Pour définir les paramètres de domaine autorisés pour une version du service App Engine au sein d'un projet, utilisez l'URL suivante : https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/appengine-APP_ID/services/APP_SERVICE_ID/versions/VERSION_ID:iapsettings

Pour définir les paramètres des domaines autorisés pour toutes les ressources Compute Engine d'un projet, utilisez l'URL suivante : https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/compute:iapsettings

Pour définir les paramètres des domaines autorisés pour une ressource Compute Engine dans un projet, utilisez l'URL suivante : https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/compute/services/BACKEND_SERVICE_ID:iapsettings

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.