Ajout d'expressions d'utilisation autorisée aux images personnalisées

Utilisez une expression d'utilisation autorisée avec votre image personnalisée pour définir les capacités et les restrictions d'une image et vous aider à trouver des combinaisons d'images et de profils compatibles lors de la création du serveur.

Vous pouvez utiliser des expressions d'utilisation autorisée pour configurer les profils, les images et les paramètres de serveur qui peuvent être utilisés ensemble lorsque vous provisionnez une instance de serveur virtuel ou un serveur bare metal. Lorsque vous effectuez des sélections pour créer une instance de serveur virtuel ou un serveur bare metal, si vous utilisez une image personnalisée avec des expressions d'utilisation autorisée définies, vous pouvez alors déterminer quels profils sont compatibles avec ces expressions.

Lors de la création d'une instance de serveur virtuel ou d'un serveur bare metal avec des images personnalisées ayant une expression d'utilisation autorisée, les informations fournies dans les propriétés d'utilisation autorisée sont ensuite évaluées par rapport aux propriétés d'une instance de serveur virtuel potentielle ou d'un serveur bare metal afin de déterminer si cette image personnalisée peut être utilisée pour créer l'instance de serveur virtuel ou le serveur bare metal.

L'interface utilisateur, l'interface de programmation et l'API vous permettent de définir des expressions d'utilisation autorisée pour toute image personnalisée, image de volume, volume de démarrage détaché ou instantanés de volumes de démarrage. IBM Cloud® Virtual Private Cloud définit les expressions d'utilisation autorisée pour toutes les images de stock, mais vous pouvez les définir pour toute image personnalisée que vous avez créée. La valeur par défaut est "true", ce qui signifie que l'image personnalisée peut être utilisée avec toutes les dispositions potentielles du serveur. Vous devez définir ou modifier les expressions d'utilisation autorisée si vous ne souhaitez pas que l'image personnalisée soit utilisée dans des situations spécifiques.

Pour les images personnalisées et les images partagées avec un catalogue privé, vous pouvez définir les expressions d'utilisation autorisée lors de la création de l'image dans IBM Cloud VPC. Pour les images de volumes, les volumes de démarrage détachés et les instantanés de volumes de démarrage, les expressions d'utilisation autorisée sont héritées de la source par défaut. Cependant, vous pouvez remplacer ces expressions lors de la création de la ressource. Pour toutes les images, les volumes d'amorçage et les instantanés de volumes d'amorçage, les expressions d'utilisation autorisée peuvent être mises à jour après la création.

Pour plus d'informations sur les profils de serveurs virtuels x86 et pour obtenir les informations permettant de définir les expressions d'utilisation autorisée que vous souhaitez utiliser pour votre image personnalisée, voir x86-64 instances profiles. Pour plus d'informations sur les profils de serveur bare metal x86-64, voir x86-64 bare metal server profiles.

L'autorité IAM doit définir les expressions d'utilisation autorisée

Vous devez disposer d'une ou de plusieurs des autorisations suivantes pour pouvoir définir des expressions d'utilisation autorisée, en fonction du type de ressource avec lequel vous travaillez.

  • is.image.image.manage-allowed-use pour les images personnalisées, les images gérées par un catalogue privé et les images provenant d'un volume
  • is.volume.volume.manage-allowed-use pour les volumes de démarrage
  • is.snapshot.snapshot.manage-allowed-use pour les instantanés des volumes d'amorçage

Définir des expressions d'utilisation autorisée à l'aide de l'interface utilisateur

Lorsque vous créez une image à l'aide de l'interface utilisateur, vous pouvez ajouter les détails de l'expression d'utilisation autorisée dans la zone Advanced Options. Si vous visualisez une image existante, les détails de l'image comprennent Virtual server expression et Bare metal server expression. Cliquez sur l'un de ces champs pour ouvrir la zone de texte de l'expression d'utilisation autorisée.

La section des expressions autorisées est une zone de texte dans laquelle vous pouvez ajouter les expressions décrites dans le tableau suivant. Voir les tableaux suivants pour les détails de l'expression d'utilisation autorisée pour les instances de serveurs virtuels et les serveurs métalliques nus.

Expression d'utilisation autorisée de l'interface utilisateur de l'instance de serveur virtuel
Options d'expression autorisées dans l'interface utilisateur des instances de serveurs virtuels
Expression d'usage autorisé Variable d'expression Type
Expression de serveur virtuel gpu.count
Indique le nombre de GPU affectés à l'instance de serveur virtuel.
Entier
gpu.manufacturer
Indique le fabricant du GPU.
Chaîne de caractères sensible à la casse
gpu.memory
Indique la quantité totale de mémoire du GPU sur GiB.
Entier
gpu.model
Indique le modèle de GPU.
Chaîne de caractères sensible à la casse
enable_secure_boot
Indique si le démarrage sécurisé est activé pour l'instance de serveur virtuel.
Booléen
Expression des utilisations autorisées de l'interface utilisateur du serveur bare metal
Options d'expression autorisées pour l'interface utilisateur du serveur « bare metal »
Expression d'usage autorisé Variable d'expression Type
Expression de serveur bare metal enable_secure_boot
Indique si le démarrage sécurisé est activé pour le serveur bare metal.
Booléen

