Applicazione dell'uso di immagini firmate dal registro

Scopri come applicare l'uso delle immagini firmate da Oracle Cloud Infrastructure Registry durante la distribuzione delle applicazioni in un cluster creato utilizzando Kubernetes Engine (OKE).

Per motivi di conformità e sicurezza, gli amministratori di sistema spesso desiderano distribuire il software in un sistema di produzione solo quando sono soddisfatti che:

  • Il software proviene da una fonte attendibile
  • il software non è stato modificato da quando è stato pubblicato, compromettendo la sua integrità

Per soddisfare questi requisiti, puoi firmare le immagini memorizzate in Oracle Cloud Infrastructure Registry. Le immagini firmate forniscono un modo per verificare sia la fonte di un'immagine che la sua integrità. Oracle Cloud Infrastructure Registry consente agli utenti o ai sistemi di eseguire il push delle immagini nel registro e di firmarle creando una firma immagine. Una firma immagine associa un'immagine a una chiave di cifratura master ottenuta da Oracle Cloud Infrastructure Vault.

Gli utenti o i sistemi che estraggono un'immagine firmata da Oracle Cloud Infrastructure Registry possono essere sicuri che l'origine dell'immagine sia affidabile e che l'integrità dell'immagine non sia stata compromessa. Per ulteriori informazioni, vedere Firma di immagini per la sicurezza.

Per migliorare ulteriormente la sicurezza, puoi configurare i cluster creati con Kubernetes Engine in modo da consentire solo la distribuzione di immagini da Oracle Cloud Infrastructure Registry firmate da specifiche chiavi di cifratura master. Ad alto livello, questi sono i passi da seguire:

  • Firma le immagini in Oracle Cloud Infrastructure Registry con firme immagine che utilizzano chiavi di cifratura master da Oracle Cloud Infrastructure Vault (vedere Firma di immagini per la sicurezza).
  • Creare un criterio di verifica dell'immagine per un cluster che specifichi quali chiavi di cifratura master devono essere state utilizzate per firmare le immagini.
  • Consentire al cluster di utilizzare i criteri di verifica delle immagini per applicare l'uso di immagini con firma appropriata.

Tenere presente quanto riportato di seguito.

  • Un'immagine in Oracle Cloud Infrastructure Registry può essere firmata utilizzando più firme, ciascuna associata a una chiave di cifratura master diversa. Se il criterio di verifica dell'immagine di un cluster include almeno una delle chiavi di cifratura master, il cluster consente di estrarre l'immagine da Oracle Cloud Infrastructure Registry.
  • È possibile specificare fino a cinque chiavi di cifratura master nei criteri di verifica delle immagini di un cluster.
  • Se si abilita un cluster a utilizzare i criteri di verifica delle immagini, ma non si specificano le chiavi di cifratura master che devono essere state utilizzate per firmare un'immagine:
    • qualsiasi immagine firmata può essere estratta da Oracle Cloud Infrastructure Registry, indipendentemente dalle chiavi di cifratura master utilizzate per firmarla
    • qualsiasi immagine non firmata può essere estratta da Oracle Cloud Infrastructure Registry
  • Se si abilita un cluster a utilizzare il proprio criterio di verifica delle immagini, ma Kubernetes Engine non può connettersi a Oracle Cloud Infrastructure Registry, non è possibile estrarre alcuna immagine da Oracle Cloud Infrastructure Registry.
  • Un'immagine in Oracle Cloud Infrastructure Registry è identificata da un repository, un nome e una tag. A ogni versione di un'immagine viene inoltre assegnato un digest alfanumerico univoco. Se si abilita un cluster a utilizzare i criteri di verifica delle immagini, nelle specifiche pod (e in altri file manifest) è necessario fare riferimento a un'immagine utilizzando il digest delle immagini anziché il tag immagine. Ad esempio, utilizzare:
    image: phx.ocir.io/ansh81vru1zp/project01/ngnix-lb@sha256:ee44b399d______49c775b

    invece di limitarsi:

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

    Si noti che è necessario modificare tutte le specifiche pod esistenti (e altri file manifest che fanno riferimento alle immagini) per utilizzare i digest di immagine anziché i tag di immagine.

  • Dopo aver abilitato un cluster a utilizzare i criteri di verifica delle immagini, in seguito potrebbe essere necessario che un pod specifico esegua il pull di un'immagine che viola il criterio. In questo caso, è possibile aggiungere l'annotazione oracle.image-policy.k8s.io/break-glass: "true" alla specifica pod. Dopo aver aggiunto l'annotazione alla specifica pod, il pod può estrarre qualsiasi immagine firmata e non firmata da Oracle Cloud Infrastructure Registry, indipendentemente dal criterio di verifica delle immagini del cluster.
  • Un cluster applica l'uso delle immagini firmate dalle chiavi di cifratura master incluse nel criterio di verifica delle immagini, a condizione che:
    • le immagini vengono estratte da Oracle Cloud Infrastructure Registry (anziché da altri registri)
    • le immagini vengono firmate utilizzando le chiavi di cifratura master ottenute da Oracle Cloud Infrastructure Vault

