Este documento fornece uma visão geral de alto nível do conector de cliente do BeyondCorp Enterprise e descreve como ativá-lo.
Visão geral
O BeyondCorp Enterprise é a solução de confiança zero do Google que oferece acesso seguro a aplicativos particulares com proteção integrada contra dados e ameaças. O BeyondCorp Enterprise usa o Chrome para oferecer acesso seguro a todos os aplicativos baseados na Web (HTTPS).
O conector do cliente BeyondCorp Enterprise estende o suporte aos aplicativos não Web, criando uma conexão segura para aplicativos executados em ambientes do Google Cloud e de terceiros com acesso completo de contexto e identidade.
Como funciona
Veja a seguir os principais componentes do conector do cliente:
Verificação de endpoints e user agent: o conector cliente é integrado à verificação de endpoints, uma extensão do Chrome com um agente leve nativo que é executado em laptops ou computadores de usuários e relata informações do dispositivo. A verificação de endpoints também funciona como o plano de controle para o usuário final iniciar e interromper conexões com gateways de clientes.
Gateways do cliente: componentes regionais do lado do servidor aos quais os clientes podem se conectar. Os gateways do cliente são implantados por administradores. Os gateways se comunicam com o sistema de aplicação do BeyondCorp Enterprise para aplicar verificações contextuais. O sistema de aplicação do BeyondCorp Enterprise usa o Identity-Aware Proxy e o Access Context Manager, um mecanismo flexível de política de confiança zero do BeyondCorp Enterprise.
O tráfego para aplicativos protegidos de dispositivos de usuário final (cliente) é enviado por meio de um canal seguro pelo gateway. É possível se conectar a aplicativos da Web e que não são da Web em execução no Google Cloud ou fora dele. Use o Cloud VPN ou o Cloud Interconnect para se conectar aos aplicativos que não estão no Google Cloud.
Antes de começar
Antes de começar a ativar o conector de cliente do BeyondCorp Enterprise, verifique se você tem o seguinte:
Um domínio da organização do Google Cloud.
Um projeto do Google Cloud com faturamento atribuído.
Contas de usuário do Cloud Identity do Google Workspace. Se você precisar criar contas do Cloud Identity, consulte Criar contas de usuário do Cloud Identity.
Um recurso que não é da Web que você quer proteger O recurso pode ser nativo do Google Cloud no local ou em outra nuvem pública. É possível criar uma VPC personalizada ou usar sua rede atual com um aplicativo no Google Cloud. Também é possível conectar seu aplicativo que não é do Google Cloud usando o Cloud VPN ou o Cloud Interconnect.
As seguintes APIs estão ativadas:
- APIs do Compute Engine:
compute.googleapis.com
- APIs BeyondCorp Enterprise:
beyondcorp.googleapis.com
- APIs da rede de serviço:
servicenetworking.googleapis.com
- APIs do Access Context Manager:
accesscontextmanager.googleapis.com
- APIs do Compute Engine:
Os papéis do IAM a seguir:
Nível do projeto: administrador de rede do Compute (
roles/compute.networkAdmin
), administrador de conector do cliente BeyondCorp (roles/beyondcorp.clientConnectorAdmin
)Só é possível atribuir o papel Administrador do conector de cliente do BeyondCorp usando a CLI do Google Cloud com o comando
gcloud projects add-iam-policy-binding
.Nível da organização: Administrador do Access Context Manager (
roles/accesscontextmanager.policyAdmin
)
Uma das configurações de hardware recomendadas para o cliente:
- Apple Mac OS 10.11 e posterior, com no mínimo dois núcleos e 2 GB de memória.
- Microsoft Windows 10 e posterior com no mínimo quatro núcleos e 2 GB de memória.
Como ativar o conector de cliente do BeyondCorp Enterprise
Como configurar o Acesso privado a serviços
O conector do cliente usa o acesso particular a serviços para ativar a conectividade entre a rede VPC gerenciada pelo Google e a rede VPC do consumidor. Isso garante que o tráfego dos usuários seja roteado para a rede VPC do consumidor.
O Acesso privado a serviços requer que você reserve um intervalo de endereços IP para que não haja colisões de endereços IP entre sua rede VPC e a rede VPC gerenciada pelo Google. Execute o seguinte comando para alocar um intervalo de IP:
gcloud compute addresses create RESERVED_RANGE \ --network=CONSUMER_NETWORK \ --project=CONSUMER_PROJECT \ --prefix-length=16 \ --purpose=VPC_PEERING \ --global
Substitua:
- RESERVED_RANGE: o nome do intervalo de endereços IP a ser reservado para o peering de VPC. O nome pode conter apenas letras minúsculas, números e hifens.
- CONSUMER_NETWORK: o nome da sua rede VPC conectada ao aplicativo.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
.
Crie a conexão de peering de VPC executando o seguinte comando:
gcloud services vpc-peerings connect \ --network=CONSUMER_NETWORK \ --project=CONSUMER_PROJECT \ --ranges=RESERVED_RANGE \ --service="servicenetworking.googleapis.com"
Substitua:
- CONSUMER_NETWORK: o nome da sua rede VPC conectada ao aplicativo.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
. - RESERVED_RANGE: o nome do intervalo reservado para o peering de VPC.
Para ver detalhes do intervalo de IP alocado, execute o seguinte comando:
gcloud compute addresses describe RESERVED_RANGE \ --global \ --project=CONSUMER_PROJECT
Substitua:
- RESERVED_RANGE: o nome do intervalo reservado para o peering de VPC.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
.
Use os valores
address
eprefixLength
do resultado na etapa anterior para representar o intervalo de IP alocado no formato CIDR e, em seguida, execute o seguinte comando para criar uma regra de firewall:gcloud compute firewall-rules create "allow-peered-ingress" \ --network=CONSUMER_NETWORK \ --project=CONSUMER_PROJECT \ --direction ingress \ --action allow \ --source-ranges={Allocated IP range in CIDR format i.e. address/prefixLength} \ --rules=all
Substitua:
- CONSUMER_NETWORK: o nome da sua rede VPC conectada ao aplicativo.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
.
Para mais informações sobre como configurar regras de firewall, consulte Como usar regras de firewall.
Como configurar os recursos do conector cliente
Há dois tipos de recursos, o serviço do conector cliente e o gateway cliente.
O serviço do conector do cliente é usado para definir uma configuração comum para um grupo de gateways do cliente. Os gateways do cliente se referem ao serviço do conector do cliente. Eles são usados para controlar as regiões em que você quer gerenciar o tráfego dos usuários.
No momento, só é permitido um serviço de conector do cliente por domínio e um gateway de cliente por região e serviço de conector do cliente. Além disso, você
só pode usar as seguintes regiões para hospedar o serviço do conector do cliente e
os recursos de gateway: asia-east1
, europe-west1
, us-east1
e us-central1
.
Crie o serviço do conector cliente executando o seguinte comando:
POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{ingress:{config:{transport_protocol: \"TCP\", destination_routes:[{address:\"DESTINATION_ADDRESS\", netmask:\"DESTINATION_MASK\"}]}},egress:{peered_vpc:{network_vpc:\"projects/CONSUMER_PROJECT/global/networks/CONSUMER_NETWORK\"}}}" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices?client_connector_service_id=CLIENT_CONNECTOR_SERVICE_NAME
Substitua:
- DESTINATION_ADDRESS: o endereço do host da sub-rede de destino que hospeda o aplicativo. Por exemplo, se o aplicativo usar
10.0.0.0/28
, o endereço será10.0.0.0
. - DESTINATION_MASK: a máscara de rede da sub-rede de destino
que hospeda o aplicativo. Por exemplo, se o aplicativo usar
10.0.0.0/28
, a máscara será255.255.255.240
. - CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
. - CONSUMER_NETWORK: o nome da sua rede VPC conectada ao aplicativo.
- SERVICE_LOCATION: a região em que o serviço do conector do cliente será criado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector de cliente.
- DESTINATION_ADDRESS: o endereço do host da sub-rede de destino que hospeda o aplicativo. Por exemplo, se o aplicativo usar
Para verificar se o serviço do conector cliente foi criado, liste as informações do serviço usando o seguinte comando:
GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices
Substitua:
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector cliente está localizado.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
(Opcional) Remova um serviço de conector cliente executando o seguinte comando:
DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME
Substitua:
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector cliente está localizado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector de cliente.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
Crie um ou mais gateways de clientes executando o seguinte comando quantas vezes forem necessárias:
POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{client_connector_service: \"projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME\"}" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways?client_gateway_id=CLIENT_GATEWAY_NAME
Substitua:
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector cliente está localizado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector de cliente.
- GATEWAY_LOCATION: a região em que o gateway do cliente será criado.
- CLIENT_GATEWAY_NAME: o nome do gateway do cliente.
Esta etapa pode levar vários minutos para ser concluída.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
Verifique se os gateways do cliente estão funcionando executando o seguinte comando:
GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways
Substitua:
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
. - GATEWAY_LOCATION: a região em que o gateway do cliente está localizado.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
(Opcional) Remova um gateway de cliente executando o seguinte comando:
DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways/CLIENT_GATEWAY_NAME
Substitua:
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
. - GATEWAY_LOCATION: a região em que o gateway do conector do cliente está localizado.
- CLIENT_GATEWAY_NAME: o nome do gateway do cliente.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
Como configurar políticas de acesso baseado no contexto
Determine os principais ou crie um grupo de usuários. Identifique os usuários que exigem acesso a aplicativos não protegidos da Web. Se preferir, crie um grupo de usuários para simplificar a configuração e o gerenciamento.
(Opcional) Crie um nível de acesso no Access Context Manager para definir uma regra de acordo com o contexto, que pode ser usada para restringir o acesso ao app.
Configure uma política do IAM para o recurso de serviço do conector do cliente e conceda ao principal ou ao grupo de usuários o papel (
roles/beyondcorp.clientConnectorServiceUser
) necessário para acessar os apps que não são da Web. Opcionalmente, é possível especificar uma condição de IAM para provisionar o papel somente quando um nível de acesso for atendido. Para atualizar a política do IAM de um recurso, use o seguinte padrão read-modify-write:Leia a política atual. O método
getIamPolicy()
lê a política atual do IAM para o recurso de serviço do conector do cliente empolicy.json
.GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:getIamPolicy > policy.json
Substitua:
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector cliente está localizado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
Edite a política retornada. Atualize as vinculações em
policy.json
para incluir a nova atribuição de papel do IAM. Você pode fazer isso em um editor de texto ou de maneira programática. Exemplo:{ "policy": { "bindings": [ { "role": "roles/beyondcorp.clientConnectorServiceUser", "members": [ "user:EXAMPLE_USER@EXAMPLE.COM", "group:EXAMPLE_GROUP@EXAMPLE.COM", ], "condition": { "expression": "'accessPolicies/ORGANIZATION_NUMBER/accessLevels/ACCESS_LEVEL_NAME' in request.auth.access_levels", "title": "CONDITION_NAME" } } ] } }
Grave a política atualizada. Use o método
setIamPolicy()
para gravar a política atualizada do IAM. Exemplo:POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @policy.json \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:setIamPolicy
Substitua:
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector cliente está localizado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector de cliente.
- CONSUMER_PROJECT: o ID do seu projeto que hospeda o
Como instalar o agente do conector do cliente em dispositivos de endpoint (Windows ou macOS)
Ative a extensão Verificação de endpoints seguindo as etapas em Configurar a Verificação de endpoints nos seus dispositivos.
Depois que a Verificação de endpoints estiver em execução, a extensão Verificação de endpoints exibirá um botão INICIAR CONEXO para o usuário atualizado. Para acessar o aplicativo não protegido, os usuários podem clicar no botão INICIAR CONEXO.
Quando um usuário inicia uma conexão pela primeira vez, a verificação de endpoints solicita que ele faça o download e instale os binários do conector cliente. Outra opção é fazer o download dos binários do conector cliente nos seguintes URLs:
Depois que uma conexão é estabelecida, um usuário pode acessar o recurso protegido. Os usuários podem escolher encerrar a conexão clicando no botão END CONNECTION.