Restringir o acesso a recursos para domínios específicos

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Para melhorar a segurança geral, o IAP nega acesso a solicitações que não têm indicação do nome do servidor (SNI, na sigla em inglês) por padrão. Isso permite que o IAP restrinja o redirecionamento de URL a domínios maliciosos. O recurso de domínios permitidos do IAP fornece uma camada adicional de segurança para seus recursos protegidos pelo IAP. Como proprietário ou administrador de recursos do IAP, é possível restringir o acesso a recursos protegidos pelo IAP para domínios específicos configurando o recurso de domínios permitidos.

Também é possível configurar domínios permitidos pelo IAP nos seguintes cenários:

  • Seu navegador ou um proxy intermediário está forçando o pool de conexões: nesse cenário, você recebe a resposta HTTP 429 e o código de erro 51. Para resolver o problema, um administrador de IAP pode atualizar a lista de domínios permitidos e incluir o nome do seu host.
  • O nome do host fornecido não corresponde ao certificado SSL no servidor: nesse cenário, você recebe o código de erro 52. Para resolver o problema, um administrador de IAP pode atualizar a lista de domínios permitidos e incluir o nome do seu host.

Configurar domínios permitidos

É possível usar a gcloud ou a API para definir as configurações de domínios permitidos. Para configurar os domínios permitidos, use os seguintes campos:

  • enable: booleano. Ativa ou desativa o recurso de domínios permitidos.
  • Domains: string. A lista de domínios permitidos. Os domínios podem conter prefixos curinga, como *.abc.com.. Os nomes de domínio não podem conter um caractere curinga diretamente em um sufixo público ou em um domínio de nível superior. Exemplo: *.com, *.co.in.

Para mais informações, consulte IapSettings.

Para configurar os domínios permitidos do IAP, conclua as seguintes etapas:

gcloud

É possível especificar domínios permitidos em recursos e serviços no nível da organização, do projeto e da pasta. Veja a seguir alguns exemplos de comandos para especificar domínios permitidos.

Para ver mais informações, consulte gcloud iap settings set.

Execute este comando:

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

Para definir domínios permitidos em uma organização, execute o seguinte comando:

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

Para definir os domínios permitidos para os recursos em uma pasta, execute o seguinte comando:

gcloud iap settings set SETTING_FILE --folder=FOLDER

Para definir domínios permitidos para todos os recursos de tipo da Web em um projeto, execute o seguinte comando:

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

Para definir domínios permitidos para todos os serviços do App Engine em um projeto, execute o seguinte comando:

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

Onde SETTING_FILE é:

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

Substitua:

  • FOLDER: o ID da pasta.
  • ORGANIZATION: o ID da organização.
  • PROJECT: o ID do projeto.
  • RESOURCE_TYPE: o tipo de recurso do IAP. Precisa ser app-engine, iap_web, compute, organization ou folder.
  • SERVICE: o nome do serviço. Isso é opcional quando resource-type é compute ou app-engine.
  • VERSION: o nome da versão. Isso não se aplica a compute e é opcional quando resource-type é app-engine.

API

Para configurar os domínios permitidos, siga estas etapas. Para mais informações sobre como usar a API para configurar domínios permitidos, consulte IapSettings.

  1. Crie um arquivo JSON com configurações de domínios permitidos com máscara de campo. Exemplo de JSON de 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. Execute o seguinte comando para usar a API UpdateIAPSettings e adicionar configurações de domínios permitidos.

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

Para definir as configurações de domínios permitidos para todos os recursos de uma organização, use o seguinte URL: https://iap.googleapis.com/v1/organization/ORGANIZATION_ID:iapsettings

Para definir as configurações de domínios permitidos para todos os recursos em uma pasta, use o seguinte URL: https://iap.googleapis.com/v1/folder/FOLDER_ID:iapsettings

Para definir as configurações de domínios permitidos para todos os recursos de tipo da Web em um projeto, use o seguinte URL: https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web:iapsettings

Para definir as configurações de domínios permitidos para todos os recursos do App Engine em um projeto, use o seguinte URL: https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/appengine-APP_ID:iapsettings

Para definir as configurações de domínios permitidos em uma versão do serviço do App Engine em um projeto, use o seguinte URL: https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/appengine-APP_ID/services/APP_SERVICE_ID/versions/VERSION_ID:iapsettings

Para definir as configurações de domínios permitidos para todos os recursos do Compute Engine em um projeto, use o seguinte URL: https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/compute:iapsettings

Para definir as configurações de domínios permitidos para um recurso do Compute Engine em um projeto, use o seguinte URL: https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/compute/services/BACKEND_SERVICE_ID:iapsettings

Solução de problemas

Problema de acesso a domínios permitidos
Se você receber o código de erro 53, peça a um administrador do IAP para adicionar seu nome de host à lista de domínios permitidos.