Restriction de l'accès au réseau

Par défaut, les instances Event Streams sont configurées pour utiliser le réseau public IBM Cloud® de sorte à être accessibles sur l'Internet public. 

Si nécessaire, vous pouvez utiliser des restrictions basées sur le type de réseau ou le contexte pour restreindre la connectivité du réseau comme suit:

Type de réseau

IBM Cloud offre des réseaux privés et publics. Si votre charge de travail s'exécute entièrement au sein du IBM Cloud, et que l'accès public au service n'est pas nécessaire, les instances Event Streams peuvent à la place être configurées pour être accessibles uniquement sur le IBM Cloud réseau privé. Cela offre un isolement accru et n'entraîne pas les frais de bande passante associés au trafic public. Les instances peuvent également être configurées de sorte à être accessibles sur les réseaux IBM Cloud public et privé, où votre charge de travail peut utiliser l'interface la plus appropriée pour son emplacement. Pour plus d'informations sur la mise en réseau privée, voir Virtual routing and forwarding on IBM Cloud.

Restrictions basées sur le contexte (CBR)

Vous pouvez définir des règles d'accès qui limitent les emplacements réseau à partir duquel les connexions sont acceptées. Par exemple, le type de réseau, les plages d'adresses IP, le VPC ou d'autres services. Pour plus d'informations, voir Que sont les restrictions basées sur le contexte ?.

Les événements d'audit pour les restrictions contextuelles sont publiés sous les restrictions contextuelles IBM Cloud Activity Tracker événements Evénements de règles de restrictions contextuelles. Les événements Activity Tracker liés à l'application CBR sont indisponibles sur les noeuds finaux privés.

Configuration du type de réseau

Vous pouvez configurer des instances de service d'entreprise pour qu'elles soient disponibles sur les réseaux IBM Cloud privé, public ou privé et public. Les informations suivantes décrivent comment sélectionner et mettre à jour le type de réseau requis. La mise en réseau public est sélectionnée par défaut.

Prérequis

Veillez à exécuter les tâches suivantes :

  • Créez votre instance de service à l'aide du plan Enterprise dans l'un des emplacements multi-zone pris en charge. Pour plus d'informations, voir Choisir son plan.

  • Activez Virtual Route Forwarding(VRF) pour votre compte IBM Cloud.

  • Activez la connectivité des noeuds finaux de service en exécutant la commande suivante :

    ibmcloud account update --service-endpoint-enable true
    

    Pour vérifier si les conditions préalables sont remplies, exécutez la commande suivante, puis vérifiez si les deux propriétés suivantes sont vraies :

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

Sélection d'une configuration réseau lors de la mise à disposition

Vous disposez d'un certain nombre d'options pour sélectionner la configuration réseau de votre cluster Enterprise.

  1. Utilisez le réseau public IBM Cloud. Les noeuds finaux sont accessibles sur l'Internet public. Il s'agit de la valeur par défaut.

  2. Utilisez le IBM Cloud réseau privé. Les noeuds finaux ne sont pas visibles sur l'Internet public.

  3. Utilisez le réseau public et privé IBM Cloud. Les noeuds finaux sont visibles sur l'Internet public et en interne dans IBM Cloud.

Vous pouvez effectuer cette sélection lors de la mise à disposition via la page de mise à disposition du catalogue Event Streams. Utilisez le menu déroulant Service Endpoints pour sélectionner Public (par défaut), Privé ou Public et Privé.

Par ailleurs, si vous souhaitez utiliser l'interface de ligne de commande pour mettre à disposition un service Event Streams, utilisez les commandes suivantes :

  • Pour activer les nœuds finaux publics (valeur par défaut) :

    ibmcloud resource service-instance-create <instance-name> messagehub ibm.message.hub.enterprise.3nodes.2tb <region> --service-endpoints public
    
  • Pour activer des noeuds finaux privés uniquement :

    ibmcloud resource service-instance-create <instance-name> messagehub ibm.message.hub.enterprise.3nodes.2tb <region> --service-endpoints private
    
  • Pour activer à la fois des nœuds finaux privés et publics :

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