Criteri IAM obbligatori per l'applicazione dell'uso delle immagini firmate

Per consentire ai cluster di includere chiavi di cifratura master nei criteri di verifica delle immagini, è necessario concedere ai cluster l'autorizzazione per utilizzare le chiavi di Oracle Cloud Infrastructure Vault. Ad esempio, per concedere questa autorizzazione a un determinato cluster nella tenancy:

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

Per consentire ai cluster di estrarre le immagini firmate da Oracle Cloud Infrastructure Registry, è necessario concedere ai cluster l'autorizzazione per accedere ai repository in Oracle Cloud Infrastructure Registry. Ad esempio, per concedere questa autorizzazione a un determinato cluster nella tenancy:

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

Per esempi su come creare criteri più granulari, consulta la sezione Cifratura dei segreti Kubernetes in archivio in eccd.

Applicazione dell'uso di immagini con firma

Per abilitare un cluster per consentire alle applicazioni di estrarre solo le immagini da Oracle Cloud Infrastructure Registry firmate utilizzando chiavi di cifratura master specifiche, effettuare le operazioni riportate di seguito.

  1. Se non si dispone già dell'accesso a una chiave asimmetrica RSA in Oracle Cloud Infrastructure Vault, creare una o più chiavi di cifratura master come chiavi asimmetriche RSA. Vedere Creating a Master Encryption Key.
  2. Definire un criterio di verifica dell'immagine per il cluster e specificare almeno una chiave di cifratura principale che deve essere stata utilizzata per firmare le immagini:
    1. Nella pagina della lista Cluster selezionare il cluster per il quale si desidera definire un criterio di verifica delle immagini. Se è necessaria assistenza per trovare la pagina della lista o il cluster, vedere Elenca cluster.
    2. In Risorse, selezionare Verifica immagine.
    3. Selezionare Modifica verifica immagine.
    4. Selezionare Abilita criteri di verifica delle immagini in questo cluster per consentire al cluster di utilizzare il criterio di verifica delle immagini definito.
    5. Selezionare una chiave di cifratura master in Oracle Cloud Infrastructure Vault che deve essere stata utilizzata per firmare le immagini.

      Se si desidera consentire il pull delle immagini firmate da chiavi diverse, è possibile specificare più chiavi di cifratura master.

      Si noti che se si specificano più chiavi di cifratura master, è necessario che un'immagine sia firmata solo da una di queste chiavi. Non è necessario firmare un'immagine da tutte le chiavi di cifratura master specificate. È possibile specificare fino a cinque chiavi di cifratura principali nel criterio di verifica dell'immagine del cluster.

    6. Selezionare Salva impostazioni di verifica immagine.

      D'ora in poi, il cluster consente alle applicazioni di estrarre solo le immagini da Oracle Cloud Infrastructure Registry firmate utilizzando le chiavi di cifratura master incluse nel criterio di verifica delle immagini. I tentativi di estrarre le immagini non consentite vengono registrati nei log dell'applicazione (vedere Visualizzazione dei log dell'applicazione sui nodi gestiti e sui nodi autogestiti).

  3. Firma le immagini che il cluster deve consentire, utilizzando le firme immagine che associano le immagini a una o più chiavi di cifratura master nel criterio di verifica dell'immagine definito. Vedere Firma di immagini per la sicurezza.
  4. (facoltativo) Per distribuire un'applicazione che estrae un'immagine firmata da Oracle Cloud Infrastructure Registry, attenersi alla procedura descritta in Estrazione di immagini dal registro durante la distribuzione e specificare l'immagine nel file manifesto dell'applicazione.