Nesta página, você encontra uma visão geral de alto nível do conector de cliente do BeyondCorp Enterprise e descreve como ativá-lo para proteger seus aplicativos de cliente-servidor.
Visão geral
O BeyondCorp Enterprise é a solução de confiança zero do Google Cloud que fornece acesso seguro a aplicativos particulares com proteção integrada de dados e contra ameaças. O BeyondCorp Enterprise usa o Chrome para fornecer acesso seguro a todos os aplicativos baseados na Web (HTTPS).
O conector de cliente do BeyondCorp Enterprise estende o suporte a aplicativos que não são da Web criando uma conexão segura com aplicativos executados em ambientes do Google Cloud e de terceiros, com contexto completo e acesso baseado na identidade.
Como funciona
O diagrama a seguir mostra uma visão geral de alto nível da arquitetura do conector do cliente.
Veja a seguir os principais componentes que fazem parte do conector do cliente:
Verificação de endpoints e agente de clientes: o conector de clientes se integra à verificação de endpoints, uma extensão do Chrome com um agente leve nativo que é executado em laptops ou computadores de usuários e informa as informações do dispositivo. A verificação de endpoints também atua como o plano de controle para o usuário final iniciar e interromper as conexões com os gateways do cliente.
Gateways de cliente: componentes regionais do lado do servidor aos quais os clientes podem se conectar. Os gateways do cliente são implantados pelos administradores. Os gateways se comunicam com o sistema de aplicação do BeyondCorp Enterprise para aplicar verificações baseadas ao contexto. 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 conector do cliente envia tráfego para seus aplicativos protegidos do usuário final, cliente, dispositivos por meio de um canal seguro e um 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 seus aplicativos que não estão no Google Cloud.
Antes de começar
Antes de 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 Google Workspace Cloud Identity. 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 o aplicativo que não é do Google Cloud usando o Cloud VPN ou o Cloud Interconnect.
As APIs a seguir foram ativadas:
- APIs do Compute Engine:
compute.googleapis.com
- APIs da API BeyondCorp Enterprise:
beyondcorp.googleapis.com
- APIs de rede de serviços:
servicenetworking.googleapis.com
- APIs do Access Context Manager:
accesscontextmanager.googleapis.com
- APIs do Compute Engine:
Os seguintes papéis do IAM:
Nível do projeto: Administrador da rede do Compute (
roles/compute.networkAdmin
), Administrador do conector de cliente do BeyondCorp (roles/beyondcorp.clientConnectorAdmin
)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 mais recentes com, no mínimo, dois núcleos e 2 GB de memória.
- Microsoft® Windows® 10 e versões mais recentes com, no mínimo, quatro núcleos e 2 GB de memória.
Ativar o conector do cliente do BeyondCorp Enterprise
Configurar o acesso a serviços particulares
O conector do cliente usa o acesso a serviços particulares para ativar a conectividade entre a rede VPC gerenciada pelo Google e a rede VPC do consumidor. Isso garante que o tráfego de usuários seja roteado para a rede VPC do consumidor.
Console
O acesso a serviços particulares exige que você reserve um intervalo de endereços IP para que não haja colisões de endereços IP entre a rede VPC e a rede VPC gerenciada pelo Google. Conclua as etapas a seguir para alocar um intervalo de IP:
Acesse a página "Redes VPC" no Console do Google Cloud.
Acesse Redes VPCSelecione a rede VPC conectada ao aplicativo.
Selecione a guia Conexão de serviço privado.
Na guia Conexão de serviço privado, selecione Intervalos de IP alocados para serviços.
Clique em Alocar intervalo de IP.
Digite um Nome e uma Descrição para o intervalo de IP para alocar.
Especifique um intervalo de IP para a alocação:
- Para especificar um intervalo de endereços IP, selecione Personalizado e insira um bloco CIDR, como
192.168.0.0/16
. - Para especificar o tamanho de um prefixo e permitir que o Google selecione um intervalo disponível, selecione Automático e insira um tamanho de prefixo, como
16
.
Especifique uma rede com valor mínimo de
/24
.- Para especificar um intervalo de endereços IP, selecione Personalizado e insira um bloco CIDR, como
Clique em Alocar para criar o intervalo alocado.
Crie uma conexão de peering de rede VPC concluindo as seguintes etapas:
- Acesse a página "Redes VPC" no Console do Google Cloud.
Acesse Redes VPC - Selecione a rede VPC conectada ao aplicativo.
- Selecione a guia Conexão de serviço privado.
- Na guia Conexão de serviço privado, selecione a guia Conexões privadas com os serviços.
- Clique em Criar conexão para criar uma conexão particular entre sua rede e o serviço do conector de cliente.
- Na janela aberta, mantenha o padrão para produtor de Serviço conectado. Em Alocação atribuída, selecione o intervalo alocado que você criou na etapa anterior.
- Clique em Conectar para criar a conexão.
- Acesse a página "Redes VPC" no Console do Google Cloud.
Crie uma regra de firewall.
- No Console do Google Cloud, acesse a página Firewall.
Acessar a página "Firewall" - Clique em Criar regra de firewall.
- Digite um Nome para a regra do firewall.
O nome do projeto precisa ser exclusivo. - Opcional: é possível ativar a geração de registros de
regras de firewall:
- Clique em Registros > Ativado.
- Para omitir metadados, expanda Detalhes dos registros e desmarque a opção Incluir metadados.
- Especifique a Rede conectada ao aplicativo.
- Especifique a Prioridade da regra. Quanto menor o número, mais alta a prioridade.
- Em Direção do tráfego, selecione Entrada.
- Em Ação se houver correspondência, selecione Permitir.
- Em Destinos, selecione Todas as instâncias na rede.
- Em Filtro de origem, selecione Intervalos IPv4 e insira os valores
address
eprefixLength
da Etapa 1 para representar o intervalo de IPs alocado no formato CIDR. Use o formato0.0.0.0/0
para qualquer origem IPv4. - Em Protocolos e portas, selecione Permitir todos para que a regra se aplique a todos os protocolos e portas.
- Clique em CRIAR.
- No Console do Google Cloud, acesse a página Firewall.
gcloud
O acesso a serviços particulares exige que você reserve um intervalo de endereços IP para que não haja colisões de endereços IP entre a 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 só pode conter letras minúsculas, números e hifens.
- CONSUMER_NETWORK: o nome da rede VPC conectada ao aplicativo.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
.
Criar a conexão de peering de VPC
gcloud services vpc-peerings connect \ --network=CONSUMER_NETWORK \ --project=CONSUMER_PROJECT \ --ranges=RESERVED_RANGE \ --service="servicenetworking.googleapis.com"
Substitua:
- CONSUMER_NETWORK: o nome da rede VPC conectada ao aplicativo.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - RESERVED_RANGE: o nome do intervalo reservado para peering de VPC.
Veja os detalhes do intervalo de IP alocado.
gcloud compute addresses describe RESERVED_RANGE \ --global \ --project=CONSUMER_PROJECT
Substitua:
- RESERVED_RANGE: o nome do intervalo reservado para peering de VPC.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
.
Use os valores
address
eprefixLength
da saída na etapa anterior para representar o intervalo de IPs alocado no formato CIDR e depois crie 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 rede VPC conectada ao aplicativo.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
.
Veja informações sobre como configurar regras de firewall em Usar regras de firewall da VPC.
Configurar os recursos do conector de cliente
Há dois tipos de recursos que você precisa configurar:
- Serviço do conector do cliente: define uma configuração comum para um grupo de gateways de cliente.
- Gateway do cliente: refere-se ao serviço do conector do cliente e controla as regiões em que você quer gerenciar o tráfego de usuários.
Apenas um serviço de conector de cliente por domínio e um gateway de cliente por região por serviço de conector de cliente é permitido. Além disso, só é possível usar as seguintes regiões para hospedar o serviço de conector do cliente e os recursos do gateway: asia-east1
, europe-west1
, us-east1
e us-central1
.
Criar o serviço do conector de cliente
Console
Acesse a página de administrador do IAP.
Clique em CONECTORES > ATIVAR O CONECTO DE CLIENTE.
Insira a rede VPC que vai receber o tráfego de clientes gerenciados.
Selecione as regiões às quais seus clientes podem se conectar. Os gateways de cliente são criados nesta etapa. Portanto, não é preciso criar os gateways no procedimento Criar, verificar ou remover gateways de cliente.
Insira o intervalo de endereços IP dos aplicativos que você quer que o conector de cliente alcance.
Clique em ATIVAR Conector do cliente. A criação do conector pode levar vários minutos.
gcloud
Execute este comando:
gcloud beta beyondcorp client-connector services create CLIENT_CONNECTOR_SERVICE_NAME \ --project=CONSUMER_PROJECT \ --location=SERVICE_LOCATION \ --config-from-file=/path/to/file/config.json
em que config.json
é:
{ "ingress": { "config": { "transportProtocol": "TCP", "destinationRoutes": [{ "address": "DESTINATION_ADDRESS", "netmask": "DESTINATION_MASK" }] } }, "egress": { "peeredVpc": { "networkVpc": "projects/CONSUMER_PROJECT/global/networks/CONSUMER_NETWORK" } } }
Substitua:
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço de conector do cliente será criado. É possível especificar uma das seguintes regiões compatíveis:
asia-east1
,europe-west1
,us-east1
eus-central1
. - 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_NETWORK: o nome da rede VPC conectada ao aplicativo.
API
Execute este comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @config.json \ https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices?client_connector_service_id=CLIENT_CONNECTOR_SERVICE_NAME
em que config.json
é:
{ "ingress": { "config": { "transportProtocol": "TCP", "destinationRoutes": [{ "address": "DESTINATION_ADDRESS", "netmask": "DESTINATION_MASK" }] } }, "egress": { "peeredVpc": { "networkVpc": "projects/CONSUMER_PROJECT/global/networks/CONSUMER_NETWORK" } } }
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 projeto que hospeda o
CONSUMER_NETWORK
. - CONSUMER_NETWORK: o nome da rede VPC conectada ao aplicativo.
- SERVICE_LOCATION: a região em que o serviço de conector do cliente será criado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
Liste o serviço do conector de clientes para verificar se ele foi criado.
Console
Acesse a página de administrador do IAP.
Clique em CONECTORES. Seu conector precisa estar listado na seção Conector de cliente e ter uma marca de seleção verde para o status.
gcloud
Execute o comando a seguir.
gcloud beta beyondcorp client-connector services list \ --project=CONSUMER_PROJECT \ --location=SERVICE_LOCATION
Substitua:
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço de conector do cliente será criado.
API
Execute este comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices
Substitua:
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector de cliente está localizado.
Opcional: atualizar um serviço de conector de cliente
Console
Para atualizar as rotas de destino, siga estas etapas:
Acesse a página de administrador do IAP.
Clique em CONECTORES.
Na seção Conector de cliente, clique no ícone de lápis ao lado do conector de cliente que você quer atualizar.
Insira os novos endereços do host e máscaras de rede das sub-redes de destino que hospedam os aplicativos. Em seguida, clique em ATUALIZAR Conector do cliente.
gcloud
Atualize as rotas de destino executando o seguinte comando:
gcloud beta beyondcorp client-connector services update CLIENT_CONNECTOR_SERVICE_NAME \ --project=CONSUMER_PROJECT \ --location=SERVICE_LOCATION \ --config-from-file=/path/to/file/config.json
em que config.json
é:
{ "ingress":{ "config":{ "destinationRoutes":[ { "address":"NEW_DESTINATION_ADDRESS1", "netmask":"NEW_DESTINATION_MASK1" }, { "address":"NEW_DESTINATION_ADDRESS2", "netmask":"NEW_DESTINATION_MASK2" } ] } } }
Substitua:
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector de cliente está localizado.
- NEW_DESTINATION_ADDRESS1, NEW_DESTINATION_ADDRESS2: os novos endereços de host das sub-redes de destino que hospedam os aplicativos.
- NEW_DESTINATION_MASK1, NEW_DESTINATION_MASK2: as novas máscaras de rede das sub-redes de destino.
API
Para atualizar as rotas de destino, execute o seguinte comando:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @update.json \ https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME?update_mask=ingress.config.destinationRoutes
Onde update.json
é:
{ "ingress":{ "config":{ "destinationRoutes":[ { "address":"NEW_DESTINATION_ADDRESS1", "netmask":"NEW_DESTINATION_MASK1" }, { "address":"NEW_DESTINATION_ADDRESS2", "netmask":"NEW_DESTINATION_MASK2" } ] } } }
Substitua:
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector de cliente está localizado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
- NEW_DESTINATION_ADDRESS1, NEW_DESTINATION_ADDRESS2: os novos endereços de host das sub-redes de destino que hospedam os aplicativos.
- NEW_DESTINATION_MASK1, NEW_DESTINATION_MASK2: as novas máscaras de rede das sub-redes de destino.
Opcional: remover um serviço de conector de cliente
Console
Acesse a página de administrador do IAP.
Clique em CONECTORES.
Na seção Conector de cliente, clique no ícone de lixeira para remover o serviço e os gateways do conector de cliente. Isso pode levar alguns minutos.
gcloud
Execute o comando a seguir.
gcloud beta beyondcorp client-connector services delete CLIENT_CONNECTOR_SERVICE_NAME \ --project CONSUMER_PROJECT \ --location SERVICE_LOCATION
Substitua:
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector de cliente está localizado.
API
Execute o comando a seguir.
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME
Substitua:
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector de cliente está localizado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
Criar, verificar ou remover gateways de cliente
Console
Se você estiver usando o console para configurar o conector do cliente, os gateways do cliente serão gerados quando você criou o serviço de conector do cliente em uma etapa anterior.
Para verificar se os gateways do cliente estão em execução:
- Acesse a página de administrador do IAP.
- Clique em CONECTORES. O conector e os gateways associados precisam ser listados na seção Conector de clientes e ter uma marca de seleção verde no status.
Opcional: para remover um gateway de cliente, siga estas etapas.
Acesse a página de administrador do IAP.
Clique em CONECTORES.
Na seção Conector de cliente, clique no ícone de lápis ao lado do conector do cliente em que você quer remover um gateway.
Remova uma região do serviço de conector desmarcando a caixa de seleção da região da lista suspensa Regiões de gateway e clicando em ATUALIZAR Conector do cliente.
gcloud
Criar um gateway do cliente
gcloud beta beyondcorp client-connector gateways create CLIENT_GATEWAY_NAME \ --project CONSUMER_PROJECT \ --location GATEWAY_LOCATION \ --client-connector-service \ projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME
Substitua:
- CLIENT_GATEWAY_NAME: o nome do gateway do cliente.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - GATEWAY_LOCATION: a região em que o gateway de cliente será criado.
- SERVICE_LOCATION: a região em que o serviço do conector de cliente está localizado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
Veja se os gateways do cliente estão em execução.
gcloud beta beyondcorp client-connector gateways list \ --project CONSUMER_PROJECT \ --location GATEWAY_LOCATION
Substitua:
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - GATEWAY_LOCATION: a região em que o gateway do cliente está localizado.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
Opcional: remova um gateway do cliente.
gcloud beta beyondcorp client-connector gateways delete CLIENT_GATEWAY_NAME \ --project CONSUMER_PROJECT \ --location GATEWAY_LOCATION
Substitua:
- CLIENT_GATEWAY_NAME: o nome do gateway do cliente.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - GATEWAY_LOCATION: a região em que o gateway do cliente está localizado.
API
Execute o comando a seguir.
curl -X 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/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways?client_gateway_id=CLIENT_GATEWAY_NAME
Substitua:
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector de cliente está localizado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
- GATEWAY_LOCATION: a região em que o gateway de 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 projeto que hospeda o
Veja se os gateways do cliente estão em execução.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways
Substitua:
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - GATEWAY_LOCATION: a região em que o gateway do cliente está localizado.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
Opcional: remova um gateway do cliente.
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways/CLIENT_GATEWAY_NAME
Substitua:
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - GATEWAY_LOCATION: a região em que o gateway do conector de cliente está localizado.
- CLIENT_GATEWAY_NAME: o nome do gateway do cliente.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
Configurar políticas de acesso baseado no contexto
Determine as principais ou crie um grupo de usuários. Identifique os usuários que exigem acesso aos aplicativos protegidos que não são da Web. Como alternativa, você pode criar 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 baseada no contexto, que pode ser usada para restringir o acesso ao aplicativo.
Configure uma política do IAM para o recurso de serviço do conector de cliente e conceda ao principal ou ao grupo de usuários o papel de usuário do serviço de conector do cliente do Cloud BeyondCorp (
roles/beyondcorp.clientConnectorServiceUser
) necessário para acessar os apps que não são da Web. Também é possível especificar uma condição do IAM para provisionar o papel apenas quando um nível de acesso for atendido. Para atualizar a política de IAM de um recurso, você pode usar o console ou a API.No console, siga estas etapas:
- Acesse a página de administrador do IAP.
- Clique em Aplicação.
- Se você ainda não tiver configurado uma tela de permissão OAuth, faça isso para concluir esta etapa. Na seção CONECTAR NOVO APLICATIVO, selecione o conector em Aplicativos que não são da Web.
- Na janela aberta, clique em ADICIONAR PRINCIPAL.
- Conceda ao principal ou ao grupo de usuários o papel
Cloud BeyondCorp Client Connector Service User
(roles/beyondcorp.clientConnectorServiceUser
), necessário para acessar os apps que não são da Web. Também é possível especificar um nível de acesso para provisionar o papel apenas quando ele for atendido. Para especificar um nível de acesso, é necessário ser um administrador da organização ou ter as permissõesview
eedit
para os níveis de acesso da organização. - Clique em SALVAR.
Atualizar uma política do IAM
Console
- Acesse a página de administrador do IAP.
- Clique na guia APPLICATIONs e, na lista Resource, expanda Applications que não são da Web.
- Selecione o conector do cliente. Uma seção com as permissões do IAM associadas ao seu conector é aberta.
- Você pode atualizar as políticas do IAM associadas ao conector do cliente na seção que é aberta.
gcloud
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
.gcloud beta beyondcorp client-connector services get-iam-policy CLIENT_CONNECTOR_SERVICE_NAME \ --project=CONSUMER_PROJECT \ --location=SERVICE_LOCATION > policy.json
Substitua:
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço de conector do cliente está localizado.
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 programaticamente. Exemplo:{ "bindings": [ { "role": "roles/beyondcorp.clientConnectorServiceUser", "members": [ "user:EXAMPLE_USER@EXAMPLE.COM", "group:EXAMPLE_GROUP@EXAMPLE.COM", ], "condition": { "expression": "'accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME' in request.auth.access_levels", "title": "CONDITION_NAME" } } ] }
Substitua:
- POLICY_NAME: o nome numérico da sua política de acesso do Access Context Manager.
- LEVEL_NAME: o nome do seu nível de acesso do Access Context Manager.
- CONDITION_NAME: o texto do título da condição do IAM.
Grave a política atualizada. Use o método
setIamPolicy()
para criar a política atualizada do IAM. Exemplo:gcloud beta beyondcorp client-connector services set-iam-policy CLIENT_CONNECTOR_SERVICE_NAME policy.json \ --project=CONSUMER_PROJECT \ --location=SERVICE_LOCATION
Substitua:
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector de cliente está localizado.
API
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
.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:getIamPolicy > policy.json
Substitua:
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector de cliente está localizado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
- CONSUMER_PROJECT: o ID do 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 programaticamente. Exemplo:{ "policy": { "bindings": [ { "role": "roles/beyondcorp.clientConnectorServiceUser", "members": [ "user:EXAMPLE_USER@EXAMPLE.COM", "group:EXAMPLE_GROUP@EXAMPLE.COM", ], "condition": { "expression": "'accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME' in request.auth.access_levels", "title": "CONDITION_NAME" } } ] } }
Substitua:
- POLICY_NAME: o nome numérico da sua política de acesso do Access Context Manager.
- LEVEL_NAME: o nome do seu nível de acesso do Access Context Manager.
- CONDITION_NAME: o texto do título da condição do IAM.
Grave a política atualizada. Use o método
setIamPolicy()
para criar a política atualizada do IAM. Exemplo:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @policy.json \ https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:setIamPolicy
Substitua:
- CONSUMER_PROJECT: o ID do projeto que hospeda o
CONSUMER_NETWORK
. - SERVICE_LOCATION: a região em que o serviço do conector de cliente está localizado.
- CLIENT_CONNECTOR_SERVICE_NAME: o nome do serviço do conector do cliente.
- CONSUMER_PROJECT: o ID do projeto que hospeda o
Instalar o agente do conector de 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 de verificação de endpoints para o usuário atualizado mostrará um botão INICIAR CONEXÃO. Para acessar o aplicativo protegido que não seja da Web, os usuários podem clicar no botão INICIAR CONEXÃO.
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 do cliente. Outra opção é fazer o download dos binários do conector do cliente nos seguintes URLs:
Depois que uma conexão é estabelecida, um usuário pode acessar o recurso protegido. Os usuários podem optar por encerrar a conexão clicando no botão ENCERRAR CONEXÃO.
Solução de problemas
Se você tiver problemas ao usar o conector do cliente, as informações a seguir fornecerão etapas de solução de problemas que podem ajudar.
Não é possível acessar seu aplicativo
O gateway do conector do cliente está em execução e a conexão foi estabelecida, mas você ainda não consegue acessar seu aplicativo.
Veja a seguir os motivos mais comuns e as possíveis soluções para esse problema:
Você não anunciou o intervalo de IPs alocado no Cloud VPN. Se você usa o Cloud VPN para se conectar ao aplicativo que não é do Google Cloud, anunciar também o intervalo de IPs alocado para o Acesso a serviços particulares ao roteador de peering pelo Border Gateway Protocol (BGP). Para mais informações sobre como fazer isso, consulte Especificar anúncios em um Cloud Router.
Você especificou um endereço e máscara incorretos nos trajetos de destino. Verifique se os bits mascarados são zero ao fornecer o endereço. Por exemplo,
10.0.10.1
é um endereço inválido para fornecer uma máscara de rede255.255.255.0 (/24)
. O endereço correto é10.0.10.0
.Possíveis conflitos de IP entre o intervalo de IPs alocado para o Acesso privado a serviços e as sub-redes IP usadas pela rede que hospeda o aplicativo. Esses intervalos precisam ser mutuamente exclusivos. Esse problema costuma ocorrer quando o aplicativo é hospedado em uma rede que não é do Google Cloud.
Você recebeu a mensagem Unable to connect to the network
Se você receber a mensagem Unable to connect to the network. Check your network
connection and try again.
, a conexão de Internet no dispositivo não está ativa.
Resolução: confira se a sua conexão com a internet está ativa e tente se conectar novamente.
Registros de auditoria
Se você é um administrador, pode ver os registros de auditoria do BeyondCorp Enterprise, inclusive os registros de auditoria do conector de cliente, na página Logging do Console do Google Cloud. Veja mais informações em Registro de auditoria do serviço BeyondCorp Enterprise.
Se você for um usuário final, vai poder acessar os registros de conexão seguindo estas etapas:
- Clique com o botão direito do mouse na extensão Verificação de endpoints no navegador.
- Clique em Opções.
- Selecione a granularidade para o nível de registro. Por padrão, o nível de granularidade é definido como Informações.
- Clique em Mostrar registro.
A seguir
- API BeyondCorp Enterprise
- gcloud Beta additionalcorp
- Como proteger aplicativos que não são do Google Cloud usando o conector de aplicativos