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 truePour 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.
-
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.
-
Utilisez le IBM Cloud réseau privé. Les noeuds finaux ne sont pas visibles sur l'Internet public.
-
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:
-
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 -
Ajoutez ou supprimez des routages CIDR dans la ligne
Private IP allowlist. -
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 commandesservice-instance-deleteouservice-instance-updateou 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:
-
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.
-
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:
- Ajoutez une référence de service pour le service Event Streams à la zone réseau requise.
- 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.