Restringir o acesso à rede

Por padrão, as instâncias do Event Streams são configuradas para usar a rede pública do IBM Cloud®, portanto, elas são acessíveis por meio da Internet pública. 

Se necessário, você pode usar tipo de rede ou restrições baseadas em contexto para restringir a conectividade de rede da seguinte forma:

Tipo de rede

IBM Cloud oferece rede privada e pública. Se a sua carga de trabalho estiver sendo executada inteiramente dentro do IBM Cloud, e o acesso público ao serviço não for necessário, as instâncias do Event Streams poderão ser configuradas para serem acessíveis somente pela rede privada do IBM Cloud. Isso oferece maior isolamento e não incorre nos encargos de largura da banda de egresso associados ao tráfego público. As instâncias também podem ser configuradas para serem acessíveis por meio das redes públicas e privadas do IBM Cloud, nas quais sua carga de trabalho pode usar a interface mais apropriada para seu local. Você pode encontrar mais informações sobre rede privada em Roteamento virtual e encaminhamento em IBM Cloud.

Restrições baseadas em contexto (CBR)

Você pode definir regras de acesso que limitatem os locais de rede que as conexões são aceitas. Por exemplo, tipo de rede, intervalos de IP, VPC ou outros serviços. Para obter mais informações, consulte Quais são as restrições baseadas em contexto.

Os eventos de auditoria para restrições baseadas em contexto são publicados sob restrições baseadas em contexto IBM Cloud Activity Tracker eventos Eventos de regras de restrições baseadas em contexto. Activity Tracker relacionados à aplicação da CBR estão indisponíveis em terminais privados.

Configurando o tipo de rede

Você pode configurar instâncias de serviço Enterprise para estar disponível nas redes IBM Cloud privadas, públicas ou privadas e públicas. As informações a seguir descrevem como selecionar e atualizar o tipo de rede necessário. O networking público é selecionado por padrão.

Pré-requisitos

Assegure-se de concluir as tarefas a seguir:

  • Crie sua instância de serviço usando o plano Enterprise em um dos locais multizona suportados. Para obter mais informações, consulte Escolhendo o seu plano.

  • Ative Virtual Route Forwarding(VRF) para a sua conta IBM Cloud.

  • Ative a conectividade de terminais de serviço executando o comando a seguir:

    ibmcloud account update --service-endpoint-enable true
    

    Para verificar se os pré-requisitos foram concluídos, execute o seguinte comando e verifique se as duas propriedades a seguir são verdadeiras:

    ibmcloud account show
    
    VRF Enabled:                        true
    Service Endpoint Enabled:           true
    

Seleção de uma configuração de rede durante o fornecimento

Você tem várias opções para selecionar a configuração de rede de seu cluster Enterprise.

  1. Use a rede pública IBM Cloud. Os terminais são acessíveis na internet pública. Este é o padrão.

  2. Use a rede privada IBM Cloud. Os terminais não são visíveis na internet pública.

  3. Use a rede pública e privada IBM Cloud. Os terminais são visíveis tanto na internet pública quanto internamente no interior do IBM Cloud.

Você pode fazer esta seleção no momento da provisão através da página de fornecimento do catálogo Event Streams. Use o menu suspenso Service Endpoints para selecionar Public (padrão), Private ou Public e Private.

Como alternativa, para usar a CLI na provisão de um serviço Event Streams, use os comandos a seguir:

  • Para ativar terminais públicos (o padrão):

    ibmcloud resource service-instance-create <instance-name> messagehub ibm.message.hub.enterprise.3nodes.2tb <region> --service-endpoints public
    
  • Para ativar somente terminais privados:

    ibmcloud resource service-instance-create <instance-name> messagehub ibm.message.hub.enterprise.3nodes.2tb <region> --service-endpoints private
    
  • Para ativar os terminais privados e públicos:

    ibmcloud resource service-instance-create <instance-name> messagehub ibm.message.hub.enterprise.3nodes.2tb <region> --service-endpoints public-and-private
    

Atualização da configuração da rede

