Configurazione di Secrets Manager nel tuo cluster Kubernetes Service

Quando si integra IBM Cloud Secrets Manager con il proprio cluster IBM Cloud Kubernetes Service, è possibile gestire centralmente i certificati dei sottodomini Ingress e altre informazioni riservate.

Informazioni su Secrets Manager

Con Secrets Manager, puoi utilizzare un unico servizio per gestire i tuoi segreti e controllare chi ha accesso ad essi. Un'istanza Secrets Manager non viene automaticamente fornita nel tuo cluster. Tuttavia, puoi utilizzare una singola istanza Secrets Manager su più cluster e un singolo cluster può avere più di una istanza.

Quale funzionalità posso ottenere con Secrets Manager?

Con Secrets Manager puoi:

  • Crea segreti gestiti di tipo “ Kubernetes ” con certificati “ TLS ” di Ingress inclusi.
  • Crea i segreti Kubernetes di qualsiasi tipo utilizzando il CRN di qualsiasi istanza Secrets Manager di tua proprietà.
  • Aggiorna automaticamente i tuoi segreti nel tuo cluster su base regolare.
  • Tieni traccia delle date di scadenza dei tuoi certificati dalla console IBM Cloud.
  • Controlla chi ha accesso ai tuoi segreti creando gruppi di segreti per gli utenti approvati.

Si noti che, affinché i segreti vengano aggiornati automaticamente, è necessario registrare almeno un'istanza di Secrets Manager nel proprio cluster. Per ulteriori informazioni, consulta la sezione " Registrazione dell'istanza di Secrets Manager nel cluster ".

Secrets Manager Domande frequenti

Quando si utilizza Secrets Manager, tenere presenti i seguenti punti.

Quali tipi di segreti sono supportati con Secrets Manager?
Secrets Manager supporta le credenziali IAM, i segreti chiave - valore, le credenziali utente, i segreti arbitrari e i segreti Kubernetes. Per i segreti di tipo “ Kubernetes ”, Secrets Manager supporta sia i tipi di segreto “ TLS ” che quelli “non- TLS ” (Opaque). Con i segreti " TLS ", è possibile specificare un unico CRN di certificato. Con i segreti non legati a TLS, è possibile specificare più campi per recuperare i segreti non legati ai certificati. Se non si specifica un tipo di segreto al momento della creazione, viene applicato per impostazione predefinita il tipo “ TLS ”. Per ulteriori informazioni sui segreti supportati, vedi Utilizzo di segreti di tipi diversi.
I segreti archiviati in un'istanza Secrets Manager registrata vengono aggiornati automaticamente?
Sì. Se hai un'istanza Secrets Manager registrata nel tuo cluster, i segreti sul cluster vengono aggiornati automaticamente con i valori da Secrets Manager una volta al giorno. Questi aggiornamenti vengono eseguiti utilizzando il valore del segreto dal CRN corrispondente.
I miei segreti vengono aggiornati automaticamente se non creo e registro un'istanza Secrets Manager ?
Se non hai un'istanza Secrets Manager registrata nel tuo cluster, i tuoi segreti Ingress predefiniti continuano ad aggiornarsi automaticamente ogni 90 giorni e vengono applicati al tuo cluster. Tuttavia, tutti i segreti che hai creati che fanno riferimento al segreto Ingress predefinito non vengono aggiornati automaticamente.
Scenario di esempio: hai un certificato Ingress predefinito nello spazio dei nomi default. Esegui il comando ibmcloud ks ingress secret create e fai riferimento al CRN del certificato Ingress predefinito per eseguire il mirroring del certificato nello spazio dei nomi istio-system. Senza unSecrets Manager istanza, il certificato Ingress predefinito nel file default lo spazio dei nomi si aggiorna automaticamente. Tuttavia, sei responsabile dell'aggiornamento regolare del certificato nel file istio-system spazio dei nomi con il kubectl comandi o un altro metodo di rotazione.
Ho creato dei segreti che fanno riferimento al certificato Ingress predefinito, ma non ho creato e registrato un'istanza Secrets Manager. Come posso gestire i miei segreti?
Se non registri un'istanza Secrets Manager, IBM Cloud Kubernetes Service aggiorna automaticamente solo il segreto Ingress predefinito. Sei responsabile della gestione di tutti gli altri segreti utilizzando i comandi kubectl o un altro metodo di rotazione. Se hai dei segreti che fanno riferimento al certificato Ingress predefinito, dovresti rimuoverli utilizzando ibmcloud ks ingress secret rm.
Qual è la differenza tra i comandi CLI ibmcloud ks ingress instance e i comandi CLI ibmcloud ks ingress secret ?
Ci sono due serie di comandi della CLI che funzionano direttamente con le istanze Secrets Manager in IBM Cloud Kubernetes Service: i comandi ibmcloud ks ingress secret e i comandi ibmcloud ks ingress instance. I comandi ibmcloud ks ingress instance sono utilizzati per gestire le tue istanze Secrets Manager. I comandi ibmcloud ks ingress secret vengono utilizzati per gestire i tuoi segreti Ingress memorizzati in un'istanza Secrets Manager o i segreti scritti direttamente nel cluster.

