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

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

Também é possível configurar domínios permitidos do 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 do erro 51. Para resolver o problema, um administrador do IAP pode atualizar a lista de domínios permitidos para incluir seu nome de 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 do IAP pode atualizar a lista de domínios permitidos para incluir seu nome de host.

Configurar domínios permitidos

É possível usar a gcloud ou a API para definir as configurações de domínios permitidos. Para configurar 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 *.example.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, siga estas etapas:

Console

  1. Acesse a página do IAP.
    Acesse o Identity-Aware Proxy.

  2. Selecione um projeto e, em seguida, o recurso em que você quer ativar o recurso de domínios permitidos.

  3. Abra as Configurações do recurso. Em Domínios permitidos, selecione Ativar domínios permitidos.

  4. Especifique a lista de domínios permitidos e clique em Salvar.

gcloud

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

Onde SETTING_FILE é:

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

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, folder, backend-services, forwarding-rule ou cloud-run.

  • 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.

É necessário especificar pelo menos uma das seguintes flags para definir o escopo das configurações:

  • --organization=ORGANIZATION

  • --folder=FOLDER

  • --project=PROJECT

API

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

  1. Execute o comando a seguir para preparar um arquivo iap_settings.json. Atualize os valores conforme necessário.

    {
     "access_settings": {
         "allowed_domains_settings": {
             "enable": true,
             "domains": [
                 "*.example.com",
                 "*.example.net"
             ]
         }
     }
    }
    
  2. Para ver o nome do recurso, execute o comando gcloud iap settings get. Copie o campo de nome da saída. Você vai precisar do nome na próxima etapa.

    gcloud iap settings get --organization=ORGANIZATION --folder=FOLDER --project=PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
    
  3. Substitua RESOURCE_NAME no comando a seguir pelo nome da etapa anterior. O IapSettings será atualizado.

    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"
    

Solução de problemas

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