Esta página orienta você no processo de proteção dos 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 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
).Um aplicativo SaaS que você quer proteger. O aplicativo precisa oferecer suporte a
IP allowlisting
para aplicar verificações de segurança pelo Secure Gateway.
Limitações
Um gateway seguro do Chrome Enterprise Premium tem a seguinte limitação: um gateway seguro não é compatível com aplicativos SaaS que permitem apenas conectividade IPv6.
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
APPLICATION_ID=MY_APPLICATION_ID
APPLICATION_DISPLAY_NAME="MY_APPLICATION_DISPLAY_NAME
" HOST_NAME=MY_HOST_NAME
Substitua:
MY_PROJECT_ID
: o ID do projeto em que o gateway seguro é criado.MY_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.MY_APPLICATION_DISPLAY_NAME
: o nome legível a ser mostrado.MY_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 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. 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.MY_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 beta beyondcorp security-gateways create ${SECURITY_GATEWAY_ID} \
--project=${PROJECT_ID} \
--location=global \
--display-name="MY_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": "MY_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-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
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 beta 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
GET
de um gateway seguro comhubs
. No exemplo,hubs
são criados nas regiõesus-central1
eus-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.
Criar 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 beta 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
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 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 que
você siga um padrão "ler-modificar-gravar". Isso garante que você está apenas adicionando à política atual, não substituindo-a.
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
.
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
Depois de executar o comando, um arquivo policy.json
que contém a política atual será criado.
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
da função roles/beyondcorp.securityGatewayUser
.
Seu policy.json
precisa ser semelhante ao exemplo a seguir:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
}
Para adicionar um novo grupo, adicione uma nova entrada à matriz members
. Inclua uma vírgula após a entrada anterior.
O exemplo a seguir adiciona new-group@example.com
:
{
"policy": {
"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.
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"
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.
O exemplo a seguir mostra uma política que concede acesso somente se o endereço IP de origem estiver em um nível de acesso especificado:
{
"policy": {
"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.
- 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
.