Você também pode alternar os endpoints que o cluster Enterprise usa após o provisionamento. Para fazer isso, use os seguintes comandos da CLI:

Para migrar diretamente de público ou privado para terminais públicos e privados:

ibmcloud resource service-instance-update <instance-name> --service-endpoints public-and-private

Para migrar do público-e-privado para os terminais públicos:

ibmcloud resource service-instance-update <instance-name> --service-endpoints public

Para migrar do público-e-privado para terminais privados:

ibmcloud resource service-instance-update <instance-name> --service-endpoints private

Mudar diretamente de terminais públicos para terminais privados ou de terminais privados para terminais públicos é não suportado. O switch desativa todos os terminais públicos e seus aplicativos perdem acesso ao cluster. Para evitar isso, primeiro ative os endpoints públicos e privados, depois reconfigure os aplicativos para usar endpoints privados e, por fim, alterne para endpoints somente privados.

Por exemplo, para migrar de terminais públicos para privados:

Primeiro, habilitar os terminais público e privado:

ibmcloud resource service-instance-update <instance-name> --service-endpoints public-and-private

Em seguida, crie uma nova credencial que contenha endpoints privados e uma nova chave de API, como segue:

ibmcloud resource service-key-create <private-key-name> <role> --instance-name <instance-name> --service-endpoint private

Em seguida, atualize quaisquer aplicativos que usem a instância com a nova chave de serviço e detalhes do terminal.

Por fim, depois que os aplicativos forem migrados para os endpoints privados, execute o seguinte comando para desativar os endpoints públicos:

ibmcloud resource service-instance-update <instance-name> --service-endpoints private

Especificando um allowlist IP (descontinuado)

Este recurso agora é obsoletado, em vez disso, use restrições baseadas em contexto Configurando CBR.

Ao prover uma instância do plano Corporativo, selecionar terminais privados e desejar restringir ainda mais o acesso a VSIs apenas conhecidos com VPCs específicos, você pode adicionar uma permitida IP usando a CLI e anexar da seguinte forma:

ibmcloud resource service-instance-create <instance-name> <plan-name> <region> --service-endpoints private -p '{"private_ip_allowlist":["CIDR1","CIDR2"]}' "

em que CIDR1, CIDR2 são endereços IP do formato a.b.c.d/e. A matriz de CIDRs pode ter qualquer número de elementos..

Alternativamente, para atualizar o IP allowlist para uma instância de serviço existente, complete as seguintes etapas:

  1. Obtenha a lista de permissões de IP original aplicada à instância:

    $ibmcloud es init -i <instance-name>
    API Endpoint:		https://mh-cktmqpdbvkfczhmn.us-south.containers.appdomain.cloud
    Service endpoints:	public-and-private
    Private IP allowlist:	"10.243.0.8/32","10.243.128.8/32","10.243.64.4/32"
    Storage size:		4096 GB
    Throughput:		300 MB/s
    OK
    
  2. Inclua CIDRs ou exclua CIDRs do Private IP allowlist.

  3. Execute o comando a seguir para atualizar a instância de serviço com uma nova lista:

    ibmcloud resource service-instance-update <instance-name> --service-endpoints private -p '{"private_ip_allowlist":["CIDR1","CIDR2"]}'
    

    em que CIDR1, CIDR2 são endereços IP do tipo a.b.c.d/e

Se o terminal privado estiver ativado usando o CLI, na próxima vez que você atualizar o allowlist IP privado, você poderá omitirá-lo --service-endpoints private.

A troca de listas de permissões de IP desativa qualquer endereço IP permitido que não esteja na nova lista. Os aplicativos que acessam o cluster a partir desses endereços perdem o acesso ao cluster.

Recuperando informações do terminal

As informações do terminal para a sua instância de serviço são específicas para o tipo de rede. As instâncias de serviço com rede pública e privada selecionadas possuem um terminal para cada um.

Você pode recuperar as informações do terminal para o tipo de rede necessário usando a opção --service-endpoint do comando CLI service-key-create da seguinte forma:

ibmcloud resource service-key-create <private-key-name> <role> --instance-name <instance-name> --service-endpoint private

