Restreindre le trafic entrant aux applications et fonctions à l'aide de restrictions basées sur le contexte pour les points d'extrémité privés
Cette fonction est une fonction bêta et n'est disponible qu'à des fins d'évaluation et de test.
Vous pouvez utiliser les règles basées sur le contexte de IBM Cloud® pour empêcher les points de terminaison privés d'accéder à vos applications et fonctions IBM Cloud® Code Engine. Cette fonction n'est pas prise en charge pour les travaux Code Engine. Au lieu d'attribuer un accès, les restrictions basées sur le contexte vérifient qu'une demande d'accès provient d'un contexte autorisé que vous configurez. Vous pouvez limiter le trafic entrant vers vos applications et fonctions au sein de vos projets Code Engine afin de protéger vos projets contre le trafic entrant indésirable.
Lorsque vous sécurisez les ressources Code Engine à l'aide de restrictions basées sur le contexte avec des terminaux privés, vous pouvez non seulement restreindre le trafic entrant qui se connecte à votre application ou à vos fonctions à l'aide de règles basées sur le contexte, mais aussi limiter les personnes autorisées à gérer vos ressources Code Engine, comme le déploiement ou la mise à jour d'applications et de secrets.
Les restrictions contextuelles pour Code Engine peuvent être limitées à un seul projet, à un groupe de ressources entier ou à un lieu (région). Vous pouvez également limiter l'accès à vos services à partir de Code Engine. Pour plus d'informations sur les restrictions contextuelles IBM Cloud, voir Qu'est-ce qu'une restriction contextuelle?
Lorsqu'une règle de restriction contextuelle couvre un groupe de ressources ou un lieu, les restrictions s'appliquent aux projets existants. Si vous créez un nouveau projet dans le même emplacement ou groupe de ressources, vous devez mettre à jour la règle (sans la modifier) pour appliquer les restrictions au nouveau projet. Notez qu'il n'est pas nécessaire de modifier la règle; il suffit de cliquer sur Modifier, puis sur Appliquer pour que le nouveau projet soit associé aux restrictions.
Créer une restriction contextuelle pour vos ressources Code Engine
Pour créer une restriction basée sur le contexte, voir Création de restrictions basées sur le contexte. Les étapes suivantes sont spécifiques à la création d'une ressource pour Code Engine.
-
Accédez à la page Règles de restriction basées sur le contexte.
-
Cliquez sur Créer pour créer une nouvelle règle pour la restriction basée sur le contexte, en commençant par le service.
-
Sélectionnez Code Engine pour Services et cliquez sur Suivant pour sélectionner les API de service à protéger.
-
Restreignez l'accès pour protéger vos charges de travail d'application ou de fonction Code Engine en sélectionnant l'option Plan de données pour les API de service.
Vous définissez les restrictions de charge de travail au niveau du plan de données, donc sélectionnez au moins le service du plan de données. Vous pouvez également sélectionner d'autres services ou plateformes API.
Cliquez sur Suivant pour définir la restriction pour vos ressources.
-
Appliquez la restriction à un seul projet, à l'ensemble du groupe de ressources ou à un emplacement (région) où vous avez plusieurs projets. Appliquez ce champ d'application dans la section Ressources et cliquez sur Réviser pour continuer.
-
Cliquez sur Continuer pour ajouter un contexte à votre règle.
-
Code Engine l'API du plan de données de l'entreprise prévoit des restrictions pour les charges de travail privées, et non pour les charges de travail publiques. Par défaut, toutes les charges de travail publiques restent accessibles. Pour que votre restriction basée sur le contexte limite les connexions privées entrantes et laisse également tous les points d'extrémité publics accessibles, vous devez créer un contexte public vide. Sans ce point de terminaison public vide, vous rencontrez des erreurs de configuration des règles. Pour créer un contexte public vide :
- Régler les points d'extrémité sur on.
- Sélectionnez Public.
- Laissez les zones de réseau vides. Assurez-vous qu'aucune zone de réseau n'est activée dans cette section afin que tous les points d'extrémité publics soient accessibles.
Vous pouvez restreindre les points d'extrémité privés, si vous le souhaitez :
- Pour refuser tout accès aux points de terminaison privés dans votre projet, assurez-vous que seul le contexte public vide existe et qu'aucun contexte privé n'est défini.
- Pour restreindre les charges de travail privées au sein de votre projet, sélectionnez la liste des zones réseau que vous souhaitez autoriser (par exemple, vous pouvez autoriser un VPC à accéder aux réseaux privés de votre projet Code Engine ).
- IPv6 ne sont pas prises en charge pour Code Engine.
-
Cliquez sur Continuer pour fournir les détails de la règle.
-
Donnez un nom ou une description à votre règle.
-
Sélectionnez Activé pour l'application.
-
Examinez le résumé et cliquez sur Créer.
Test de la règle de restriction contextuelle pour la connectivité privée entrante
Après avoir créé la règle de restriction basée sur le contexte, vous pouvez la tester à l'aide de votre application ou fonction privée. L'accès n'est accordé qu'aux adresses IP figurant sur la liste d'autorisation. Si une requête provient d'une
adresse IP qui n'est pas sur la liste des adresses autorisées, un message d'erreur RBAC Access Denied
s'affiche. Par exemple, si vous n'autorisez que 9.9.9.9/32
, votre application ou fonction n'est accessible qu'à
partir de cette plage d'adresses IP. Tout ce qui se situe en dehors de cette fourchette entraîne l'affichage d'un message d'erreur.
Si vous avez sélectionné une zone réseau qui pointe vers un nuage privé virtuel (VPC), vous devez également créer une passerelle VPE (point de terminaison privé virtuel) pour permettre au VPC d'accéder aux charges de travail privées. Après avoir
créé la passerelle, vous pouvez constater un retard temporaire dû à la résolution du PDNS. Au début, vous verrez des messages d'erreur sur RBAC Access Denied
, mais l'accès vous sera accordé au bout d'un certain temps.