L'exemple suivant est une expression d'utilisation autorisée pour une instance de serveur virtuel dont le nombre de GPU est supérieur à un et dont le fabricant de GPU est Nvidia. Le démarrage sécurisé est requis.

gpu.count > 1 && gpu.manufacturer == 'nvidia' && enable_secure_boot

Pour plus d'informations sur le langage d'expression commun, qui est utilisé pour créer l'expression d'utilisation autorisée, voir la référence de la définition du langage CEL à l'adresse Google

Définition d'expressions d'utilisation autorisée à l'aide de l'interface de programmation (CLI)

Voir les tableaux suivants pour les détails de l'expression d'utilisation autorisée pour les instances de serveurs virtuels et les serveurs métalliques nus.

Expression d'utilisation autorisée de l'interface de programmation de l'instance de serveur virtuel
Options d'expression d'utilisation autorisée via l'interface CLI pour les instances de serveurs virtuels
Option d'utilisation autorisée Variable d'expression Type
--allowed-use-instance gpu.count
Indique le nombre de GPU affectés à l'instance de serveur virtuel.
Entier
gpu.manufacturer
Indique le fabricant du GPU.
Chaîne de caractères sensible à la casse
gpu.memory
Indique la quantité totale de mémoire du GPU sur GiB.
Entier
gpu.model
Indique le modèle de GPU.
Chaîne de caractères sensible à la casse
enable_secure_boot
Indique si le démarrage sécurisé est activé pour l'instance de serveur virtuel.
Booléen
Expression d'utilisation autorisée de l'interface de programmation (CLI) du serveur bare metal
Options d'expression d'utilisation autorisées dans l'interface en ligne de commande (CLI) d'un serveur « bare metal »
Option d'utilisation autorisée Variable d'expression Type
--allowed-use-bare-metal-server enable_secure_boot
Indique si le démarrage sécurisé est activé pour le serveur bare metal.
Booléen

L'exemple de code suivant montre comment utiliser les options de l'expression d'utilisation autorisée lorsque vous créez une nouvelle image personnalisée à l'aide de l'interface de programmation. L'exemple configure l'image de manière à ce que l'activation du démarrage sécurisé soit requise pour un serveur bare metal et à ce qu'elle autorise la fourniture d'une instance de serveur virtuel.

ibmcloud is image-create my-ubuntu-20-amd64 --file cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2 --os-name ubuntu-20-04-amd64 --allowed-use-bare-metal-server "enable_secure_boot==true" --allowed-use-instance true

L'exemple de code suivant montre comment utiliser les options de l'expression "allowed-use" lorsque vous mettez à jour une image personnalisée existante à l'aide de l'interface de programmation. L'exemple est la mise à jour d'une image pour exiger l'activation du démarrage sécurisé pour les dispositions d'un serveur bare metal et d'une instance de serveur virtuel.

ibmcloud is image-update r006-c9da1575-20cd-4412-9269-8ed08d3ac278 --allowed-use-bare-metal-server enable_secure_boot==true --allowed-use-instance enable_secure_boot==true

Pour plus d'informations sur les options et variables de l'expression d'utilisation autorisée de la CLI, voir la référence de la CLI VPC : Images. Pour plus d'informations sur le langage d'expression commun, qui est utilisé pour créer l'expression d'utilisation autorisée, voir la référence de la définition du langage CEL sur le site Google

Définition d'expressions d'utilisation autorisée à l'aide de l'API

Voir les tableaux suivants pour les détails de l'expression d'utilisation autorisée pour les instances de serveurs virtuels et les serveurs métalliques nus.

Expression d'utilisation autorisée de l'API de l'instance de serveur virtuel
Options d'expression d'utilisation autorisée de l'API des instances de serveurs virtuels
Bien à usage autorisé Sous-propriété à usage autorisé Variable d'expression Type
allowed_use instance gpu.count
Indique le nombre de GPU affectés à l'instance de serveur virtuel.
Entier
gpu.manufacturer
Indique le fabricant du GPU.
Chaîne de caractères sensible à la casse
gpu.memory
Indique la quantité totale de mémoire du GPU sur GiB.
Entier
gpu.model
Indique le modèle de GPU.
Chaîne de caractères sensible à la casse
enable_secure_boot
Indique si le démarrage sécurisé est activé pour l'instance de serveur virtuel.
Booléen
Expressions d'utilisation autorisée de l'API pour les serveurs nus
Options d'expression d'utilisation autorisée de l'API du serveur « bare metal »
Bien à usage autorisé Sous-propriété à usage autorisé Variable d'expression Type
allowed_use bare_metal_server enable_secure_boot
Indique si le démarrage sécurisé est activé pour le serveur bare metal.
Booléen

