Neste documento, descrevemos como configurar um gateway seguro do Chrome Enterprise Premium para proteger o acesso aos seus aplicativos da Web particulares.
Um gateway seguro do Chrome Enterprise Premium funciona como um proxy de encaminhamento, aplicando uma estrutura de acesso zero trust e oferecendo controle granular e baseado no contexto sobre quem acessa seus aplicativos da Web particulares.
Como funciona a proteção do acesso a aplicativos da Web particulares
Ao estabelecer um túnel seguro e aplicar políticas de acesso sensíveis ao contexto, o gateway seguro mantém os aplicativos privados protegidos da exposição à Internet pública. Uma configuração de navegador do lado do cliente direciona o tráfego desses aplicativos pelo endpoint de proxy de gateway seguro. Em seguida, o gateway seguro aplica a política de acesso relevante e, se permitido, encaminha a solicitação para o aplicativo de destino.
O gateway seguro pode proteger aplicativos da Web particulares hospedados nos seguintes ambientes:
Google Cloud projeto: o gateway seguro pode acessar diretamente aplicativos em execução na sua rede VPC Google Cloud .
NãoGoogle Cloud (data centers locais ou outras nuvens): primeiro, estabeleça uma conexão entre sua rede VPC privada no Google Cloud e a rede nãoGoogle Cloud . Isso é feito usando o Cloud VPN ou o Cloud Interconnect. Em seguida, o gateway seguro usa a conexão para enviar o tráfego à sua rede VPC particular, que o encaminha para o ambiente nãoGoogle Cloud .
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 API a seguir ativada: API BeyondCorp
O seguinte papel do Identity and Access Management (IAM) concedido ao administrador que está configurando tudo: nível do projeto: administrador do Cloud BeyondCorp (
beyondcorp.admin
).Para aplicativos particulares em um ambiente que não seja doGoogle Cloud , uma conexão do Cloud VPN ou do Cloud Interconnect entre o ambiente doGoogle Cloud e o ambiente que não é doGoogle Cloud em que o aplicativo reside. Para mais informações sobre como configurar conexões de rede, consulte os seguintes recursos:
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=MY_PROJECT_ID
Substitua:
- MY_PROJECT_ID: o ID do projeto em que o gateway seguro é criado.
Parâmetros de gateway seguros
SECURITY_GATEWAY_ID=MY_SECURITY_GATEWAY_ID SECURITY_GATEWAY_DISPLAY_NAME="MY_SECURITY_GATEWAY_DISPLAY_NAME"
Substitua:
- MY_SECURITY_GATEWAY_ID: o ID do gateway seguro que você quer criar. O ID pode ter no máximo 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.
- MY_SECURITY_GATEWAY_DISPLAY_NAME: o nome legível do gateway seguro. O nome pode ter até 63 caracteres e incluir caracteres imprimíveis.
Criar um gateway seguro
Um gateway seguro do Chrome Enterprise Premium é um elemento 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 gateway seguro, siga estas etapas.
Crie um arquivo chamado
securityGateway.json
usando o exemplo a seguir.{ "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME", }
Crie um recurso de gateway seguro chamando a API
Create
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @securityGateway.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
Configurar um aplicativo da Web particular
Antes de definir recursos específicos do aplicativo no gateway seguro, é necessário configurar as permissões e as configurações de rede necessárias para ativar a conectividade e o roteamento adequado.
Conceda permissões à conta de serviço
Para que o gateway seguro envie tráfego à sua rede VPC, ele precisa de determinadas permissões do IAM concedidas à conta de serviço delegada. Isso permite que o gateway seguro alcance seus aplicativos particulares, hospedados em uma VPC do Google Cloud ou em um ambiente que não é doGoogle Cloud conectado pelo Cloud VPN ou pelo Cloud Interconnect.
Identifique o e-mail da conta de serviço delegada. Esse e-mail está no campo
delegatingServiceAccount
do recurso de gateway de segurança.{ "name": "projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}", "createTime": "2024-10-28T20:46:50.949740776Z", "updateTime": "2024-10-29T18:41:18.520661431Z", "state": "RUNNING", "delegatingServiceAccount": "security-gateway@my-gateway-service-account.iam.gserviceaccount.com" }
Defina variáveis de ambiente para a conta de serviço e o projeto da VPC de destino.
DELEGATING_SERVICE_ACCOUNT="security-gateway@my-gateway-service-account.iam.gserviceaccount.com" # Replace with actual value
Conceda o papel do IAM
roles/beyondcorp.upstreamAccess
à conta de serviço delegada no projeto de VPC particular.gcloud projects add-iam-policy-binding PRIVATE_VPC_PROJECT_ID \ --role=roles/beyondcorp.upstreamAccess \ --member=serviceAccount:${DELEGATING_SERVICE_ACCOUNT}
Substitua PRIVATE_VPC_PROJECT_ID pelo ID do projeto da rede VPC em que o app da Web particular está implantado ou em que a VPN/Interconnect do Cloud está configurada.
Aguarde aproximadamente dois minutos para que a política do Identity and Access Management entre em vigor depois que você conceder o papel.
Configurar regras de firewall e roteamento de rede
Para permitir que o tráfego do gateway seguro alcance seus aplicativos da Web particulares, configure regras de firewall, roteamento de rede e configurações de DNS.
Regras de firewall para aplicativos em Google Cloud
Se o aplicativo da Web particular estiver hospedado na rede VPC Google Cloud , como em uma VM do Compute Engine, um serviço do Google Kubernetes Engine com um IP interno ou atrás de um balanceador de carga TCP/UDP interno, configure as regras de firewall da VPCGoogle Cloud . Isso permite o tráfego TCP de entrada dos intervalos de IP do gateway seguro: 34.158.8.0/21
e 136.124.16.0/20
.
Regras de firewall para aplicativos em ambientes que não sãoGoogle Cloud
Se o aplicativo Web particular estiver em um data center local ou na rede de outro provedor de nuvem e estiver conectado à sua VPC Google Cloudusando o Cloud VPN ou o Cloud Interconnect, configure regras de firewall no firewall local ou nos controles de segurança de rede equivalentes, como grupos de segurança e ACLs de rede, no outro ambiente de nuvem. Isso permite o tráfego TCP de entrada dos intervalos de IP do gateway seguro.
Configurar o roteamento de ambientes que não sãoGoogle Cloud para um gateway seguro
Para comunicação bidirecional ao proteger aplicativos particulares hospedados em
ambientes que não são doGoogle Cloud , como locais ou outras nuvens,
sua rede externa precisa criar um caminho de retorno para os seguintes
endereços IP de gateway seguro: 34.158.8.0/21
e 136.124.16.0/20
.
Verifique se a rede particular pode acessar os intervalos de IP do gateway seguro pelo Cloud VPN ou Cloud Interconnect:
Roteamento dinâmico: se você estiver usando roteamento dinâmico, como o protocolo de gateway de borda (BGP) com o Cloud Router, verifique se o Cloud Router emGoogle Cloud anuncia explicitamente os intervalos de IP do gateway seguro para seu dispositivo BGP local. Embora o BGP troque dinamicamente muitas rotas, os intervalos de IP do gateway seguro exigem divulgação explícita.
Roteamento estático: se você estiver usando rotas estáticas, adicione manualmente rotas para cada um dos intervalos de IP do gateway seguro no seu equipamento de rede local, como roteador ou firewall. Essas rotas estáticas precisam especificar que o tráfego destinado aos intervalos de IP do gateway seguro precisa ser enviado pela conexão do Cloud VPN ou do Cloud Interconnect.
Ao usar o roteamento estático, o Cloud VPN precisa estar em uma das seguintes regiões compatíveis:
africa-south1
asia-east1
asia-south1
asia-south2
asia-southeast1
europe-central2
europe-north1
europe-southwest1
europe-west1
europe-west2
europe-west3
europe-west4
europe-west8
europe-west9
northamerica-northeast1
northamerica-northeast2
northamerica-south1
southamerica-east1
southamerica-west1
us-central1
us-east1
us-east4
us-east5
us-west1
Configuração de DNS para resolução de nomes de host particulares do gateway seguro
Para que o gateway seguro resolva os nomes de host do aplicativo particular, sua rede VPCGoogle Cloud precisa resolver os nomes de host usando o Cloud DNS. A configuração específica do Cloud DNS depende de onde seus registros de DNS particulares estão hospedados de forma autoritativa:
Aplicativos em Google Cloud usando zonas particulares do Cloud DNS: se os aplicativos particulares estiverem hospedados em Google Cloud e os registros DNS forem gerenciados em zonas particulares do Cloud DNS associadas à rede VPC, verifique se as zonas estão configuradas e acessíveis corretamente. O gateway seguro usa os recursos de resolução do Cloud DNS da VPC.
Aplicativos em ambientes que não são doGoogle Cloud ou que usam servidores DNS externos: se os aplicativos particulares estiverem em ambientes que não são doGoogle Cloud(locais ou outras nuvens) ou se os registros DNS deles forem gerenciados por servidores DNS externos às zonas particulares do Cloud DNS da VPC, configure o Cloud DNS para encaminhar consultas desses domínios particulares. Normalmente, isso envolve a criação de zonas de encaminhamento do Cloud DNS na VPC. Essas zonas direcionam consultas DNS para os domínios particulares especificados aos servidores DNS particulares autoritativos, como locais ou outras nuvens.
Para instruções detalhadas sobre a configuração de DNS, consulte Criar uma zona de encaminhamento.
Criar um recurso de aplicativo
Para dar acesso a um aplicativo da Web particular, é necessário estabelecê-lo na estrutura de gateway seguro criando um recurso de aplicativo. Esse recurso define como o gateway seguro identifica o tráfego do seu aplicativo (com base no nome do host) e para onde rotear esse tráfego.
Execute o comando a seguir para definir as variáveis de ambiente necessárias:
APPLICATION_ID=MY_APPLICATION_ID APP_DISPLAY_NAME="MY_APP_DISPLAY_NAME"
Substitua:
- MY_APPLICATION_ID: um ID exclusivo para o recurso do aplicativo.
- MY_APP_DISPLAY_NAME: o nome legível a ser mostrado.
Crie um arquivo JSON chamado
application.json
usando o exemplo a seguir.{ "display_name": "MY_APP_DISPLAY_NAME", "endpoint_matchers": [ {"hostname": "MY_HOST_NAME"} ], "upstreams": [{ "network": { "name": "MY_PRIVATE_NETWORK_RESOURCE_NAME" } }] }
Substitua MY_HOST_NAME pelo nome do host principal que os usuários acessam. Por exemplo,
private.local
. 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
Substitua MY_PRIVATE_NETWORK_RESOURCE_NAME pelo nome completo do recurso da rede VPC em que o aplicativo está hospedado ou conectado ao seu ambiente que não éGoogle Cloud . O nome da rede precisa estar no formato
projects/{project}/global/networks/{network}
Opcional: especifique uma região de saída.
Em algumas configurações de rede, talvez seja necessário controlar a Google Cloud região em que o tráfego do gateway seguro sai para seu aplicativo particular. Por exemplo, isso se aplica se você estiver usando rotas estáticas no Cloud VPN ou no Cloud Interconnect. Para essas configurações, adicione uma política de saída à configuração upstream do seu aplicativo. Essa política de saída direciona o gateway seguro para rotear o tráfego do aplicativo da região Google Cloud especificada para sua rede particular.
Confira a seguir um exemplo de arquivo JSON que inclui um
egress_policy
.{ "display_name": "MY_APP_DISPLAY_NAME", "endpoint_matchers": [ {"hostname": "MY_HOST_NAME"} ], "upstreams": [{ "network": { "name": "MY_PRIVATE_NETWORK_RESOURCE_NAME" }, "egress_policy": { "regions": [ "us-central1" ] } }] }
Substitua
us-central1
pela Google Cloud região (comoeurope-west1
ouasia-northeast1
) que se alinha à sua configuração de roteamento estático regional. Se você não tiver requisitos específicos de roteamento estático regional, poderá omitir a política de saída da sua configuração.Crie o recurso do aplicativo chamando a API
Create
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @application.json \ "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
Para rotear o tráfego do recurso de aplicativo pelo gateway seguro, configure o Chrome aplicando um arquivo PAC nas configurações do navegador no Google Admin Console.
Crie ou atualize um arquivo PAC.
Se você estiver criando seu primeiro aplicativo, crie um arquivo
pac_config.js
usando o exemplo de arquivo PAC a seguir.Se você estiver criando um segundo aplicativo ou um posterior, atualize o arquivo
pac_config.js
atual 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 = ["MY_HOST_NAME"]; for (const site of sites) { if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) { return PROXY; } } return 'DIRECT'; }
Se você estiver usando um arquivo PAC que não é específico de um gateway seguro, mescle os arquivos PAC adicionando os domínios do aplicativo à matriz 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 o papel Usuário de objetos do Storage no bucket.
Para verificar se o arquivo enviado é sempre a versão mais recente, ajuste o comportamento de cache definindo o cabeçalho
Cache-Control
comono-cache
. Essa configuração impede que navegadores e servidores intermediários armazenem uma cópia do arquivo, para que o Chrome sempre faça o download da versão mais recente.Para mais informações sobre
Cache-Control
e 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 uma unidade organizacional ou um grupo e clique em Modo de proxy.
- Na página "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.
Configurar uma política de acesso
É possível aplicar uma política de acesso no nível do gateway seguro ou do aplicativo:
- Recurso de gateway seguro:aplique uma política no nível do gateway seguro para controlar o acesso a todos os aplicativos associados.
- Aplicativo individual:para ter um controle mais granular, aplique uma política de acesso a um aplicativo individual.
Crie um arquivo no formato JSON chamado
setIamPolicy.json
e adicione o seguinte.{ "policy": { object (POLICY) } }
Substitua POLICY por uma política de permissão do IAM. O
etag
na política precisa ser o mesmo que oetag
na política ativa, que pode ser obtido chamando o métodogetIamPolicy
.Para permitir que um grupo específico use o gateway seguro, conceda a ele o papel
roles/beyondcorp.securityGatewayUser
.{ "policy": { "version": 3, "bindings": [ { "role": "roles/beyondcorp.securityGatewayUser", "members": [ "group:
" ] } ], "etag": "AA1jlb" } } Para mais identificadores, como
serviceAccount
,user
,group
,principal
eprincipalSet
, em vinculações de políticas, consulte Principal do IAM.Aplique a política de acesso no gateway seguro especificado no arquivo JSON chamando a API
setIamPolicy
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @setIamPolicy.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}:setIamPolicy"
Para aplicar a política de acesso a um aplicativo, use o seguinte comando:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @setIamPolicy.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_ID}:setIamPolicy"
Também é possível definir políticas de acesso com níveis de acesso como condição, conforme mostrado no exemplo a seguir.
{ "policy": { "version": 3, "bindings": [ { "role": "roles/beyondcorp.securityGatewayUser", "members": [ "group:" ], "condition": { "expression": "'accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels", "title": "Source IP must be in US" } } ], "etag": "A1jlb" } }'
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.
- Acesse o Google Admin Console.
- Clique em Navegador Chrome -> Apps e extensões.
- Clique na guia Usuários e navegadores.
- Para adicionar uma extensão do Chrome, clique no botão +.
- Pesquise
ekajlcmdfcigmdbphhifahdfjbkciflj
e force a instalação para todos os usuários na unidade organizacional ou no grupo. Clique na extensão instalada e acesse o campo Política para extensões e forneça o seguinte valor JSON:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/MY_PROJECT_ID/locations/global/securityGateways/MY_SECURITY_GATEWAY_ID" } } } }
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
.