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 exclusivos atribuídos a essa gateway e Google Cloud região. Estes endereços IP atribuídos estã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 o atributo
IP allowlisting
para aplicar verificações de segurança através do Secure Gateway.
Limitações
Um gateway seguro do Chrome Enterprise Premium tem a seguinte limitação: um gateway seguro não suporta aplicações SaaS que permitem apenas a conetividade IPv6.
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=
MY_PROJECT_ID
APPLICATION_ID=MY_APPLICATION_ID
APPLICATION_DISPLAY_NAME="MY_APPLICATION_DISPLAY_NAME
" HOST_NAME=MY_HOST_NAME
Substitua o seguinte:
MY_PROJECT_ID
: o ID do projeto onde o gateway seguro é criado.MY_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.MY_APPLICATION_DISPLAY_NAME
: o nome legível por humanos a apresentar.MY_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=
MY_SECURITY_GATEWAY_ID
SECURITY_GATEWAY_DISPLAY_NAME="MY_SECURITY_GATEWAY_DISPLAY_NAME
"Substitua o seguinte:
MY_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.MY_SECURITY_GATEWAY_DISPLAY_NAME
: o nome legível 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 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 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": "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 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-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
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 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}"
Segue-se um exemplo de resposta
GET
de um gateway seguro comhubs
. No exemplo, são criadoshubs
nas regiõesus-central1
eus-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 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}"
Configure o modo proxy do Google Chrome
Para encaminhar o tráfego do recurso da aplicação através do gateway seguro, configure o Chrome aplicando um ficheiro PAC nas definições do Chrome na consola do administrador Google.
Crie ou atualize um ficheiro PAC.
Se estiver a criar a sua primeira aplicação, crie um ficheiro
pac_config.js
usando o seguinte exemplo de ficheiro PAC.Se estiver a criar uma segunda ou uma aplicação subsequente, atualize o ficheiro
pac_config.js
existente e adicione os domínios da nova aplicação à matriz de sites, conforme mostrado no exemplo de ficheiro PAC seguinte.
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 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 é sempre a versão mais recente, pode ajustar o comportamento de colocação em cache definindo o cabeçalho
Cache-Control
comono-cache
. Esta definição impede que os navegadores e os servidores intermédios armazenem uma cópia do ficheiro, para que o Chrome transfira sempre a versão mais recente.Para mais informações sobre
Cache-Control
e 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 uma unidade organizacional ou um grupo e, de seguida, clique em Modo de proxy.
- Na página 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.
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
for fornecida. Para evitar a remoção acidental de autorizações existentes, recomendamos que
siga um padrão "ler-modificar-escrever". Isto garante que está apenas a adicionar
à política existente e não a substituir.
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ítica atualizado.
Obtenha a política atual
Obtenha 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
.
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, é criado 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 seu policy.json
deve ser semelhante ao seguinte exemplo:
{
"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 seguinte 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 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.
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"
Adicione uma política de acesso condicional
Também pode definir políticas de acesso com condições. As condições especificam os requisitos, como o endereço IP de um utilizador que tem origem numa localização específica.
O exemplo seguinte mostra uma política que concede acesso apenas se o endereço IP de origem estiver num 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 esta política, siga os passos descritos anteriormente.
Instale a extensão do Chrome Enterprise Premium
A extensão 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 informações sobre a implementação da extensão, consulte o artigo Veja e configure apps e extensões.
- Aceda à consola do administrador Google.
- Clique em Navegador Chrome -> Apps e extensões.
- Clique no separador Utilizadores e navegadores.
- Para adicionar uma extensão do Chrome, clique no botão +.
- Pesquise
ekajlcmdfcigmdbphhifahdfjbkciflj
e, em seguida, force a instalação para todos os utilizadores na unidade organizacional ou no grupo. Clique na extensão instalada e, de seguida, aceda ao campo Política para extensões e indique o seguinte valor JSON:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/MY_PROJECT_ID/locations/global/securityGateways/MY_SECURITY_GATEWAY_ID" } } } }
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 negado 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
.