Mise en application de l'utilisation des images signées à partir du registre

Découvrez comment appliquer l'utilisation des images signées à partir d'Oracle Cloud Infrastructure Registry lorsque vous déployez des applications vers un cluster que vous avez créé à l'aide de Kubernetes Engine (OKE).

Pour des raisons de conformité et de sécurité, les administrateurs système veulent souvent déployer des logiciels dans un système de production uniquement lorsqu'ils sont convaincus que :

  • le logiciel provient d'une source fiable,
  • le logiciel n'a pas été modifié depuis sa publication, ce qui pourrait compromettre son intégrité.

Pour répondre à ces exigences, vous pouvez signer des images stockées dans Oracle Cloud Infrastructure Registry. Les images signées sont un moyen de vérifier à la fois la source d'une image et son intégrité. Oracle Cloud Infrastructure Registry permet aux utilisateurs ou aux systèmes de propager des images vers le registre, puis de les signer en créant une signature d'image. Une signature d'image associe une image à une clé de cryptage maître obtenue à partir d'Oracle Cloud Infrastructure Vault.

Les utilisateurs ou les systèmes extrayant une image signée à partir d'Oracle Cloud Infrastructure Registry peuvent être sûrs que sa source est sécurisée et que son intégrité n'a pas été compromise. Pour plus d'informations, reportez-vous à Signature d'images à des fins de sécurité.

