Migration d'une liste d'autorisations de points de service privés vers des restrictions basées sur le contexte (CBR)
Les listes d'autorisation des points d'extrémité des services privés ne sont plus prises en charge et des restrictions basées sur le contexte (CBR) doivent être utilisées à la place. Si vos clusters disposent actuellement de listes d'autorisation activées pour les points de terminaison de service privés principaux, vous ne pouvez pas modifier ces listes d'autorisation; vous pouvez uniquement les désactiver. Suivez les étapes suivantes pour migrer vers l'utilisation de restrictions basées sur le contexte (CBR).
Les instructions suivantes concernent la protection du point de terminaison du service privé de votre cluster à l'aide de règles CBR. Si votre cluster dispose d'un point de terminaison de service public et privé (PSE), vous pouvez également protéger le point de terminaison de service public de votre cluster avec CBR.
Voici quelques-uns des avantages du CBR :
- Ciblez en une seule fois plusieurs groupes d'un compte sans avoir à définir la liste pour chacun d'entre eux.
- Autoriser l'accès à partir de VPC spécifiques, et pas seulement à partir d'IP ou de sous-réseaux.
- Fixer des limites plus élevées, jusqu'à 200 IP ou sous-réseaux privés et 500 IP ou sous-réseaux publics, au lieu d'un total maximum de 75 avec PSE.
- Créer et gérer des règles CBR à partir de la console, de l'API ou du CLI.
- Restreindre l'accès du public via le CBR. La liste d'autorisations des points de service privés restreint uniquement le trafic des points de service privés.
Avant de commencer
Si vous utilisez déjà des règles CBR pour protéger vos clusters, il se peut que ces instructions ne correspondent pas à votre cas d'utilisation. Utilisez plutôt la documentation CBR pour comprendre comment modifier vos règles CBR existantes afin d'inclure les sous-réseaux de la liste d'autorisations des points de terminaison des services privés. Pour plus d'informations sur CBR, voir Protection des ressources du cluster avec des restrictions basées sur le contexte et les exemples de scénarios de restrictions basées sur le contexte.
Avant de commencer à créer des zones et des règles CBR, vérifiez que la liste d'autorisations de votre point de terminaison de service privé fonctionne comme prévu. Après avoir configuré CBR, vous pouvez réexécuter ces tests pour confirmer le même comportement.
1 Accédez à votre cluster Red Hat OpenShift... Ciblez le point de terminaison du service privé à partir d'un système client qui utilise une adresse IP privée située dans l'un des sous-réseaux personnalisés de votre liste d'autorisations.
-
Exécutez la commande suivante pour vérifier que les IP autorisées peuvent se connecter au PSE.
oc get nodes
1 Accédez à votre cluster Red Hat OpenShift... Accédez au point de terminaison du service privé à partir d'une adresse IP autorisée afin de vérifier que vous pouvez vous y connecter.
1 Accédez à votre cluster Red Hat OpenShift... Ciblez le point de terminaison du service privé à partir d'un système client qui utilise une adresse IP privée non autorisée dans votre liste d'autorisations.
- Exécutez à nouveau la commande précédente pour vérifier que les IP qui ne figurent pas dans la liste d'autorisation ne peuvent pas se connecter à l'ESP.
Maintenant que vous avez vérifié que votre liste de contrôle fonctionne comme prévu, vous pouvez poursuivre la migration.
Étape 1 : Examiner les détails de votre liste d'attente
-
Obtenez les détails de votre liste d'autorisation PSE.
Si une liste d'autorisations PSE n'est pas activée sur votre cluster, la commande échoue et l'erreur indique que cette fonctionnalité est désactivée. Dans ce cas, votre cluster ne nécessite aucune autre action.
ibmcloud oc cluster master private-service-endpoint allowlist get -c CLUSTERExemple de sortie
Subnet Type Status 10.138.53.64/26 System Active 10.30.50.0/24 Custom Active 10.249.94.103/32 Custom Active OK laptop -
Examinez les résultats et notez les sous-réseaux personnalisés. Ces sous-réseaux seront utilisés ultérieurement.
- Les entrées du système sont migrées automatiquement et peuvent être ignorées. Ces entrées permettent de s'assurer que les travailleurs de la grappe sont autorisés à se connecter à l'apiserver de la grappe.
- Les entrées personnalisées sont les sous-réseaux que vous avez ajoutés et qui sont autorisés à se connecter au point d'extrémité du service privé de ce cluster. Les sous-réseaux "
10.30.50.0/24et "10.249.94.103/32de l'exemple sont ajoutés à une zone de réseau CBR à l'étape suivante.
Étape 2 : Création d'une zone réseau
Créez une zone réseau CBR qui contient les mêmes sous-réseaux que votre liste d'autorisations de points d'extrémité de service privé personnalisé existante.
Création d'une zone réseau dans la console
-
Cliquez sur Créer.
-
Indiquez les détails de votre zone de réseau.
- Nom: Donnez un nom à votre zone de réseau.
- Adresses IP autorisées: Entrez les sous-réseaux que vous avez trouvés à l'étape précédente.
-
Cliquez sur Suivant pour passer en revue les détails de votre zone réseau.
-
Cliquez sur Créer pour terminer la création de votre zone réseau.
Création d'une zone réseau à l'aide de l'interface de ligne de commande (CLI)
-
Créez une zone réseau à partir de l'interface de gestion en exécutant une commande similaire à l'un des exemples suivants.
Syntaxe de la commande '
cbr zone-createibmcloud cbr zone-create [--name NAME] [--description DESCRIPTION] [--addresses ADDRESSES] [--excluded EXCLUDED] [--vpc VPC] [--service-ref SERVICE-REF] [--file FILE]Le paramètre "
--addressesdoit être une liste de sous-réseaux séparés par des virgules que vous avez trouvés à l'étape précédente dans la liste des autorisations de votre point de terminaison de service privé.Exemple de commande pour créer une zone réseau pour un seul cluster.
ibmcloud cbr zone-create --name private-subnets-for-cluster-XXXXXX --description "Private subnets that are allowed to access the apisever of cluster XXXXXX" --addresses 10.30.50.0/24,10.249.94.103/32Création d'une zone CBR exemple 1 Paramètre Description --nameDonnez un nom à votre zone de réseau. --descriptionFournir une description facultative de la zone. --addressesEntrez les sous-réseaux que vous avez trouvés dans votre liste d'autorisations du point de terminaison du service maître à l'étape précédente. Exemple de commande pour créer une zone réseau pour tous les clusters de votre compte.
ibmcloud cbr zone-create --name private-subnets-for-all-clusters --description "Private subnets that are allowed to access my clusters" --addresses 10.30.50.0/24,10.249.94.103/32Création d'une zone CBR exemple 1 Paramètre Description --nameDonnez un nom à votre zone de réseau. --descriptionFournir une description facultative de la zone. --addressesEntrez les sous-réseaux que vous avez trouvés dans votre liste d'autorisations du point de terminaison du service maître à l'étape précédente. -
Créez une règle CBR pour protéger votre cluster avec CBR. Cette règle fait référence à votre cluster ou à tous les clusters de ce compte, ainsi qu'à la zone réseau que vous avez créée.
Étape 3 : Création d'une règle CBR
Créez une règle CBR qui fait référence à la zone réseau que vous avez créée. Vous pouvez créer des règles CBR dans la console, l'interface de programmation ou l'API.
Création d'une règle CBR dans la console
-
Naviguez jusqu'à vos zones de réseau dans la console CBR.
-
Cliquez sur la liste des actions de votre et cliquez sur Modifier.
-
Ajoutez ou supprimez des sous-réseaux, des VPC ou des services à votre zone réseau pour contrôler les ressources qui peuvent accéder à un ou plusieurs de vos clusters.
Création d'une règle CBR à l'aide de l'interface de ligne de commande (CLI)
Les instructions suivantes décrivent comment utiliser l'interface CLI pour créer une zone réseau.
-
Dressez la liste de vos zones réseau et notez l'ID de la zone réseau que vous avez créée à l'étape précédente.
ibmcloud cbr zones -
Créer une règle CBR. Vous pouvez créer une règle pour protéger un seul cluster ou tous les clusters de votre compte.
Syntaxe de la commande '
cbr rule-createibmcloud cbr rule-create [--description DESCRIPTION] [--context-attributes CONTEXT-ATTRIBUTES] [--resource-attributes RESOURCE-ATTRIBUTES] [--region REGION] [--resource RESOURCE] [--resource-group-id RESOURCE-GROUP-ID] [--resource-type RESOURCE-TYPE] [--service-instance SERVICE-INSTANCE-GUID] [--service-name SERVICE-NAME] [--zone-id ZONE-ID] [--tags TAGS] [--enforcement-mode ENFORCEMENT-MODE] [--file FILE]Si votre cluster dispose d'un point d'accès au service public, vous devez inclure le paramètre "
--context-attributes endpointType=publicpour que le trafic soit autorisé vers le point d'accès au service public. Si vous n'incluez pas cette option, tout le trafic public est bloqué.Exemple de commande qui utilise le "
CLUSTER-IDdu cluster et le "NETWORK-ZONE-IDde la zone réseau de l'étape précédente pour créer une règle CBR afin de protéger uniquement ce cluster.ibmcloud cbr rule-create --api-types crn:v1:bluemix:public:containers-kubernetes::::api-type:cluster --description "Protect private endpoint for cluster CLUSTER" --service-name containers-kubernetes --service-instance CLUSTER-ID --context-attributes endpointType=private,networkZoneId=NETWORK-ZONE-ID --context-attributes endpointType=publicRègle CBR créer l'exemple 1 Paramètre Description --api-typesLa valeur " crn:v1:bluemix:public:containers-kubernetes::::api-type:clusterindique les API maîtres du plan de contrôle du cluster. Pour plus d'informations sur les types d'API pour Red Hat OpenShift on IBM Cloud, voir Protéger des API spécifiques.--descriptionUne description facultative de la règle. --service-name containers-kubernetesLa valeur ' containers-kubernetesindique Red Hat OpenShift on IBM Cloud comme service cible pour la règle.--service-instance CLUSTER-IDIndiquez le " CLUSTER-IDdu cluster que vous souhaitez protéger.--context-attributes endpointType=private,networkZoneId=NETWORK-ZONE-IDCette option permet uniquement aux ressources de la zone " NETWORK-ZONE-IDd'accéder au point de terminaison privé du cluster.--context-attributes endpointType=publicCette option permet à toutes les ressources d'accéder au point de terminaison public du cluster. networkZoneIdIndiquez le " NETWORK-ZONE-IDde la zone que vous avez créée précédemment.Exemple de commande qui utilise le "
NETWORK-ZONE-IDde la zone réseau de l'étape précédente pour créer une règle CBR qui protège tous les clusters de ce compte.ibmcloud cbr rule-create --api-types crn:v1:bluemix:public:containers-kubernetes::::api-type:cluster --description "Protect private endpoint for all clusters" --service-name containers-kubernetes --context-attributes endpointType=private,networkZoneId=NETWORK-ZONE-ID --context-attributes endpointType=publicRègle CBR créer l'exemple 2 Paramètre Description --api-typesLa valeur " crn:v1:bluemix:public:containers-kubernetes::::api-type:clusterindique les API maîtres du plan de contrôle du cluster. Pour plus d'informations sur les types d'API pour Red Hat OpenShift on IBM Cloud, voir Protéger des API spécifiques.--descriptionUne description facultative de la règle. --service-nameLa valeur ' containers-kubernetesindique Red Hat OpenShift on IBM Cloud comme service cible pour la règle.--context-attributes endpointType=private,networkZoneId=NETWORK-ZONE-IDCette option permet uniquement aux ressources de la zone " NETWORK-ZONE-IDd'accéder au point de terminaison privé du cluster.--context-attributes endpointType=publicCette option permet à toutes les ressources d'accéder au point de terminaison public du cluster. networkZoneIdIndiquez le " NETWORK-ZONE-IDde la zone que vous avez créée précédemment.
Lors de la création d'une règle, si vous voyez un message d'erreur qui dit 'A rule with the same resource attributes already exists, c'est que vous avez déjà une règle CBR qui protège votre cluster. Dans ce cas, vous devez mettre
à jour votre règle existante pour ajouter votre zone réseau. Pour plus d'informations, voir la documentation sur la mise à jour des règles CBR.
Étape 4 : Désactivation de la liste d'autorisations du point de terminaison du service privé
Maintenant que le point d'accès au service privé de votre cluster est protégé par une règle CBR, vous pouvez désactiver la liste d'autorisation de votre point d'accès au service privé.
Exécutez la commande suivante.
ibmcloud oc cluster master private-service-endpoint allowlist disable -c CLUSTER
Étape 5 : Test de la règle CBR
Maintenant que la règle CBR protège le point de terminaison du service privé de votre cluster, vérifiez qu'elle fonctionne comme prévu. Exécutez les mêmes tests que ceux que vous avez effectués précédemment.
-
{target_[both}].
-
Exécutez la commande suivante sur ce cluster en utilisant un "
kubeconfigqui cible le point de terminaison du service privé.oc get nodes -
Testez cette commande à partir d'un système client utilisant une adresse IP privée qui se trouve dans l'un des sous-réseaux de la zone réseau que vous avez créée (pour vérifier qu'elle fonctionne), puis à partir d'un système client utilisant une adresse IP privée qui ne se trouve dans aucun des sous-réseaux de la zone réseau (pour vérifier qu'elle échoue et qu'elle n'est pas prise en compte).
Si vous constatez que le comportement n'est pas celui que vous attendez, vérifiez s'il existe d'autres règles CBR pour le service 'containers-kubernetes qui pourraient s'appliquer à votre cluster, car elles pourraient également
affecter l'accès au cluster.
Étape 6 : Ajout ou suppression de sous-réseaux pouvant accéder au cluster
Maintenant que vous utilisez une règle CBR pour protéger votre cluster, vous pouvez modifier la zone réseau pour spécifier quels sous-réseaux peuvent accéder à votre cluster.
Modifier votre zone réseau à partir de la console
-
Naviguez jusqu'à votre zone réseau dans la console CBR.
-
Sélectionnez votre zone, puis cliquez sur la liste des actions et cliquez sur Modifier.
-
Ajoutez ou supprimez des sous-réseaux, des VPC ou des services à votre zone réseau pour contrôler quelles ressources peuvent accéder aux clusters choisis.
Modifier votre zone réseau à partir de l'interface de gestion
Pour ajouter des sous-réseaux qui peuvent accéder à votre cluster, vous pouvez utiliser la commande 'cbr zone-update
ibmcloud cbr zone-update <NETWORK-ZONE-ID> --name <NETWORK-ZONE-NAME> --addresses <EXISTING-SUBNETS>,<NEW-SUBNETS>
L'exemple de la zone réseau créée précédemment pour tous les clusters du compte avec les deux sous-réseaux " 10.30.50.0/24 et " 10.249.94.103/32. Un exemple de commande pour ajouter un troisième sous-réseau,
" 10.10.10.0/24, serait le suivant.
ibmcloud cbr zone-update <NETWORK-ZONE-ID> --name private-subnets-for-all-clusters --description "Private subnets that are allowed to access my clusters" --addresses 10.30.50.0/24,10.249.94.103/32,10.10.10.0/24
Vous devez inclure toutes les entrées existantes dans cette zone de réseau ainsi que celles que vous souhaitez ajouter. La valeur que vous indiquez pour " --addresses remplace l'adresse actuelle ou la liste de sous-réseaux
dans cette zone de réseau.
Pour supprimer des sous-réseaux de la zone, vous pouvez utiliser la même commande et omettre les sous-réseaux que vous souhaitez supprimer de la valeur " --addresses Dans ce cas, n'incluez que les sous-réseaux que vous souhaitez
encore autoriser à accéder à vos clusters.
Suppression des restrictions basées sur le contexte du point de terminaison du service privé
Suppression d'une règle depuis la console
-
Accédez à vos règles dans la console CBR.
-
Sélectionnez votre règle, puis cliquez sur la liste des actions et sur Supprimer.
-
Ajoutez ou supprimez des sous-réseaux, des VPC ou des services à votre zone réseau pour contrôler les ressources qui peuvent accéder aux clusters choisis.
Suppression d'une règle à partir de l'interface de gestion
Vous pouvez supprimer des règles CBR avec la commande 'ibmcloud cbr rule-delete <RULE-ID> ou 'ibmcloud cbr rule-update <RULE-ID>
Pour supprimer complètement la protection CBR d'un cluster ou de tous les clusters, vous devez supprimer ou désactiver toutes les règles CBR qui affectent votre cluster.
Si vous utilisez la commande " ibmcloud cbr rule-update pour désactiver ou activer une règle existante, vous devez spécifier tous les attributs de la règle actuelle en plus du paramètre " --enforcement-mode disabled,
sinon les attributs que vous omettez sont supprimés de la règle.
Etapes suivantes
Pour plus d'informations sur CBR, consultez les liens suivants.
- [Protéger les ressources du cluster avec des restrictions basées sur le contexte/docs/openshift]?topic=openshift-cbr&interface=ui).
- Exemples de scénarios de restrictions basées sur le contexte.
- CBR Référence CLI.