Configurazione della tua istanza Secrets Manager

Segui i passaggi indicati per configurare " Secrets Manager " nel tuo cluster.

Abilita comunicazione service - to - service

L'integrazione di Secrets Manager con il cluster IBM Cloud Kubernetes Service richiede l'autorizzazione alla comunicazione tra servizi. Seguire la procedura per impostare l'autorizzazione. Per ulteriori informazioni, consulta la sezione " Integrazioni" all'indirizzo Secrets Manager.

  1. Nella console di IBM Cloud, fare clic su Gestisci > Accesso (IAM).
  2. Fare clic su Autorizzazioni.
  3. Fai clic su Crea.
  4. Nell'elenco dei servizi di origine, selezionare Kubernetes Service.
  5. Selezionare l'opzione per definire l'ambito dell'accesso a Tutte le risorse.
  6. Nell'elenco Servizio di destinazione, seleziona Secrets Manager.
  7. Selezionare l'opzione per definire l'ambito dell'accesso a Tutte le risorse.
  8. Nella sezione Accesso al servizio, selezionare l'opzione Gestore.
  9. Fai clic su Autorizza.

Crea un'istanza Secrets Manager

Per creare un'istanza di " Secrets Manager " tramite la CLI o l'interfaccia utente, consultare la documentazione " Secrets Manager ". Potrebbero essere necessari alcuni minuti prima che l'istanza di Secrets Manager sia completamente configurata.

Quando si crea un'istanza di Secrets Manager, questa non viene configurata direttamente nel proprio cluster. Nel passaggio successivo dovrai registrare la tua nuova istanza di Secrets Manager nel tuo cluster.

Registra la tua istanza Secrets Manager nel tuo cluster

Segui i passaggi indicati per registrare la tua istanza di Secrets Manager nel tuo cluster.

  1. Ottieni il CRN dell'istanza Secrets Manager. Nell'output, il CRN è nella riga ID.

    ibmcloud resource service-instance <instance_name>
    

    Output di esempio

    Name:                  my-secrets-manager-instance
    ID:                    crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1a11111aaa1a1111aa1aa111:111a1111-11a1-111a-1111-1a1a1a1111a1:
    GUID:                  111a1111-11a1-111a-1111-1a1a1a1111a1
    Location:              us-south   
    Service Name:          secrets-manager   
    Service Plan Name:     standard   
    Resource Group Name:   default   
    State:                 active   
    Type:                  service_instance   
    Sub Type:                 
    Created at:            2022-06-08T12:46:45Z   
    Created by:            user@ibm.com   
    Updated at:            2022-06-08T12:54:45Z
    
  2. Registrare l'istanza nel cluster. Specificare il CRN dell'istanza trovato nella fase precedente.

    Se si desidera registrare un'istanza in un cluster e impostarla come istanza predefinita, includere l'opzione --is-default. Altrimenti, è possibile impostare un'istanza predefinita con il comando ibmcloud ks ingress instance default set.

    ibmcloud ks ingress instance register --cluster CLUSTER_NAME_OR_ID --crn INSTANCE_CRN [--is-default]
    
  3. Verifica che l'istanza Secrets Manager sia stata registrata sul cluster.

    ibmcloud ks ingress instance ls --cluster CLUSTER_NAME_OR_ID
    

    Output di esempio

    Name                                Type              Is Default   Status    Secret Group   CRN   
    my-secrets-manager-instance         secrets-manager   false        created   default        crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1a11111aaa1a1111aa1aa111:111a1111-11a1-111a-1111-1a1a1a1111a1::   
    

È possibile specificare un'istanza di Secrets Manager e un gruppo di segreti al momento della creazione di un cluster con il comando ibmcloud ks cluster create classic o ibmcloud ks cluster create vpc-gen2. Utilizzare l'opzione --sm-instance per registrare un'istanza nel cluster e l'opzione --sm-group per specificare un gruppo di segreti che può accedere ai segreti sul cluster. Vedi la sezione " Registrazione di un'istanza di Secrets Manager durante la creazione di un cluster ".

Imposta un'istanza Secrets Manager e rigenera i tuoi segreti