Pour renforcer davantage la sécurité, vous pouvez configurer des clusters que vous avez créés avec Kubernetes Engine afin d'autoriser uniquement le déploiement d'images signées par des clés de cryptage maître spécifiques à partir d'Oracle Cloud Infrastructure Registry. Globalement, voici les étapes à suivre :

  • Signez des images dans Oracle Cloud Infrastructure Registry avec des signatures d'image utilisant des clés de cryptage maître provenant d'Oracle Cloud Infrastructure Vault (reportez-vous à Signature d'images à des fins de sécurité).
  • Créez une stratégie de vérification d'image pour un cluster qui spécifie les clés de cryptage maître qui doivent avoir été utilisées pour signer des images.
  • Autorisez le cluster à utiliser la stratégie de vérification d'image pour appliquer l'utilisation d'images signées de manière appropriée.

Tenez compte des éléments suivants :

  • Une image dans Oracle Cloud Infrastructure Registry peut être signée à l'aide de plusieurs signatures, chacune associée à une clé de cryptage maître différente. Si la stratégie de vérification d'image d'un cluster inclut au moins une des clés de cryptage maître, le cluster autorise l'extraction de l'image à partir d'Oracle Cloud Infrastructure Registry.
  • Vous pouvez spécifier jusqu'à cinq clés de cryptage maître dans la stratégie de vérification d'image d'un cluster.
  • Si vous autorisez un cluster à utiliser sa stratégie de vérification d'image mais que vous ne spécifiez pas les clés de cryptage maître qui doivent avoir été utilisées pour signer une image :
    • toute image signée peut être extraite d'Oracle Cloud Infrastructure Registry, indépendamment des clés de cryptage maître utilisées pour la signer,
    • toute image non signée peut être extraite d'Oracle Cloud Infrastructure Registry.
  • Si vous autorisez un cluster à utiliser sa stratégie de vérification d'image mais que Kubernetes Engine ne peut pas se connecter à Oracle Cloud Infrastructure Registry, vous ne pouvez pas extraire d'image à partir d'Oracle Cloud Infrastructure Registry.
  • Une image dans Oracle Cloud Infrastructure Registry est identifiée par un référentiel, un nom et une balise. En outre, chaque version d'image reçoit un condensé alphanumérique unique. Si vous autorisez un cluster à utiliser sa stratégie de vérification d'image, dans les spécifications de pod (et d'autres fichiers manifestes), vous devez référencer une image à l'aide de la synthèse d'image plutôt que de la balise d'image. Par exemple, utilisez :
    image: phx.ocir.io/ansh81vru1zp/project01/ngnix-lb@sha256:ee44b399d______49c775b

    plutôt que simplement :

    image: phx.ocir.io/ansh81vru1zp/project01/ngnix-lb:latest

    Notez que vous devez modifier toutes les spécifications de pod existantes (et d'autres fichiers manifestes qui référencent des images) pour utiliser des synthèses d'image plutôt que des balises d'image.

  • Si vous avez autorisé un cluster à utiliser sa stratégie de vérification d'image, il se peut que vous ayez ultérieurement besoin d'urgence d'un pod particulier pour extraire une image qui enfreint la stratégie. Dans ce cas, vous pouvez ajouter l'annotation oracle.image-policy.k8s.io/break-glass: "true" à la spécification de pod. Après avoir ajouté l'annotation à la spécification de pod, le pod peut extraire toutes les images signées et non signées d'Oracle Cloud Infrastructure Registry, quelle que soit la stratégie de vérification d'image du cluster.
  • Un cluster applique l'utilisation des images signées par les clés de cryptage maître incluses dans sa stratégie de vérification d'image si :
    • les images sont extraites d'Oracle Cloud Infrastructure Registry (plutôt que d'autres registres),
    • les images sont signées à l'aide de clés de cryptage maître obtenues à partir d'Oracle Cloud Infrastructure Vault.

Stratégies IAM requises pour appliquer l'utilisation des images signées

Pour permettre aux clusters d'inclure des clés de cryptage maître dans les stratégies de vérification d'image, vous devez les autoriser à utiliser des clés d'Oracle Cloud Infrastructure Vault. Par exemple, pour accorder ce droit d'accès à un cluster particulier de la location :

Allow any-user to use keys in tenancy where request.user.id=<CLUSTER_OCID>

Pour permettre aux clusters d'extraire des images signées d'Oracle Cloud Infrastructure Registry, vous devez les autoriser à accéder aux référentiels dans Oracle Cloud Infrastructure Registry. Par exemple, pour accorder ce droit d'accès à un cluster particulier de la location :

Allow any-user to read repos in tenancy where request.user.id=<CLUSTER_OCID>

Pour obtenir des exemples de création de stratégies plus granulaires, reportez-vous à Cryptage de clés secrètes Kubernetes inactives dans etcd.

Mise en application de l'utilisation des images signées

Pour permettre à un cluster d'autoriser les applications à extraire d'Oracle Cloud Infrastructure Registry uniquement les images signées à l'aide de clés de cryptage maître spécifiques, procédez comme suit :

  1. Si vous n'avez pas déjà accès à une clé asymétrique RSA dans Oracle Cloud Infrastructure Vault, créez des clés de cryptage maître en tant que clés asymétriques RSA. Reportez-vous à Création d'une clé de cryptage maître.
  2. Définissez une stratégie de vérification d'image pour le cluster et indiquez au moins une clé de cryptage maître qui doit avoir été utilisée pour signer des images :
    1. Sur la page de liste Clusters, sélectionnez le cluster pour lequel définir une stratégie de vérification d'image. Si vous avez besoin d'aide pour trouver la page de liste ou le cluster, reportez-vous à Liste des clusters.
    2. Sous Ressources, sélectionnez Vérification d'image.
    3. Sélectionnez Modifier la vérification d'image.
    4. Sélectionnez Activer les stratégies de vérification d'image sur ce cluster pour permettre au cluster d'utiliser la stratégie que vous avez définie.
    5. Sélectionnez une clé de cryptage maître dans Oracle Cloud Infrastructure Vault qui doit avoir été utilisée pour signer des images.

      Si vous souhaitez autoriser l'extraction d'images signées par différentes clés, vous pouvez spécifier plusieurs clés de cryptage maître.

      Si vous spécifiez plusieurs clés de cryptage maître, une image ne doit être signée que par l'une de ces clés. Elle n'a pas besoin d'être signée par toutes les clés de cryptage maître que vous spécifiez. Vous pouvez spécifier jusqu'à cinq clés de cryptage maître dans la stratégie de vérification d'image du cluster.

    6. Sélectionnez Enregistrer les paramètres de vérification d'image.

      A partir de maintenant, le cluster autorise les applications à extraire d'Oracle Cloud Infrastructure Registry uniquement les images qui ont été signées à l'aide des clés de cryptage maître incluses dans la stratégie de vérification d'image. Les tentatives d'extraction d'images non autorisées sont enregistrées dans des journaux d'application (reportez-vous à Visualisation des journaux d'application sur les noeuds gérés et les noeuds autogérés).

  3. Signez les images que le cluster doit autoriser à l'aide de signatures d'image qui associent les images à des clés de cryptage maître dans la stratégie de vérification d'image que vous avez définie. Reportez-vous à Signature d'images à des fins de sécurité.
  4. (Facultatif) Pour déployer une application qui extrait une image signée à partir d'Oracle Cloud Infrastructure Registry, suivez les étapes dans Extraction d'images à partir du registre lors du déploiement et spécifiez l'image dans le fichier manifeste de l'application.