Mise à jour de la configuration réseau

Vous pouvez également changer les points d'extrémité utilisés par votre cluster Enterprise après le provisionnement. Pour ce faire, utilisez les commandes CLI suivantes :

Pour migrer directement depuis des noeuds finaux publics ou privés vers des noeuds finaux publics et privés:

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

Pour migrer depuis des noeuds finaux publics et privés vers des noeuds finaux publics:

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

Pour migrer à partir de noeuds finaux publics et privés vers des noeuds finaux privés:

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

Le basculement direct des noeuds finaux publics vers les noeuds finaux privés ou des noeuds finaux privés vers les noeuds finaux publics n'est pas pris en charge. Le commutateur désactive tous les noeuds finaux publics et vos applications perdent l'accès au cluster. Pour éviter cela, il faut d'abord activer les points de terminaison publics et privés, puis reconfigurer les applications pour utiliser les points de terminaison privés, et enfin passer aux points de terminaison privés uniquement.

Par exemple, pour migrer depuis des noeuds finaux publics vers des noeuds finaux privés:

Tout d'abord, activez les noeuds finaux publics et privés:

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

Ensuite, créez un nouveau justificatif d'identité contenant des points d'extrémité privés et une nouvelle clé API, comme suit :

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

Ensuite, mettez à jour les applications qui utilisent l'instance avec la nouvelle clé de service et les détails de noeud final.

Enfin, une fois que les applications ont migré vers les points d'extrémité privés, exécutez la commande suivante pour désactiver les points d'extrémité publics :

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

Spécification d'une liste autorisée d'adresses IP (obsolète)

Cette fonction est désormais obsolète et utilise à la place les restrictions contextuelles Configuration de CBR.

Lorsque vous mettez à disposition une instance du plan Enterprise, que vous sélectionnez des noeuds finaux privés et que vous souhaitez restreindre davantage l'accès aux seules instances de serveur virtuel connues avec des VPC spécifiques, vous pouvez ajouter une liste autorisée d'adresses IP à l'aide de l'interface de ligne de commande et en ajouter comme suit:

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

où CIDR1, CIDR2 sont des adresses IP de la forme a.b.c.d/e. Le tableau des routages CIDR peut comporter n'importe quel nombre d'éléments.

Sinon, pour mettre à jour la liste autorisée d'adresses IP pour une instance de service existante, procédez comme suit:

  1. Obtenir la liste d'autorisation IP d'origine appliquée à l'instance :

    $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. Ajoutez ou supprimez des routages CIDR dans la ligne Private IP allowlist.

  3. Exécutez la commande suivante pour mettre à jour l'instance de service avec une nouvelle liste :

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

    où CIDR1, CIDR2 sont des adresses IP de la forme a.b.c.d/e

Si le noeud final privé est activé à l'aide de l'interface de ligne de commande, lors de la prochaine mise à jour de la liste autorisée des adresses IP privées, vous pouvez omettre --service-endpoints private.

Le changement de liste d'adresses IP autorisées désactive toutes les adresses IP autorisées qui ne figurent pas dans la nouvelle liste. Les applications accédant au cluster à partir de ces adresses perdent l'accès au cluster.

Extraction des informations de noeud final

Les informations de noeud final de votre instance de service sont spécifiques au type de réseau. Les instances de service avec une mise en réseau publique et privée sélectionnée ont un noeud final pour chacune d'elles.

Vous pouvez extraire les informations de noeud final pour le type de réseau requis à l'aide de l'option --service-endpoint de la commande d'interface de ligne de commande service-key-create comme suit:

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

Accès à la console IBM Event Streams

La console reste accessible si le réseau public est disponible pour l'instance, y compris le réseau public et le réseau public et privé.

La console ne sera pas accessible si le réseau privé seulement est sélectionné et que la restriction basée sur le contexte est configurée en raison d'une limitation technique. Il est recommandé d'utiliser le CLI pour effectuer des opérations administratives, par exemple : ibmcloud es topic-create [--name] TOPIC_NAME [--partitions PARTITIONS] [--config KEY=VALUE[;KEY=VALUE]* ]*

