Utilisation de nœuds finaux privés virtuels avec Code Engine

Tous les projets IBM Cloud® Code Engine offrent une intégration aux nœuds finaux privés virtuels (VPE) de IBM Cloud® pour un cloud privé virtuel (VPC). Cette prise en charge vous permet de vous connecter à partir de votre réseau VPC à des applications ou des fonctions Code Engine en utilisant les adresses IP de votre choix, qui sont allouées à partir d'un sous-réseau dans votre VPC.

Avec Code Engine, vous pouvez utiliser les types de VPE suivants :

Les noeuds finaux privés fournissent une connexion aux ressources, applications ou fonctions de votre projet sur le réseau privé IBM Cloud. Lorsque vous vous connectez via un nœud final privé virtuel, tout le trafic est acheminé vers le matériel dédié aux applications Code Engine et reste sur le réseau privéIBM Cloud. Il n'y a pas de frais supplémentaires pour tout le trafic acheminé vers et à partir de ce nœud final à la condition que le trafic reste dans IBM Cloud.

Un projet Code Engine est automatiquement configuré avec un nœud final public et un nœud final privé virtuel.

Vous pouvez contrôler la visibilité des applications Code Engine et indiquer si l'application ou les fonctions doivent être exposées à des noeuds finaux publics ou privés. Une application ou une fonction configurée pour le réseau privé est accessible via le VPE ou par d'autres applications ou fonctions Code Engine. Les applications ou les fonctions accessibles via VPE ne quittent pas le réseau IBM et restent dans le réseau IBM Cloud.

Utilisation de votre VPE pour gérer les ressources de projet en toute sécurité

Avant de commencer, vous devez disposer d'un Compte IBM Cloud.

  1. Créez un IBM Cloud® Virtual Private Cloud. Suivez les instructions d'initiation.

  2. Vérifiez que votre VPC possède au moins un VSI (instance de serveur virtuel) et qu'il puisse effectivement se connecter au VSI. Vous pouvez utiliser la console VPC, l'interface de ligne de commande et l'API pour mettre à disposition une instance de serveur virtuel à partir de la page IBM Cloud® Virtual Private Cloud de la console IBM Cloud.

    1. Créez une Clé SSH pour accéder à l'instance de serveur virtuel.
    2. Créez une instance de serveur virtuel à l'aide de la console.
    3. Réservez une adresse IP flottante de sorte que votre instance soit accessible à partir d'Internet.
    4. Connectez-vous à votre instance de serveur virtuel.
  3. Dans la console IBM Cloud, cliquez sur l'icône Menu et sélectionnez Infrastructure VPC -> Réseau-> Passerelles de nœud final privées virtuelles. Créez un VPE pour le nœud final Code Engine régional api.<region>.codeengine.cloud.ibm.com en accomplissant cetteInstruction.

  4. Une fois que vous avez créé votre VPE, cela peut prendre quelques minutes pour le nouveau VPE et le nouveau DNS privé (pDNS) pour terminer le processus et commencer à travailler pour votre VPC. L'opération est terminée lorsqu'une adresse IP est définie dans la vue détaillée du noeud final privé virtuel.

  5. Clé SSH dans votre instance de serveur virtuel et utilisez root@. Par exemple, ssh root@<VSI_floating_IP_address>.

  6. Pour accéder aux ressources Code Engine à partir de l'interface de ligne de commande, Configurez votre environnement d'interface de ligne de commandeCode Engine. Assurez-vous que votre interface de ligne de commande IBM Cloud est connectée à private.cloud.ibm.com.

  7. Spécifiez un projet Code Engine pour utiliser le nœud final privé. Pour créer un projet, utilisez la commande ibmcloud ce project create avec l'option --endpoint=private.

    ibmcloud ce project create --name myproject --endpoint=private
    

    Attendez que le projet soit à l'état active. Avec l'interface de ligne de commande, vous pouvez confirmer l'état du projet à l'aide de la commande ibmcloud ce project get .

    Si vous souhaitez qu'un projet Code Engine existant utilise le nœud final privé, utilisez la commande ibmcloud ce project select avec l'option --endpoint=private.

    ibmcloud ce project select --name myproject --endpoint=private
    

    Pour les commandes project create et project select , si l'option --endpoint n'est pas explicitement spécifiée, le comportement est déterminé par le système. Si l'interface de ligne de commande IBM Cloud est connectée à private.cloud.ibm.com, le projet Code Engine se comporte comme si --endpoint était private. Si l'interface de ligne de commande IBM Cloud est connectée à cloud.ibm.com, le projet Code Engine se comporte comme si --endpoint était public.

  8. Si vous n'avez pas créé de projet et que vous avez sélectionné un projet existant et que vous souhaitez que votre application ou votre fonction ne soit visible que par le noeud final privé, vérifiez que le projet existant prend en charge les applications avec une visibilité privée. Utilisez la commande ibmcloud ce project get pour vérifier que la sortie de Application Private Visibility Supported est définie sur true. Si la valeur est false, Contactez le support IBM pour activer cette fonction dans votre projet existant.

    ibmcloud ce project get -n myproject
    

    Exemple de sortie

    Getting project 'myproject'...
    OK
    
    Name:                                      myproject  
    ID:                         abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
    Status:                                    active  
    Enabled:                                   true  
    Application Private Visibility Supported:  false  
    Selected:                                  true  
    Region:                                    us-south
    Resource Group:             default
    Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
    Age:                        52d
    Created:                                   Tue, 28 Sep 2021 05:12:16 -0500  
    Updated:                                   Tue, 28 Sep 2021 05:12:19 -0500  
    
    Quotas:    
    Category                                  Used  Limit  
    App revisions                             1     60  
    Apps                                      1     20  
    Build runs                                1     100  
    Builds                                    2     100  
    Configmaps                                2     100  
    CPU                                       0     64  
    Ephemeral storage                         0     256G  
    Instances (active)                        0     250  
    Instances (total)                         0     2500  
    Job runs                                  0     100  
    Jobs                                      0     100  
    Memory                                    0     256G  
    Secrets                                   6     100  
    Subscriptions (cron)                      0     100  
    Subscriptions (IBM Cloud Object Storage)  0     100  
    Subscriptions (Kafka)                     0     100
    
  9. Créez une application qui ne soit visible que pour le nœud final privé. Utilisez la commande ibmcloud ce application create avec l'option --visibility=private. Vous pouvez également utiliser la console pour créer une application ou mettre à jour une application existante et définir laVisibilité de votre application.

    ibmcloud ce application create -n myapp --visibility=private
    