Pour créer une nouvelle image personnalisée avec des expressions d'utilisation autorisée, utilisez la commande API POST /images. L'exemple suivant crée une nouvelle image personnalisée avec une expression d'utilisation autorisée pour une instance de serveur virtuel dont le nombre de GPU est supérieur à un et dont le fabricant de GPU est Nvidia. Le démarrage sécurisé est requis. L'expression d'utilisation autorisée du serveur bare metal est définie sur false, ce qui empêche l'image d'être utilisée pour approvisionner un serveur bare metal.

curl -X POST "$vpc_api_endpoint/v1/images?version=$today&generation=2" -H "Authorization: Bearer $iam_token" -d '{
      "name": "my-image",
      "file": {
        "href": "cos://us-south/my-bucket/my-image.qcow2"
      },
      "operating_system": {
        "name": "debian-9-amd64"
      },
      "allowed_use": {
         "instance": "gpu.count > 1 && gpu.manufacturer == \"nvidia\" && enable_secure_boot",
         "bare_metal_server": "false"
      }
    }'

Pour mettre à jour une image personnalisée existante avec une expression d'utilisation autorisée, utilisez la commande API PATCH /images. L'exemple suivant met à jour une image personnalisée existante avec une expression d'utilisation autorisée pour une instance de serveur virtuel pour un nombre de GPU supérieur à un avec Nvidia comme fabricant de GPU. Le démarrage sécurisé est requis. L'expression d'utilisation autorisée du serveur bare metal est définie sur false, ce qui empêche l'image d'être utilisée pour approvisionner un serveur bare metal.

curl -X PATCH "$vpc_api_endpoint/v1/images/$image_id?version=$today&generation=2" -H 'Content-Type: application/json' -H "Authorization: Bearer $iam_token"  -d '{
"allowed_use": {
  "instance": "gpu.count > 1 && gpu.manufacturer == \"nvidia\" && enable_secure_boot",
  "bare_metal_server": "false"
  }
}'

Pour plus de détails sur la propriété et les sous-propriétés de l'API allowed_use, voir l'API Virtual Private Cloud : Créer une image et Virtual Private Cloud API : Update image. Pour plus d'informations sur le langage d'expression commun, qui est utilisé pour créer l'expression d'utilisation autorisée, voir la référence de la définition du langage CEL sur le site Google

Définir des expressions d'utilisation autorisée à l'aide de Terraform

Voir les tableaux suivants pour les détails de l'expression d'utilisation autorisée pour les instances de serveurs virtuels et les serveurs métalliques nus.

Instance de serveur virtuel Expression d'utilisation autorisée Terraform
Options d'expression « allowed-use » de Terraform pour les instances de serveurs virtuels
Attribut d'utilisation autorisée Sous-attribut d'utilisation autorisée Variable d'expression Type
allowed_use instance gpu.count
Indique le nombre de GPU affectés à l'instance de serveur virtuel.
Entier
gpu.manufacturer
Indique le fabricant du GPU.
Chaîne de caractères sensible à la casse
gpu.memory
Indique la quantité totale de mémoire du GPU sur GiB.
Entier
gpu.model
Indique le modèle de GPU.
Chaîne de caractères sensible à la casse
enable_secure_boot
Indique si le démarrage sécurisé est activé pour l'instance de serveur virtuel.
Booléen
Serveur de métal nu Expression d'utilisation autorisée Terraform
Options d'expression « allowed-use » de Terraform pour les serveurs « bare metal »
Attribut d'utilisation autorisée Sous-attribut d'utilisation autorisée Variable d'expression Type
allowed_use bare_metal_server enable_secure_boot
Indique si le démarrage sécurisé est activé pour l'instance de serveur virtuel.
Booléen

Pour créer une nouvelle image personnalisée avec des expressions d'utilisation autorisée ou mettre à jour une image existante, mettez à jour la ressource ibm_is_image. L'exemple suivant crée une nouvelle image personnalisée avec une expression d'utilisation autorisée pour une instance de serveur virtuel dont le nombre de GPU est supérieur à un et dont le fabricant de GPU est Nvidia. Le démarrage sécurisé est requis. L'expression d'utilisation autorisée du serveur bare metal est définie sur false, ce qui empêche l'image d'être utilisée pour approvisionner un serveur bare metal.

resource "ibm_is_image" "example" {
  name               = "my-image"
  href               = "cos://us-south/buckettesttest/livecd.ubuntu-cpc.azure.vhd"
  operating_system   = "ubuntu-16-04-amd64"
  allowed_use{
    api_version       = "2025-04-03"
    bare_metal_server = “enable_secure_boot == true”
    instance = “gpu.count > 0 && enable_secure_boot == true”
  }
}

Pour plus d'informations sur le langage d'expression commun (Common Expression Language), qui est utilisé pour créer les expressions d'usage autorisé, voir Google 's CEL Language Definition reference</