Quando si imposta un'istanza predefinita di Secrets Manager, tutti i nuovi certificati dei sottodomini Ingress vengono memorizzati in tale istanza.

  1. Eseguire il comando per impostare la nuova istanza predefinita. Puoi facoltativamente specificare un gruppo di segreti a cui è consentito l'accesso ai segreti nell'istanza.

    ibmcloud ks ingress instance default set --cluster CLUSTER_NAME_OR_ID --name INSTANCE_NAME --secret-group SECRET_GROUP_ID
    
  2. Rigenera i tuoi segreti. Tutti i segreti gestiti da IBM, come i tuoi segreti Ingress predefiniti, vengono caricati nella nuova istanza predefinita. Questi segreti sono aggiornati automaticamente e il CRN viene modificato per fare riferimento all'istanza Secrets Manager.

    1. Elenca i sottodomini nlb-dns presenti nel tuo cluster.
        ibmcloud ks nlb-dns ls --cluster CLUSTER_NAME_OR_ID
        ```
    2. Per ogni dominio secondario nel proprio cluster, eseguire il comando per rigenerare i segreti gestiti da IBM. Questo aggiorna il CRN di questi segreti per fare riferimento al CRN della nuova istanza predefinita Secrets Manager.
    
        La rigenerazione dei propri segreti ha una frequenza limitata a cinque volte alla settimana. Seguire attentamente i passi in questo documento, poiché ripetendoli si potrebbe raggiungere il limite. Se non rigeneri i tuoi segreti, o se hai raggiunto il limite, i tuoi segreti verranno caricati sulla tua istanza di Secrets Manager al prossimo ciclo di rinnovo.
        {: important}
    
        ```sh {: pre}
        ibmcloud ks nlb-dns secret regenerate --cluster CLUSTER_NAME_OR_ID --nlb-subdomain NLB_SUBDOMAIN
        ```
    
    3. Verifica che i tuoi segreti Ingress predefiniti siano stati rigenerati. Nell'output, il CRN dei segreti Ingress predefiniti deve contenere `secrets-manager`.
    
        La rigenerazione dei segreti potrebbe richiedere diversi minuti. Durante questo processo, la colonna **Stato** nell'output indica `regenerating` e passa a `created` una volta completata la rigenerazione.
        {: note}
    
        ```sh {: pre}
        ibmcloud ks ingress secret ls --show-crn --cluster CLUSTER_NAME_OR_ID
        ```
        Output di esempio
    
        ```sh {: screen}
        Name                                Namespace   Expiry              Domains                                Status    Type   CRN
        secret-11111aa1a1a11aa1111111-000   default     3 months from now   secret-11111aa1a1a.us-s…domain.cloud   created   TLS    crn:v1:bluemix:public:secrets-manager:us-south:a/1aa111aa1:secret:a111aa11-11a1
        secret-22222aa2a2a22aa2222222-000   default     3 months from now   secret-22222aa2a2a.us-s…domain.cloud   created   TLS    crn:v1:bluemix:public:secrets-manager:us-south:a/2aa222aa2:secret:a222aa22-22a2   
        ```
    

Controllo dell'accesso ai tuoi segreti con gruppi di segreti

Con Secrets Manager, puoi utilizzare i gruppi di segreti per controllare chi ha accesso ai segreti nel tuo cluster. Un gruppo di segreti può essere assegnato a un gruppo di accesso IAM in modo che solo gli utenti selezionati o gli ID servizio possano accedere ai segreti all'interno del gruppo di segreti. Per ulteriori informazioni, vedi Organizzazione dei tuoi segreti.

Registrazione di un'istanza Secrets Manager durante la creazione di un cluster

Se stai creando un nuovo cluster Classic o VPC, puoi registrare un'istanza Secrets Manager e un gruppo di segreti già esistenti nel cluster durante la creazione. I segreti del cluster vengono memorizzati nell'istanza di Secrets Manager e applicati al gruppo di segreti.

L'istanza di " Secrets Manager " registrata durante la creazione del cluster non diventa automaticamente l'istanza predefinita di " Secrets Manager ". È necessario impostare manualmente l'istanza predefinita.

Se crei un cluster nella CLI con ibmcloud ks cluster create classic o ibmcloud ks cluster create vpc-gen2, puoi specificare un'istanza Secrets Manager o un gruppo di segreti con le seguenti opzioni di comando:

  • --sm-instance: utilizza questa opzione per registrare una istanza Secrets Manager nel cluster specificando il CRN dell'istanza. Per trovare il CRN di un'istanza di Secrets Manager, esegui ibmcloud resource service-instance <name_of_instance> o vai all'elenco delle risorse nell'interfaccia utente e fai clic sull'istanza.
  • --sm-group: utilizzare questa opzione per specificare l'ID del gruppo di segreti. Per trovare l'ID gruppo di segreti, eseguire ibmcloud secrets-manager secret-groups.

Se crei un cluster nell'IU, attieniti alla seguente procedura per specificare un gruppo di segreti o un'istanza Secrets Manager:

  1. Nella sezione Integrazioni della pagina di creazione del cluster, selezionare l'opzione per abilitare Secrets Manager.
  2. Dal menu a discesa IstanzaSecrets Manager, seleziona l'istanza che vuoi registrare nel cluster. Se non sono disponibili istanze, creane una.
  3. Dal menu a discesa GruppoSecrets Manager, seleziona il gruppo di segreti che vuoi applicare.
  4. Creare il cluster.
  5. Verifica che l'istanza Secrets Manager sia registrata nel cluster.
    1. Quando il cluster è completamente configurato, fare clic sul cluster per visualizzarne i dettagli. In Integrazioni, individuare l'intestazione Secrets Manager e fare clic su Gestisci.
    2. Nel pannello laterale, controlla che l'istanza corretta sia elencata in Registered Secrets Manager instances.
    3. Per registrare ulteriori istanze nel cluster, fare clic su Registra istanze.