Vous avez maintenant configuré et défini votre nœud final privé virtuel pour gérer les ressources de projet. Si vous souhaitez contrôler quelle application vous devez exposer au nœud final privé, vous pouvez configurer un nœud final privé virtuel pour accéder à votre application.

Utilisation de votre nœud final privé virtuel pour accéder à une application sécurisée

Avant de commencer, vous devez disposer d'un Compte IBM Cloud.

Vous pouvez uniquement utiliser votre nœud final privé virtuel pour accéder à votre application avec un nœud final privé si votre projet sélectionné prend en charge laVisibilité privée de l'application. Pour confirmer si le projet prend en charge la visibilité privée de l'application, utilisez la commande ibmcloud ce project get pour vérifier que la sortie de Application Private Visibility Supported est définie sur true.

  1. Créez un IBM Cloud® Virtual Private Cloud. Suivez les instructions d'initiation.

  2. Vérifiez que votre VPC possède au moins un VSI (instance de serveur virtuel) et qu'il puisse effectivement se connecter au VSI. Vous pouvez utiliser la console, l'interface de ligne de commande et l'API pour mettre à disposition rapidement des instances de serveur virtuel à partir de la page IBM Cloud® Virtual Private Cloud de la console IBM Cloud.

    1. Créez une Clé SSH pour accéder à l'instance de serveur virtuel.
    2. Créez une instance de serveur virtuel à l'aide de l'interface utilisateur.
    3. Réservez une adresse IP flottante de sorte que votre instance soit accessible à partir d'Internet.
    4. Connectez-vous à votre instance de serveur virtuel.
  3. A partir de votre projet Code Engine, vérifiez que votre application est configurée avec un paramètre visibility=private. Voir Déploiement de votre application avec un noeud final privé.

  4. Dans la console IBM Cloud, cliquez sur l'icône Menu et sélectionnez Infrastructure VPC -> Réseau-> Passerelles de nœud final privées virtuelles. Créez un nœud final privé virtuel pour le nœud final régional deCode Engine pour le projet spécifique que vous utilisez pour la visibilité d'application privée en accomplissant cette instruction. Ce projet est répertorié dans la table avec son nœud final au format, *.<uuid>.private.<region>.codeengine.appdomain.cloud.

  5. Une fois que vous avez créé votre VPE, cela peut prendre quelques minutes pour le nouveau VPE et le nouveau DNS privé (pDNS) pour terminer le processus et commencer à travailler pour votre VPC. L'opération est terminée lorsqu'une adresse IP est définie dans la vue détaillée du noeud final privé virtuel.

  6. Extrayez l'URL de l'application Code Engine qui est exposée au réseau privé. L'URL est au format suivant : <app>.<uuid>.private.<region>.codeengine.appdomain.cloud. A partir de la console Code Engine, accédez à l'onglet Domain mappings de votre application pour afficher la visibilité d'une application et de ses URL disponibles. A partir de l'interface de ligne de commandeCode Engine, vous pouvez utiliser la commande ibmcloud ce application get avec l'option --option url. Étant donné que la visibilité de myapp est définie sur visibility=private, la spécification de --option url avec cette commande génère l'URL vers le réseau privé.

    ibmcloud ce application get -n myapp -output url
    

    Exemple de sortie

    http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    
  7. Vous pouvez désormais utiliser votre instance dans la VSI. Appelez l'application. L'application myapp est une application Hello World simple. Lorsque vous curez l'application myapp, Hello World est renvoyé.

    curl http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    

