Esta página explica o processo de proteção das suas aplicações SaaS através do gateway seguro do Chrome Enterprise Premium.
Um gateway seguro do Chrome Enterprise Premium funciona como um proxy de encaminhamento, aplicando uma estrutura de acesso de confiança zero e oferecendo um controlo detalhado e sensível ao contexto sobre quem acede às suas aplicações SaaS.
Como funciona a proteção do acesso a aplicações de SaaS
Segue-se uma vista geral de nível superior de como um gateway seguro protege as suas aplicações SaaS:
- As definições do navegador do lado do cliente encaminham o tráfego da aplicação através de um proxy de gateway seguro.
- O gateway seguro verifica as políticas de acesso sensível ao contexto para autorizar o acesso do cliente (utilizador e dispositivo).
- Se o acesso do cliente for permitido, a gateway encaminha o tráfego para a aplicação através de endereços IP de origem únicos atribuídos a essa gateway e Google Cloud região. Estes endereços IP atribuídos são reservados exclusivamente para o gateway que criar e não podem ser usados por outros utilizadores ou gateways. Para controlar o acesso, pode adicionar estes endereços IP de origem dedicados a uma lista de autorizações na sua aplicação SaaS.
Antes de começar
Antes de configurar o gateway seguro, verifique se tem o seguinte:
- Uma licença do Chrome Enterprise Premium
- Acesso à consola do administrador Google com uma conta de administrador
- Um Google Cloud projeto com uma conta de faturação atribuída e a API ativada: API BeyondCorp
A seguinte função de gestão de identidade e acesso (IAM) concedida ao administrador que configura tudo: Nível do projeto: administrador do BeyondCorp na nuvem (
beyondcorp.admin).Uma aplicação SaaS que quer proteger. A aplicação tem de suportar
IP allowlistingpara aplicar verificações de segurança através do Secure Gateway.
Limitações
Um gateway seguro do Chrome Enterprise Premium tem as seguintes limitações:
- Conetividade IPv6: o gateway seguro do Chrome Enterprise Premium não suporta aplicações SaaS que usam conetividade IPv6.
- Fornecedor de identidade como uma aplicação SaaS: um fornecedor de identidade não pode ser configurado como uma aplicação SaaS para ser protegido pela gateway segura, se a autenticação do utilizador final com a gateway segura depender do mesmo IdP.
Configure o ambiente shell
Para simplificar o processo de configuração e interagir com as APIs de gateway seguro, defina as seguintes variáveis de ambiente na sua shell de trabalho.
Parâmetros gerais
API="beyondcorp.googleapis.com" API_VERSION=v1 PROJECT_ID=
PROJECT_IDAPPLICATION_ID=APPLICATION_IDAPPLICATION_DISPLAY_NAME="APPLICATION_DISPLAY_NAME" HOST_NAME=HOST_NAMESubstitua o seguinte:
PROJECT_ID: o ID do projeto onde o gateway seguro é criado.APPLICATION_ID: o ID da sua aplicação, comogithub. O nome pode ter até 63 carateres e pode conter letras minúsculas, números e hífenes. O primeiro caráter tem de ser uma letra e o último caráter pode ser uma letra ou um número.APPLICATION_DISPLAY_NAME: o nome legível por humanos a apresentar.HOST_NAME: o nome do anfitrião da sua aplicação. Por exemplo,github.com. O nome de anfitrião pode ter até 253 carateres e tem de seguir um dos seguintes formatos:- Um endereço IPv4 válido
- Um endereço IPv6 válido
- Um nome de DNS válido
- Um asterisco (*)
- Um asterisco (*) seguido de um nome DNS válido
Parâmetros do gateway seguro
SECURITY_GATEWAY_ID=
SECURITY_GATEWAY_IDSECURITY_GATEWAY_DISPLAY_NAME="SECURITY_GATEWAY_DISPLAY_NAME"Substitua o seguinte:
SECURITY_GATEWAY_ID: o ID do gateway seguro. O ID pode ter até 63 carateres e pode conter letras minúsculas, números e hífenes. O primeiro caráter deve ser uma letra e o último caráter pode ser uma letra ou um número.SECURITY_GATEWAY_DISPLAY_NAME: O nome legível por humanos do gateway seguro. O nome pode ter até 63 carateres e só pode conter carateres imprimíveis.
Crie um gateway seguro
Um gateway seguro do Chrome Enterprise Premium é uma base fundamental para estabelecer ligações seguras às suas aplicações. Atribui 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 seguinte comando. Para a flag --hubs, especifique
uma ou mais regiões da seguinte lista.
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 da gateway no corpo do pedido. Para o objeto hubs, especifique uma ou mais regiões da seguinte lista.
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 conetividade de saída para a aplicação de destino. Pode ter um hub para cada região e cada hub fornece dois endereços IP. Pode 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
Configure uma aplicação SaaS
Depois de criar um gateway seguro, pode configurar as suas aplicações SaaS para usar o gateway seguro para acesso seguro.
Obtenha os endereços IP atribuídos pelo gateway seguro para cada hub. São atribuídos dois endereços IP a 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}"
Segue-se um exemplo de resposta
GETde um gateway seguro comhubs. No exemplo, são criadoshubsnas regiõesus-central1eus-east1, e todos os endereços IP devolvidos na resposta têm de ser permitidos na aplicação 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 autorizações de IP da sua aplicação SaaS. Por exemplo, para uma aplicação GitHub, pode seguir este guia: Gerir endereços IP permitidos para a sua organização.
Crie um recurso de aplicação
As informações seguintes explicam o processo de configuração e configuração de um recurso de aplicação de gateway seguro.
Crie um recurso de aplicação de gateway seguro em Google Cloud
O recurso de aplicação Google Cloud é um sub-recurso do recurso de gateway seguro. Crie um recurso de aplicação 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}"
Configure o modo proxy do Google Chrome
Pode encaminhar o tráfego de aplicações através do gateway seguro aplicando um ficheiro PAC nas definições do Chrome na consola do administrador Google. Para aplicar o ficheiro PAC, faça o seguinte:
Crie ou atualize um ficheiro PAC.
Crie a sua primeira aplicação criando um ficheiro
pac_config.jscom o seguinte exemplo de ficheiro PAC.Atualize o ficheiro
pac_config.jsexistente e adicione os domínios da sua nova aplicação à matriz de sites, conforme mostrado no seguinte exemplo de ficheiro PAC.
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 anfitrião da sua aplicação, por exemplo,
myapp.example.com.Se estiver a usar um ficheiro PAC existente que não seja específico de um gateway seguro, junte os ficheiros PAC adicionando os domínios da sua aplicação à matriz de sites.
Carregue o ficheiro para que seja transferível publicamente. Por exemplo, pode carregar o ficheiro para o Cloud Storage e tornar o ficheiro publicamente transferível concedendo a todos os utilizadores a função Storage Object User no contentor.
Para verificar se o ficheiro carregado é a versão mais recente, pode ajustar o respetivo comportamento de colocação em cache definindo o cabeçalho
Cache-Controlcomono-cache. Esta definição impede que os navegadores e os servidores intermédios armazenem uma cópia do ficheiro, para que o Chrome transfira a versão mais recente.Para mais informações sobre
Cache-Controle como afeta o armazenamento em cache do navegador, consulte o artigo Cabeçalho Cache-Control.Copie o URL público do ficheiro carregado.
Atualize as definições do modo de proxy
- Aceda à consola do administrador Google.
- Clique em Dispositivos > Chrome > Definições.
- Selecione a unidade organizacional ou o grupo e, de seguida, clique em Modo proxy.
- No Modo de proxy, selecione Usar sempre a configuração automática do proxy indicada abaixo e introduza o URL do ficheiro PAC do Cloud Storage.
- Para guardar as definições do modo de proxy, clique em Guardar.
Configure uma política de acesso
Pode aplicar uma política de acesso para controlar o acesso ao nível do gateway seguro, o que afeta todas as aplicações associadas, ou ao nível da aplicação individual para um controlo mais detalhado.
Atualize uma política de acesso em segurança
O comando setIamPolicy substitui toda a política existente pela que
indicar. Para evitar a remoção acidental de autorizações existentes, recomendamos que use o seguinte padrão "ler-modificar-escrever". Este padrão ajuda a evitar a remoção acidental de autorizações existentes.
Leitura: primeiro, obtenha a política de acesso atual.
Modificar: edite o ficheiro de política localmente para adicionar ou alterar autorizações.
Escrita: aplique o ficheiro de políticas atualizado.
Obtenha a política atual
Recupere a política atual antes de fazer alterações.
O campo etag na política funciona como um identificador de versão. Impede
atualizações em conflito se vários administradores fizerem alterações em simultâneo.
O comando seguinte obtém a política e guarda-a num ficheiro com o nome
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 o seguinte:
APPLICATION_ID: o ID do recurso da aplicaçãoSECURITY_GATEWAY_ID: o ID do gateway de segurançaPROJECT_ID: o ID do projeto onde 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 o seguinte:
PROJECT_ID: o ID do projeto onde o gateway de segurança está configuradoSECURITY_GATEWAY_ID: o ID do gateway de segurançaAPPLICATION_ID: o ID do recurso da aplicação
O comando cria um ficheiro policy.json que contém a política atual.
Modifique o ficheiro de política
Abra o ficheiro policy.json num editor de texto. Para conceder a um grupo acesso à utilização do gateway seguro, adicione o grupo à lista members para a função roles/beyondcorp.securityGatewayUser.
O ficheiro policy.json é semelhante ao seguinte exemplo:
{
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
Para adicionar um grupo adicional, adicione uma nova entrada à matriz members. Inclua uma vírgula após a entrada anterior.
O exemplo seguinte 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 pode adicionar outros tipos de membros, como serviceAccount, user, group,
principal e principalSet, em associações de políticas. Consulte o artigo
Principais do IAM para mais informações.
Aplique a política atualizada
Depois de editar e guardar o ficheiro policy.json, aplique-o ao recurso através do comando setIamPolicy. Este comando usa o etag do seu ficheiro para garantir que atualiza 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 o seguinte:
APPLICATION_ID: o ID do recurso da aplicaçãoSECURITY_GATEWAY_ID: o ID do gateway de segurançaPROJECT_ID: o ID do projeto onde 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 o seguinte:
PROJECT_ID: o ID do projeto onde o gateway de segurança está configuradoSECURITY_GATEWAY_ID: o ID do gateway de segurançaAPPLICATION_ID: o ID do recurso da aplicação
Adicione uma política de acesso condicional
Também pode definir políticas de acesso com condições. As condições especificam requisitos, como o endereço IP de um utilizador originário de uma localização específica.
A política de exemplo seguinte concede acesso apenas se o endereço IP de origem estiver num 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 esta política, siga os passos descritos anteriormente.
Instale 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 utilizadores do gateway seguro. Para ver informações sobre a implementação da extensão, consulte o artigo Veja e configure apps e extensões. Para instalar a extensão do Chrome Enterprise Premium, faça o seguinte:
- Aceda à consola do administrador Google.
- Clique em Navegador Chrome > Apps e extensões.
- Clique no separador Utilizadores e navegadores.
- Para adicionar a extensão do Chrome, clique no botão +.
Pesquise a seguinte extensão e, em seguida, exija que seja instalada para todos os utilizadores na unidade organizacional ou no grupo:
ekajlcmdfcigmdbphhifahdfjbkciflj
Clique na extensão instalada e, no campo Política para extensões, introduza o seguinte valor JSON:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" } } } }
Substitua o seguinte:
PROJECT_ID: o ID do projeto onde o gateway de segurança está configuradoSECURITY_GATEWAY_ID: o ID do gateway de segurança
Para guardar a configuração, clique em Guardar.
Experiência do utilizador final
Quando a configuração estiver concluída, os utilizadores finais que acedem à aplicação SaaS protegida têm o acesso concedido ou recusado com base na política de acesso aplicada à aplicação.
Aceder à aplicação no Chrome
A extensão do Chrome Enterprise Premium é necessária para direcionar o tráfego através do gateway seguro. A extensão processa a autenticação entre o utilizador e o gateway seguro. A extensão é instalada automaticamente através da política de domínio.
Quando os utilizadores acedem à aplicação SaaS que configurou, o respetivo tráfego passa pelo gateway seguro, que verifica se cumprem a política de acesso. Se os utilizadores passarem nas verificações da política de acesso, é-lhes concedido acesso à aplicação.
Quando o acesso do navegador à aplicação é rejeitado pela política de autorização,
os utilizadores recebem uma mensagem Access denied.