Acessando o console do IBM Event Streams

O console continuará acessível se a rede pública estiver disponível para a instância, incluindo tanto a pública quanto a pública e privada.

O console não poderá ser acessado se a rede somente privada for selecionada e a restrição baseada em contexto for configurada devido a limitações técnicas. A CLI é recomendada para realizar qualquer operação administrativa. Por exemplo, ibmcloud es topic-create [--name] TOPIC_NAME [--partitions PARTITIONS] [--config KEY=VALUE[;KEY=VALUE]* ]*

Configurando restrições baseadas em contexto

É possível definir regras que limitaam os locais de rede que as conexões são aceitas. Por exemplo, por tipo de rede, intervalos de IP, VPC, ou de outros serviços. Para obter mais informações, consulte Quais são as restrições baseadas em contexto?

As restrições baseadas em contexto podem ser definidas para instâncias do plano Standard e Enterprise Event Streams. Quando regras de restrições baseadas em contexto são definidas, as regras a seguir se aplicam:

  • Admin REST API, REST Producer API, Schema Registry API e chamadas de clientes Kafka estão sob o escopo de regras de restrições baseadas em contexto que são criadas contra uma instância Event Streams.

  • As funções de Administração para a própria instância de serviço (por exemplo, os comandos IBM Cloud CLI service-instance-create, service-instance-delete ou service-instance-update, ou equivalentes) não estão sob o escopo das regras de restrições baseadas em contexto que são criadas contra uma instância Event Streams.

Gerenciando configurações de restrições baseadas em contexto

A criação de regras de restrições baseadas em contexto é um processo de duas etapas:

  1. Crie uma zona de rede com lista de endereços IP permitidos, permitido VPCs ou referência um serviço. Para obter mais informações, consulte Criando zonas de rede.

  2. Crie regras que especificam uma ou mais zonas de rede contra o recurso Event Streams. Para obter mais informações sobre a criação de regras, consulte Criando regras.

Em seguida, observe as seguintes considerações:

  • Você deve ser o proprietário da conta ou ter uma política de acesso com a função de administrador em todos os serviços de gerenciamento de contas para restringir o acesso.
  • Após criar ou atualizar uma zona ou uma regra, pode levar alguns minutos (até 10 minutos) para que a mudança entre em vigor.
  • Após as restrições baseadas em contexto serem aplicadas, elas são aplicadas apenas para clientes que se autenticam após a regra ter sido criada.. Os clientes existentes devem reautenticar para que as regras de restrição sejam aplicadas.

Suportar conexões entre serviços (serviço-a-serviço) com restrições baseadas em contexto

Se uma instância de serviço Event Streams estiver configurada para usar a criptografia gerenciada pelo cliente, o serviço também deve ser concedido a capacidade de se conectar aos selecionados Serviços de Gerenciamento de Chaves da IBM.

O administrador da conta pode configurar isso da seguinte forma:

  1. Inclua uma referência de serviço para o serviço Event Streams para a zona de rede necessária.
  2. Certifica-se de que o acesso a partir desta zona é permitido por meio das regras de restrições baseadas em contexto aplicáveis a outros serviços de Cloud.

Para obter mais informações sobre a criação de referência de serviço, consulte Referências de serviços.

Coexistência de regras de restrições baseadas em contexto e de IP privado

Regras de restrições baseadas em contexto agora suplantam o uso de permitidos IP privado como a abordagem recomendada para implementação de allowlists contra uma instância Event Streams. O uso de listas de IP privadas continua a ser suportado mas agora é reprovado.

Se ambas as regras de restrições baseadas em contexto e permitidas de IP forem definidas contra a mesma instância Event Streams, o IP allowlist será ignorado porque as regras de restrições baseadas em contexto substituem qualquer permitida anterior de IP privado.

Migrando de permitidos IP privados para restrições baseadas em contexto

O cliente é responsável pela migração. Você pode criar definições de IP allowlist novamente como zonas de rede de restrições baseadas em contexto e aplicá-las na instância de serviço, criando uma regra de restrições baseada em contexto. Em seguida, é possível excluir a permitida IP privada anterior.