Utilisation de votre VPE pour accéder à une fonction en toute sécurité

Avant de commencer, vous devez disposer d'un Compte IBM Cloud.

Vous ne pouvez utiliser votre VPE pour accéder à votre fonction avec un noeud final privé que si votre projet sélectionné prend en charge la visibilité privée de fonction. Pour vérifier si le projet prend en charge la visibilité privée des fonctions, utilisez la commande ibmcloud ce project get pour vérifier que la sortie de Application Private Visibility Supported est définie sur true.

  1. Créez un IBM Cloud® Virtual Private Cloud. Suivez les instructions d'initiation.

  2. Vérifiez que votre VPC possède au moins un VSI (instance de serveur virtuel) et qu'il puisse effectivement se connecter au VSI. Vous pouvez utiliser la console, l'interface de ligne de commande et l'API pour mettre à disposition rapidement des instances de serveur virtuel à partir de la page IBM Cloud® Virtual Private Cloud de la console IBM Cloud.

    1. Créez une Clé SSH pour accéder à l'instance de serveur virtuel.
    2. Créez une instance de serveur virtuel à l'aide de l'interface utilisateur.
    3. Réservez une adresse IP flottante de sorte que votre instance soit accessible à partir d'Internet.
    4. Connectez-vous à votre instance de serveur virtuel.
  3. A partir de votre projet Code Engine, vérifiez que votre application est configurée avec un paramètre visibility=private. Voir Déploiement de votre application avec un noeud final privé.

  4. Dans la console IBM Cloud, cliquez sur l'icône Menu et sélectionnez Infrastructure VPC -> Réseau-> Passerelles de nœud final privées virtuelles. Créez un nœud final privé virtuel pour le nœud final régional deCode Engine pour le projet spécifique que vous utilisez pour la visibilité d'application privée en accomplissant cette instruction. Ce projet est répertorié dans la table avec son nœud final au format, *.<uuid>.private.<region>.codeengine.appdomain.cloud.

  5. Une fois que vous avez créé votre VPE, cela peut prendre quelques minutes pour le nouveau VPE et le nouveau DNS privé (pDNS) pour terminer le processus et commencer à travailler pour votre VPC. L'opération est terminée lorsqu'une adresse IP est définie dans la vue détaillée du noeud final privé virtuel.

  6. Extrayez l'URL de la fonction Code Engine qui est exposée au réseau privé. L'URL est au format suivant : <function>.<uuid>.private.<region>.codeengine.appdomain.cloud. A partir de la console Code Engine, accédez à l'onglet Domain mappings de votre fonction pour afficher la visibilité de votre fonction et de ses URL disponibles. A partir de l'interface de ligne de commandeCode Engine, vous pouvez utiliser la commande ibmcloud ce function get. Etant donné que la visibilité du myfunction est définie sur visibility=private, cette commande affiche l'URL du réseau privé.

    ibmcloud ce function get -n myfunction
    

    Exemple de sortie

    http://myfunction.1abc23def19.private.us-south.codeengine.appdomain.cloud
    

Vous pouvez désormais utiliser votre instance dans la VSI.