Restringe el acceso de recursos a dominios específicos

Para mejorar la seguridad general, IAP rechaza de forma predeterminada el acceso a las solicitudes que no tienen una indicación de nombre de servidor (SNI) coincidente. Esto permite que IAP restrinja el redireccionamiento de URL a dominios maliciosos. La función de dominios permitidos de IAP proporciona una capa de seguridad adicional para tus recursos protegidos con IAP. Como propietario de recursos o administrador de IAP, puedes restringir el acceso a los recursos protegidos por IAP a dominios específicos mediante la configuración de la función de dominios permitidos.

También puedes configurar dominios permitidos por IAP en las siguientes situaciones:

  • Tu navegador o un proxy intermedio fuerza la agrupación de conexiones: En este caso, recibes la respuesta HTTP 429 y el código de error 51. Para resolver el problema, un administrador de IAP puede actualizar la lista de dominios permitidos para incluir su nombre de host.
  • El nombre de host proporcionado no coincide con el certificado SSL del servidor: En este caso, recibes el código de error 52. Para resolver el problema, un administrador de IAP puede actualizar la lista de dominios permitidos para incluir su nombre de host.

Configurar dominios permitidos

Puedes usar gcloud o la API para configurar los dominios permitidos. Para configurar los dominios permitidos, usa los siguientes campos:

  • enable: Booleano. Activa o desactiva la función de dominios permitidos.
  • Domains: String. La lista de dominios permitidos. Los dominios pueden contener prefijos comodín, como *.abc.com.. Los nombres de dominio no pueden contener un comodín directamente en un sufijo público ni en un dominio de nivel superior. Ejemplo: *.com, *.co.in.

Para obtener más información, consulta IapSettings.

Para configurar los dominios permitidos por IAP, completa los siguientes pasos:

gcloud

Puedes especificar dominios permitidos en los recursos y servicios a nivel de organización, proyecto y carpeta. A continuación, se muestran algunos comandos de ejemplo para especificar dominios permitidos.

Para obtener más información, consulta gcloud iap settings set.

Ejecuta el siguiente comando:

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

Para configurar dominios permitidos dentro de una organización, ejecuta el siguiente comando:

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

A fin de establecer los dominios permitidos para los recursos dentro de una carpeta, ejecuta el siguiente comando:

gcloud iap settings set SETTING_FILE --folder=FOLDER

Para establecer dominios permitidos para todos los recursos de tipo web dentro de un proyecto, ejecuta el siguiente comando:

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

Para establecer dominios permitidos para todos los servicios de App Engine dentro de un proyecto, ejecute el siguiente comando:

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

En el ejemplo anterior, SETTING_FILE es:

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

Reemplaza lo siguiente:

  • FOLDER: El ID de la carpeta.
  • ORGANIZATION: El ID de la organización.
  • PROJECT: El ID del proyecto
  • RESOURCE_TYPE: El tipo de recurso de IAP. Debe ser app-engine, iap_web, compute, organization o folder.
  • SERVICE: el nombre del servicio Esto es opcional cuando resource-type es compute o app-engine.
  • VERSION: Es el nombre de la versión. Esto no se aplica a compute y es opcional cuando resource-type es app-engine.

API

Para configurar los dominios permitidos, completa los siguientes pasos. Si quieres obtener más información sobre el uso de la API para configurar los dominios permitidos, consulta IapSettings.

  1. Crea un archivo JSON con la configuración de dominios permitidos con máscara de campo. Ejemplo de 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. Ejecuta el siguiente comando para usar la API de UpdateIAPSettings y agregar la configuración de dominio permitida.

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

Para establecer la configuración de dominios permitidos para todos los recursos dentro de una organización, usa la siguiente URL: https://iap.googleapis.com/v1/organization/ORGANIZATION_ID:iapsettings

Para establecer la configuración de los dominios permitidos para todos los recursos dentro de una carpeta, usa la siguiente URL: https://iap.googleapis.com/v1/folder/FOLDER_ID:iapsettings

Para establecer la configuración de dominios permitidos para todos los recursos de tipo web dentro de un proyecto, usa la siguiente URL: https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web:iapsettings

Para establecer la configuración de los dominios permitidos para todos los recursos de App Engine dentro de un proyecto, usa la siguiente URL: https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/appengine-APP_ID:iapsettings

Para establecer la configuración de los dominios permitidos para una versión del servicio de App Engine dentro de un proyecto, usa la siguiente URL: https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/appengine-APP_ID/services/APP_SERVICE_ID/versions/VERSION_ID:iapsettings

Para establecer la configuración de los dominios permitidos para todos los recursos de Compute Engine dentro de un proyecto, usa la siguiente URL: https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/compute:iapsettings

Para establecer la configuración de dominios permitidos para un recurso de Compute Engine dentro de un proyecto, usa la siguiente URL: https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/compute/services/BACKEND_SERVICE_ID:iapsettings

Soluciona problemas

Problema de acceso a dominios permitidos
Si recibe el Código de error 53, solicite a un administrador de IAP que agregue su nombre de host a la lista de dominios permitidos.