Esta página mostra como proteger seus aplicativos SaaS pelo gateway seguro do Chrome Enterprise Premium.
Um gateway seguro do Chrome Enterprise Premium funciona como um proxy de encaminhamento, aplicando um framework de acesso de confiança zero e oferecendo controle granular e baseado no contexto sobre quem acessa seus aplicativos SaaS.
Como funciona a proteção do acesso a aplicativos SaaS
Confira a seguir uma visão geral de como um gateway seguro protege seus aplicativos SaaS:
- As configurações do navegador do lado do cliente roteiam o tráfego do aplicativo por um proxy de gateway seguro.
- O gateway seguro verifica as políticas de acesso baseado no contexto para autorizar o acesso do cliente (usuário e dispositivo).
- Se o acesso do cliente for permitido, o gateway encaminhará o tráfego para o aplicativo usando endereços IP de origem exclusivos atribuídos a esse gateway e à região Google Cloud . Esses endereços IP atribuídos são reservados exclusivamente para o gateway que você cria e não podem ser usados por outros usuários ou gateways. Para controlar o acesso, adicione esses endereços IP de origem dedicados a uma lista de permissões no seu aplicativo SaaS.
Antes de começar
Antes de configurar o gateway seguro, verifique se você tem o seguinte:
- Uma licença do Chrome Enterprise Premium
- Acesso ao Google Admin Console com uma conta de administrador
- Um projeto do Google Cloud com uma conta de faturamento atribuída e a seguinte API ativada: API BeyondCorp
A seguinte função do Identity and Access Management (IAM) concedida ao administrador que está configurando tudo: nível do projeto: administrador do Cloud BeyondCorp (
beyondcorp.admin).Um aplicativo SaaS que você quer proteger. O aplicativo precisa oferecer suporte a
IP allowlistingpara aplicar verificações de segurança pelo Secure Gateway.
Limitações
Um gateway seguro do Chrome Enterprise Premium tem as seguintes limitações:
- Conectividade IPv6: o gateway seguro do Chrome Enterprise Premium não é compatível com aplicativos SaaS que usam conectividade IPv6.
- Provedor de identidade como um aplicativo SaaS: um provedor de identidade não pode ser configurado como um aplicativo SaaS para ser protegido pelo gateway seguro se a autenticação do usuário final com o gateway seguro depender do mesmo IdP.
Configurar o ambiente shell
Para simplificar o processo de configuração e interagir com as APIs do gateway seguro, defina as seguintes variáveis de ambiente no shell de trabalho.
Parameters gerais
API="beyondcorp.googleapis.com" API_VERSION=v1 PROJECT_ID=
PROJECT_IDAPPLICATION_ID=APPLICATION_IDAPPLICATION_DISPLAY_NAME="APPLICATION_DISPLAY_NAME" HOST_NAME=HOST_NAMESubstitua:
PROJECT_ID: o ID do projeto em que o gateway seguro é criado.APPLICATION_ID: o ID do seu aplicativo, comogithub. O nome pode ter até 63 caracteres e conter letras minúsculas, números e hífens. O primeiro caractere precisa ser uma letra, e o último pode ser uma letra ou um número.APPLICATION_DISPLAY_NAME: o nome legível a ser mostrado.HOST_NAME: o nome do host do seu aplicativo. Por exemplo,github.com. O nome do host pode ter até 253 caracteres e precisa seguir um dos seguintes formatos:- Um endereço IPv4 válido
- Um endereço IPv6 válido
- Um nome DNS válido
- Um asterisco (*)
- Um asterisco (*) seguido por um nome DNS válido
Parâmetros de gateway seguro
SECURITY_GATEWAY_ID=
SECURITY_GATEWAY_IDSECURITY_GATEWAY_DISPLAY_NAME="SECURITY_GATEWAY_DISPLAY_NAME"Substitua:
SECURITY_GATEWAY_ID: o ID do gateway seguro. O ID pode ter até 63 caracteres e conter letras minúsculas, números e hífens. O primeiro caractere precisa ser uma letra, e o último pode ser uma letra ou um número.SECURITY_GATEWAY_DISPLAY_NAME: o nome legível do gateway seguro. O nome pode ter até 63 caracteres e só pode conter caracteres imprimíveis.
Criar um gateway seguro
Um gateway seguro do Chrome Enterprise Premium é um bloco de construção fundamental para estabelecer conexões seguras com seus aplicativos. Ele aloca um projeto e uma rede dedicados, oferecendo isolamento e segurança.
Para criar um recurso de gateway seguro, use um dos seguintes métodos.
gcloud
Execute o comando a seguir. Para a flag --hubs, especifique
uma ou mais regiões da lista a seguir.
gcloud beyondcorp security-gateways create ${SECURITY_GATEWAY_ID} \
--project=${PROJECT_ID} \
--location=global \
--display-name="SECURITY_GATEWAY_DISPLAY_NAME" \
--hubs=us-central1
REST
Chame o método da API Create com os detalhes do gateway no corpo da solicitação. Para o objeto hubs, especifique uma ou mais regiões da lista a seguir.
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d '{ "display_name": "SECURITY_GATEWAY_DISPLAY_NAME", "hubs": { "us-central1": {} } }' \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
O hubs representa os recursos regionais necessários para ativar a conectividade
de saída com o aplicativo de destino. É possível ter um hub para cada região, e cada hub fornece dois endereços IP. É possível especificar as seguintes regiões:
africa-south1asia-east1asia-south1asia-south2asia-southeast1europe-central2europe-north1europe-southwest1europe-west1europe-west2europe-west3europe-west4europe-west8europe-west9northamerica-northeast1northamerica-northeast2northamerica-south1southamerica-east1southamerica-west1us-central1us-east1us-east4us-east5us-west1
Configurar um aplicativo SaaS
Depois de criar um gateway seguro, é possível configurar os aplicativos SaaS para usar o gateway seguro para acesso seguro.
Receba os endereços IP alocados pelo gateway seguro para cada hub. Dois endereços IP são alocados para uma região.
gcloud
gcloud beyondcorp security-gateways describe ${SECURITY_GATEWAY_ID} \ --project=${PROJECT_ID} \ --location=global
REST
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}"
Confira a seguir um exemplo de resposta
GETde um gateway seguro comhubs. No exemplo,hubssão criados nas regiõesus-central1eus-east1, e todos os endereços IP retornados na resposta precisam ser permitidos no aplicativo SaaS.gcloud
createTime: 'CREATE_TIME' displayName: My security gateway hubs: us-central1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 us-east1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 name: projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID} state: RUNNING updateTime: 'UPDATE_TIME'
REST
{ "securityGateways": [ { "name": "projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}", "createTime": "CREATE_TIME", "updateTime": "UPDATE_TIME", "displayName": "My security gateway", "state": "RUNNING", "hubs": { "us-central1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } }, "us-east1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } } } } ] }
Adicione os endereços IP à lista de permissões de IP do seu aplicativo SaaS. Por exemplo, para um aplicativo do GitHub, siga este guia: Gerenciar endereços IP permitidos para sua organização.
Criar um recurso de aplicativo
As informações a seguir orientam o processo de configuração de um recurso de aplicativo de gateway seguro.
Crie um recurso de aplicativo de gateway seguro em Google Cloud
O recurso de aplicativo Google Cloud é um sub-recurso do recurso de gateway
seguro. Crie um recurso de aplicativo chamando a API
Create.
gcloud
gcloud beyondcorp security-gateways applications create ${APPLICATION_ID} \ --project=${PROJECT_ID} \ --security-gateway=${SECURITY_GATEWAY_ID} \ --location=global \ --display-name="${APPLICATION_DISPLAY_NAME}" \ --endpoint-matchers="hostname=${HOST_NAME},ports=[443]"
REST
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d "{ \"display_name\": \"${APPLICATION_DISPLAY_NAME}\", \"endpoint_matchers\": [{hostname: \"${HOST_NAME}\", ports: [443]}] }" \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications?application_id=${APPLICATION_ID}"
Configurar o modo de proxy do Google Chrome
É possível rotear o tráfego de aplicativos pelo gateway seguro aplicando um arquivo PAC nas configurações do Chrome no Google Admin Console. Para aplicar o arquivo PAC, faça o seguinte:
Crie ou atualize um arquivo PAC.
Crie seu primeiro aplicativo criando um arquivo
pac_config.jsusando o exemplo de arquivo PAC a seguir.Atualize o arquivo
pac_config.jsatual e adicione os domínios do novo aplicativo à matriz de sites, conforme mostrado no exemplo de arquivo PAC a seguir.
function FindProxyForURL(url, host) { const PROXY = "HTTPS ingress.cloudproxy.app:443"; const sites = ["HOST_NAME"]; for (const site of sites) { if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) { return PROXY; } } return 'DIRECT'; }
Substitua HOST_NAME pelo nome do host do seu aplicativo, por exemplo,
myapp.example.com.Se você estiver usando um arquivo PAC que não é específico para um gateway seguro, mescle os arquivos PAC adicionando os domínios do seu aplicativo à matriz de sites.
Faça upload do arquivo para que ele possa ser baixado publicamente. Por exemplo, é possível fazer upload do arquivo para o Cloud Storage e permitir que ele seja baixado publicamente concedendo a todos os usuários a função Usuário de objetos do Storage no bucket.
Para verificar se o arquivo enviado é a versão mais recente, ajuste o comportamento de armazenamento em cache definindo o cabeçalho
Cache-Controlcomono-cache. Essa configuração impede que navegadores e servidores intermediários armazenem uma cópia do arquivo para que o Chrome baixe a versão mais recente.Para mais informações sobre
Cache-Controle como ele afeta o armazenamento em cache do navegador, consulte Cabeçalho Cache-Control.Copie o URL público do arquivo enviado.
Atualizar as configurações do modo de proxy
- Acesse o Google Admin Console.
- Clique em Dispositivos > Chrome > Configurações.
- Selecione a unidade organizacional ou o grupo e clique em Modo de proxy.
- Em Modo de proxy, selecione Sempre usar a configuração automática de proxy especificada abaixo e insira o URL do arquivo PAC do Cloud Storage.
- Para salvar as configurações do modo de proxy, clique em Salvar.
Configurar uma política de acesso
É possível aplicar uma política de acesso para controlar o acesso no nível do gateway seguro, o que afeta todos os aplicativos associados, ou no nível do aplicativo individual para um controle mais granular.
Atualizar uma política de acesso com segurança
O comando setIamPolicy substitui toda a política atual pela que você
fornecer. Para evitar a remoção acidental de permissões atuais, recomendamos
usar o seguinte padrão "ler-modificar-gravar". Esse padrão ajuda a evitar a remoção acidental de permissões atuais.
Leitura: primeiro, receba a política de acesso atual.
Modificar: edite o arquivo de política localmente para adicionar ou mudar permissões.
Grave: aplique o arquivo de política atualizado.
Ver a política atual
Recupere a política atual antes de fazer qualquer mudança.
O campo etag na política funciona como um identificador de versão. Isso evita
atualizações conflitantes se vários administradores fizerem mudanças simultaneamente.
O comando a seguir recupera a política e a salva em um arquivo chamado
policy.json.
gcloud
gcloud beta beyondcorp security-gateways applications get-iam-policy APPLICATION_ID \ --security-gateway=SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global > policy.json
Substitua:
APPLICATION_ID: o ID do recurso do aplicativoSECURITY_GATEWAY_ID: o ID do gateway de segurançaPROJECT_ID: o ID do projeto em que o gateway de segurança está configurado
REST
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://${API}/${API_VERSION}/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:getIamPolicy" > policy.json
Substitua:
PROJECT_ID: o ID do projeto em que o gateway de segurança está configuradoSECURITY_GATEWAY_ID: o ID do gateway de segurançaAPPLICATION_ID: o ID do recurso do aplicativo
O comando cria um arquivo policy.json que contém a política atual.
Modificar o arquivo de política
Abra o arquivo policy.json em um editor de texto. Para conceder a um grupo acesso ao gateway seguro, adicione o grupo à lista members para a função roles/beyondcorp.securityGatewayUser.
O arquivo policy.json é semelhante ao exemplo a seguir:
{
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
Para adicionar outro grupo, inclua uma nova entrada na matriz members. Inclua uma vírgula após a entrada anterior.
O exemplo a seguir adiciona new-group@example.com:
{
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com",
"group:new-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
Também é possível adicionar outros tipos de membros, como serviceAccount, user, group, principal e principalSet, em vinculações de políticas. Consulte
Principais do IAM para mais informações.
Aplicar a política atualizada
Depois de editar e salvar o arquivo policy.json, aplique-o ao recurso usando
o comando setIamPolicy. Esse comando usa o etag do seu arquivo para
garantir que você atualize a versão correta.
gcloud
gcloud beta beyondcorp security-gateways applications set-iam-policy APPLICATION_ID policy.json \ --security-gateway=SECURITY_GATEWAY_ID \ --project=PROJECT_ID \ --location=global
Substitua:
APPLICATION_ID: o ID do recurso do aplicativoSECURITY_GATEWAY_ID: o ID do gateway de segurançaPROJECT_ID: o ID do projeto em que o gateway de segurança está configurado
REST
jq '{policy: .}' policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://${API}/${API_VERSION}/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:setIamPolicy"
Substitua:
PROJECT_ID: o ID do projeto em que o gateway de segurança está configuradoSECURITY_GATEWAY_ID: o ID do gateway de segurançaAPPLICATION_ID: o ID do recurso do aplicativo
Adicionar uma política de acesso condicional
Também é possível definir políticas de acesso com condições. As condições especificam requisitos, como o endereço IP de um usuário originado de um local específico.
A política de exemplo a seguir concede acesso somente se o endereço IP de origem estiver em um nível de acesso especificado:
{
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:group@example.com"
],
"condition": {
"expression": "request.auth.access_levels.contains('accessPolicies/1234567890/accessLevels/in_us')",
"title": "Source IP must be in US"
}
}
],
"etag": "BwXN8_d-bOM="
}
Para aplicar essa política, siga as etapas descritas anteriormente.
Instalar a extensão do Chrome Enterprise Premium
A extensão do Chrome Enterprise Premium é parte integrante de um gateway seguro e ajuda na autenticação. Instale a extensão para todos os usuários do gateway seguro. Para informações sobre como implantar a extensão, consulte Ver e configurar apps e extensões. Para instalar a extensão do Chrome Enterprise Premium, faça o seguinte:
- Acesse o Google Admin Console.
- Clique em Navegador Chrome > Apps e extensões.
- Clique na guia Usuários e navegadores.
- Para adicionar a extensão do Chrome, clique no botão +.
Pesquise a seguinte extensão e exija que ela seja instalada para todos os usuários na unidade organizacional ou no grupo:
ekajlcmdfcigmdbphhifahdfjbkciflj
Clique na extensão instalada e, no campo Política para extensões, insira o seguinte valor JSON:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" } } } }
Substitua:
PROJECT_ID: o ID do projeto em que o gateway de segurança está configuradoSECURITY_GATEWAY_ID: o ID do gateway de segurança
Para salvar a configuração, clique em Salvar.
Experiência do usuário final
Quando a configuração é concluída, os usuários finais que acessam o aplicativo SaaS protegido recebem ou têm o acesso negado com base na política de acesso aplicada ao aplicativo.
Como acessar o aplicativo no Chrome
A extensão do Chrome Enterprise Premium é necessária para direcionar o tráfego pelo gateway seguro. A extensão processa a autenticação entre o usuário e o gateway seguro. A extensão é instalada automaticamente pela política do domínio.
Quando os usuários acessam o aplicativo SaaS configurado, o tráfego deles passa pelo gateway seguro, que verifica se eles atendem à política de acesso. Se os usuários passarem nas verificações da política de acesso, eles vão receber acesso ao aplicativo.
Quando o acesso do navegador ao aplicativo é rejeitado pela política de autorização, os usuários recebem uma mensagem Access denied.