Configuration des restrictions contextuelles

Vous pouvez définir des règles qui limitent les emplacements réseau à partir lesquels les connexions sont acceptées. Par exemple, par type de réseau, plages d'adresses IP, VPC ou à partir d'autres services. Pour plus d'informations, voir Quelles sont les restrictions contextuelles?

Des restrictions contextuelles peuvent être définies pour les instances Event Streams des plans Standard et Enterprise. Lorsque des règles de restrictions contextuelles sont définies, les règles suivantes s'appliquent:

  • Les appels de l'API REST d'administration, de l'API de fournisseur REST, de l'API de registre de schéma et du client Kafka sont soumis aux règles de restrictions contextuelles qui sont créées sur une instance Event Streams.

  • Les fonctions d'administration de l'instance de service elle-même (par exemple, l'interface de ligne de commande IBM Cloud service-instance-create, les commandes service-instance-delete ou service-instance-update ou des commandes équivalentes) ne sont pas soumises à la portée des règles de restrictions basées sur le contexte qui sont créées par rapport à une instance Event Streams.

Gestion des paramètres de restrictions contextuelles

La création de règles de restrictions basées sur le contexte est un processus en deux étapes:

  1. Créez une zone réseau avec la liste des adresses IP autorisées, des VPC autorisés ou référencez un service. Pour plus d'informations, voir Création de zones réseau.

  2. Créez des règles qui spécifient une ou plusieurs zones réseau pour la ressource Event Streams. Pour plus d'informations sur la création de règles, voir Création de règles.

Il convient ensuite de tenir compte des considérations suivantes :

  • Vous devez être le propriétaire du compte ou disposer d'une politique d'accès avec le rôle d'administrateur pour tous les services de gestion de compte afin de restreindre l'accès.
  • Après la création ou la mise à jour d'une zone ou d'une règle, l'application de la modification peut prendre quelques minutes (jusqu'à 10 minutes).
  • Une fois les restrictions basées sur le contexte appliquées, elles ne sont appliquées que pour les clients qui s'authentifient après la création de la règle. Les clients existants doivent s'authentifier à nouveau pour que les règles de restriction soient appliquées.

Prise en charge des connexions entre les services (de service à service) avec des restrictions contextuelles

Si une instance de service Event Streams est configurée pour utiliser le chiffrement géré par le client, le service doit également être autorisé à se connecter aux services IBM Key Management Services sélectionnés.

L'administrateur du compte peut le configurer comme suit:

  1. Ajoutez une référence de service pour le service Event Streams à la zone réseau requise.
  2. Assurez-vous que l'accès à partir de cette zone est autorisé par le biais des règles de restrictions contextuelles applicables à d'autres services Cloud.

Pour plus d'informations sur la création de références de service, voir Références de service.

Coexistence des règles de restrictions contextuelles et des listes autorisées d'adresses IP privées

Les règles de restrictions basées sur le contexte remplacent désormais l'utilisation de listes autorisées d'adresses IP privées comme approche recommandée pour l'implémentation de listes autorisées sur une instance Event Streams. L'utilisation des listes d'adresses IP privées autorisées continue d'être prise en charge, mais elle est désormais obsolète.

Si les deux règles de restrictions basées sur le contexte et les listes autorisées d'adresses IP sont définies sur la même instance Event Streams, la liste autorisée d'adresses IP est ignorée car les règles de restrictions basées sur le contexte remplacent les listes autorisées d'adresses IP privées précédentes.

Migration à partir de listes autorisées d'adresses IP privées vers des restrictions basées sur le contexte

Le client est responsable de la migration. Vous pouvez à nouveau créer des définitions de liste autorisée IP en tant que zones réseau de restrictions basées sur le contexte et les appliquer à l'instance de service en créant une règle de restrictions basée sur le contexte. Vous pouvez ensuite supprimer la liste autorisée d'adresses IP privées précédente.