Creazione delle credenziali IAM

È possibile utilizzare IBM Cloud® Secrets Manager per generare dinamicamente le credenziali IAM per accedere a una risorsa IBM Cloud che richiede l'autenticazione IAM.

Le credenziali IAM sono segreti dinamiciUn valore univoco, come una password o una chiave API, creato in modo dinamico e assegnato a un'applicazione che richiede l'accesso a una risorsa protetta. Dopo che un segreto dinamico raggiunge la fine del suo lease, l'accesso alla risorsa protetta viene revocato e il segreto viene eliminato automaticamente. che puoi utilizzare per accedere a una risorsa IBM Cloud. Una serie di credenziali IAM è composta da un ID servizio e da una chiave API che viene generata ogni volta che si legge o si accede alla risorsa protetta. Puoi definire un TTL (time - to - live) o una durata del lease per la tua credenziale IAM alla sua creazione in modo da abbreviare la quantità di tempo in cui il segreto esiste.

Per ulteriori informazioni sui tipi di segreti che puoi gestire in Secrets Manager, vedi Cos' è un segreto?

Prima di iniziare

Prima di iniziare, assicurati di disporre del livello di accesso richiesto. Per creare o aggiungere segreti, hai bisogno del ruolo del servizio Writer o superiore.

Le credenziali IAM richiedono una fase di configurazione prima di poter iniziare a crearle o gestirle nel servizio. Per ulteriori informazioni, vedi Configurazione del motore delle credenziali IAM.

Quando si modifica un TTL del segreto della credenziale IAM, verrà applicato solo alla successiva rotazione della versione del segreto.

Il segreto della credenziale IAM creato da Secrets Manager sarà anche il nome della chiave API IAM. Ad esempio, un segreto chiamato my-secret-name avrà una chiave API corrispondente chiamata Secrets-Manager-IAM-Secret-my-secret-name. Se in seguito si rinomina il segreto in Secrets Manager, questa modifica non si rifletterà in IAM, ma la funzionalità non verrà interrotta.

Un amministratore di account (o qualsiasi entità con il livello di accesso richiesto) può modificare esternamente le credenziali IAM create e gestite da Secrets Manager. Se l'ID del servizio o la chiave API vengono eliminati al di fuori di Secrets Manager, il servizio potrebbe avere un comportamento inaspettato. Ad esempio, potrebbe non essere possibile creare o ruotare le credenziali.

Creazione delle credenziali IAM nella IU

Per creare le credenziali IAM utilizzando l'IU Secrets Manager, completa la seguente procedura.

  1. Nella console, fare clic sull'icona Menu icona Menu > Elenco risorse.

  2. Dall'elenco di servizi, seleziona la tua istanza di Secrets Manager.

  3. Nella tabella Segreti, fare clic su Aggiungi.

  4. Dall'elenco dei tipi di segreto, fai clic sul tile Credenziali IAM.

  5. Fai clic su Next.

  6. Aggiungere un nome e una descrizione per identificare facilmente il segreto.

  7. Seleziona il gruppo di segretiL'ambiente e i vincoli che contengono segreti in un'istanza devono essere conformi. Un utente può essere associato a un gruppo segreto per consentire l'accesso e la collaborazione. che vuoi assegnare al segreto.

    Non hai un gruppo segreto? Nel campo Gruppo segreto, è possibile fare clic su Crea per fornire un nome e una descrizione per un nuovo gruppo. Il tuo segreto viene aggiunto automaticamente al nuovo gruppo. Per ulteriori informazioni sui gruppi di segreti, consulta Organizzazione dei tuoi segreti.

  8. Facoltativo: aggiungi le etichette per aiutarti a cercare segreti simili nella tua istanza.

  9. Facoltativo: aggiungi i metadati al tuo segreto o a una versione specifica del tuo segreto.

    1. Caricare un file o immettere i metadati e i metadati della versione in formato JSON.
  10. Fai clic su Next.

  11. Impostare una durata del lease o un TTL (time - to - live) per il segreto.

Impostando una durata del lease per la tua credenziale IAM, determini per quanto tempo rimane valida la sua chiave API associata. Quando la credenziale IAM raggiunge la fine del suo periodo di locazione, viene revocata automaticamente.

La durata minima è di 1 minuto. Il massimo è 90 giorni.

  1. Facoltativo: Determina se le credenziali IAM possono essere riutilizzate per il tuo segreto.
  2. Facoltativo: abilita la rotazione automatica del tuo segreto. I segreti possono essere ruotati automaticamente solo se è selezionata l'opzione di riutilizzo delle credenziali IAM.
  3. Fai clic su Next.
  4. Determinare il conto sorgente.
  5. Determinare l'ambito di accesso da assegnare.
  6. Fai clic su Next.
  7. Esaminare i dettagli del proprio segreto.
  8. Fai clic su Aggiungi.

Riutilizzo della stessa chiave API fino alla scadenza del lease

Le credenziali IAM sono composte da un ID servizio e una chiave API. Per impostazione predefinita, l'ID servizio e la chiave API sono valori effimeri di utilizzo singolo che vengono generati ed eliminati ogni volta che si legge o si accede a un segreto delle credenziali IAM.

Se desideri continuare a utilizzare tali credenziali fino alla fine del lease del tuo segreto, puoi impostare Riutilizza credenziali IAM fino alla scadenza del lease su On. Quando si abilita questa opzione, il segreto conserva il suo ID servizio corrente e i valori della chiave API e li riutilizza in ogni lettura mentre il segreto rimane valido. Quando il segreto raggiunge il termine della sua locazione, le credenziali vengono revocate automaticamente.

Se l'opzione Riutilizza credenziali IAM è impostata su Off, la rotazione manuale del segreto non è supportata. Per ulteriori informazioni, vedi Rotazione manuale dei segreti.

Determinare il conto sorgente

Secrets Manager può creare e gestire segreti di credenziali IAM dall'account IBM Cloud corrente o da un account IBM Cloud specifico. Quando si seleziona la creazione di un account specifico, fornire l'ID dell'account.

Determinare l'ambito di accesso da assegnare

È possibile che nel proprio account sia già presente un ID servizio per il quale si desidera generare una chiave API, selezionando l'ID servizio. In alternativa, è possibile generare sia un ID servizio che una chiave API assegnando l'accesso a un gruppo di accesso.

Nella fase Assegna accesso della procedura guidata di creazione delle credenziali IAM, scegliere un ambito di accesso per il segreto.

  1. Per utilizzare un ID servizio esistente, selezionare un ID dall'elenco. Se l'account di origine è un altro account specifico, fornire l'ID del servizio, nel formato seguente: ServiceId-c0c7cfa4-b24e-4917-ad74-278f2fee5ba0.

    Scegli questa opzione quando hai bisogno di Secrets Manager per generare e gestire solo una chiave API per il tuo segreto delle credenziali IAM e non l'ID del servizio stesso. La chiave API eredita la politica di accesso dell'ID servizio che selezioni dal tuo account. Vengono visualizzati solo gli ID servizio a cui hai accesso.

  2. Per creare un nuovo ID servizio e una nuova chiave API per il segreto, seleziona un gruppo di accesso. Se l'account di origine è un account specifico, fornire gli ID dei gruppi di accesso desiderati.

    Selezionando un gruppo di accesso, si determina l'ambito delle autorizzazioni assegnate all'ID servizio e alla chiave API utilizzando il gruppo di accesso. L'ID del servizio e la chiave API vengono generati e associati alla nuova credenziale IAM. È possibile assegnare fino a 10 gruppi di accesso.

    I criteri di accesso devono essere assegnati ai gruppi di accesso selezionati e non direttamente agli ID servizio. Sia l'ID del servizio che la chiave API vengono eliminati e ne vengono creati di nuovi una volta raggiunto il TTL della credenziale IAM.

Se si è utilizzato un ID servizio esistente, la chiave API generata da Secrets Manager viene automaticamente bloccata. Se è stato selezionato un gruppo di accesso, sia il nuovo ID servizio che la chiave API creata da Secrets Manager per il segreto sono automaticamente bloccati. Ogni volta che si recupera un segreto delle credenziali IAM utilizzando l'API, la chiave API e l'ID servizio generati da Secrets Manager sono bloccati, anche se vengono sbloccati manualmente prima di recuperare il segreto.

Creazione delle credenziali IAM dalla CLI

Prima di iniziare, seguire la documentazione della CLI per impostare l'endpoint API.

Per creare un ID servizio e una chiave API usando il plug-in Secrets Manager CLI, eseguire il comando ibmcloud secrets-manager secret-create. Per crearlo in un altro account specifico, aggiungere l'opzione --iam-credentials-account-id.

ibmcloud secrets-manager secret-create --secret-type iam_credentials --secret-name "example-iam-credentials-secret" --secret-description "Description of my IAM credentials secret" --iam-credentials-access-groups ["<access_group_id>, ..."] --secret-ttl 30m --iam-credentials-reuse-apikey true

Per usare un ID servizio esistente e creare una chiave API usando il plug-in Secrets Manager CLI, eseguire il comando ibmcloud secrets-manager secret-create. Per crearlo in un altro account specifico, aggiungere l'opzione --iam-credentials-account-id.

ibmcloud secrets-manager secret-create --secret-type iam_credentials --secret-name "example-iam-credentials-secret" --secret-description "Description of my IAM credentials secret" --iam-credentials-service-id "ServiceId-c0c7cfa4-b24e-4917-ad74-278f2fee5ba0" --secret-ttl 90d --iam-credentials-reuse-apikey true

Il valore ID di un ID di servizio si trova nella sezione IAM della console. Andate in Gestione > Accesso (IAM) > ID servizio > nome. Fare clic su Dettagli per visualizzare l'ID.

Il comando emette il valore di ID del segreto, insieme ad altri metadati. Per ulteriori informazioni relative alle opzioni del comando, consultare ibmcloud secrets-manager secret-create.

Riutilizzo della stessa chiave API fino alla scadenza del lease

Se si desidera continuare a utilizzare le credenziali IAM fino al termine del contratto di locazione del segreto, è possibile utilizzare l'opzione --iam-credentials-reuse-apikey. Se impostato su 'true, il segreto conserva i valori correnti dell'ID servizio e della chiave API e li riutilizza a ogni lettura finché il segreto rimane valido; altrimenti, impostatelo su 'false. Ad esempio, il seguente comando di esempio crea credenziali IAM che possono essere riutilizzate fino alla scadenza.

ibmcloud secrets-manager secret-create --secret-type iam_credentials --secret-name "example-iam-credentials-secret" --secret-description "Description of my IAM credentials secret" --iam-credentials-service-id "<iam_id_of_service_id>" --secret-ttl 30m --iam-credentials-reuse-apikey true

Il comando emette il valore di ID del segreto, insieme ad altri metadati. Quando il segreto raggiunge il termine della sua locazione, le credenziali vengono revocate automaticamente. Per ulteriori informazioni relative alle opzioni del comando, consultare ibmcloud secrets-manager secret-create.

Se '--iam-credentials-reuse-apikey è impostato su 'false per le credenziali IAM, la rotazione manuale del segreto non è supportata. Per ulteriori informazioni, vedi Rotazione manuale dei segreti.

Creazione delle credenziali IAM con l'API

Puoi creare le credenziali IAM in modo programmatico chiamando l'API Secrets Manager.

L'esempio seguente mostra una query che può essere utilizzata per creare un ID servizio e una chiave API. Quando si chiama l'API, sostituire le variabili ID e il token IAM con i valori specifici della propria istanza Secrets Manager. Per crearlo in un altro account specifico, aggiungere il campo account_id.

Puoi archiviare i metadati che sono pertinenti alle esigenze della tua organizzazione con i parametri di richiesta custom_metadata e version_custom_metadata. I valori di version_custom_metadata vengono restituiti solo per le versioni di un segreto. I metadati personalizzati del tuo segreto vengono memorizzati come tutti gli altri metadati, per un massimo di 50 versioni, e non devi includere dati riservati.

curl -X POST
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
      {
        "name": "example-iam-credentials-secret",
        "description": "Description of my IAM Credentials secret",
        "secret_type": "iam_credentials",
        "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
        "labels": [
          "dev",
          "us-south"
        ],
        "ttl": "30m",
        "access_groups": [
          "AccessGroupId-45884031-54be-4dd7-86ff-112511e92699",
          "AccessGroupId-8c0ed733-dfee-4a94-992b-e2247b86e2a2"
        ],
        "reuse_api_key": false,
        "custom_metadata": {
          "metadata_custom_key": "metadata_custom_value"
        },
        "version_custom_metadata": {
          "custom_version_key": "custom_version_value"
        }
      }' \ "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

Una risposta di successo restituisce il valore ID del segreto, insieme ad altri metadati. Per ulteriori informazioni sui parametri di richiesta obbligatori e facoltativi, consulta la Guida di riferimento API.

Riutilizzo della stessa chiave API fino alla scadenza del lease

Se si desidera utilizzare le credenziali IAM fino alla fine della locazione del segreto, è possibile utilizzare il campo reuse_api_key. Se impostato su true, il tuo segreto conserva i suoi valori di ID servizio e chiave API correnti e li riutilizza in ogni lettura mentre il segreto rimane valido. Ad esempio, il seguente comando di esempio crea credenziali IAM che possono essere riutilizzate fino alla scadenza.

Puoi archiviare i metadati che sono pertinenti alle esigenze della tua organizzazione con i parametri di richiesta custom_metadata e version_custom_metadata. I valori di version_custom_metadata vengono restituiti solo per le versioni di un segreto. I metadati personalizzati del tuo segreto vengono memorizzati come tutti gli altri metadati, per un massimo di 50 versioni, e non devi includere dati riservati.

curl -X POST
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
      {
        "name": "example-iam-credentials-secret",
        "description": "Description of my IAM Credentials secret",
        "secret_type": "iam_credentials",
        "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
        "labels": [
          "dev",
          "us-south"
        ],
        "ttl": "30m",
        "access_groups": [
          "AccessGroupId-45884031-54be-4dd7-86ff-112511e92699",
          "AccessGroupId-8c0ed733-dfee-4a94-992b-e2247b86e2a2"
        ],
        "reuse_api_key": true,
        "custom_metadata": {
          "metadata_custom_key": "metadata_custom_value"
        },
        "version_custom_metadata": {
          "custom_version_key": "custom_version_value"
        }
      }' \
    "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

Una richiesta riuscita restituisce il valore ID del segreto, insieme ad altri metadati. Quando il segreto raggiunge il termine della sua locazione, le credenziali vengono revocate automaticamente. Per ulteriori informazioni, consulta la Guida di riferimento API.

Se reuse_api_key è false per le credenziali IAM, la rotazione manuale per il segreto non è supportata. Per ulteriori informazioni, vedi Rotazione manuale dei segreti.

Utilizzo di un ID servizio esistente nel tuo account

Potresti già avere un ID servizio nel tuo account che vuoi utilizzare per generare dinamicamente una chiave API. In questo scenario, puoi scegliere di creare un segreto di credenziali IAM portando il proprio ID servizio. Ad esempio, il seguente comando crea una credenziale IAM utilizzando il campo service_id. Per crearlo in un altro account specifico, aggiungere il campo account_id.

Puoi archiviare i metadati che sono pertinenti alle esigenze della tua organizzazione con i parametri di richiesta custom_metadata e version_custom_metadata. I valori di version_custom_metadata vengono restituiti solo per le versioni di un segreto. I metadati personalizzati del tuo segreto vengono memorizzati come tutti gli altri metadati, per un massimo di 50 versioni, e non devi includere dati riservati.

Il valore ID di un ID di servizio si trova nella sezione IAM della console. Andate in Gestione > Accesso (IAM) > ID servizio > nome. Fare clic su Dettagli per visualizzare l'ID.

curl -X POST
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
          "name": "example-iam-credentials-secret",
          "description": "Description of my IAM Credentials secret",
          "secret_type": "iam_credentials",
          "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
          "labels": [
            "dev",
            "us-south"
          ],
          "ttl": "30m",
          "service_id": "ServiceId-c0c7cfa4-b24e-4917-ad74-278f2fee5ba0,
          "reuse_api_key": false,
          "custom_metadata": {
            "metadata_custom_key": "metadata_custom_value"
          },
          "version_custom_metadata": {
            "custom_version_key": "custom_version_value"
          }
        }' \
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

Una richiesta riuscita restituisce il valore ID del segreto, insieme ad altri metadati. Per ulteriori informazioni, consulta la Guida di riferimento API.

Creazione di credenziali IAM con Terraform

Puoi creare le credenziali IAM in modo programmatico utilizzando Terraform per Secrets Manager.

Devi aggiungere un meta - argomento depends_on Terraform e riferirlo alla tua risorsa di configurazione IAM. Il meta - argomento depends_on indica a Terraform di completare tutte le azioni nella configurazione IAM prima di eseguire azioni sui segreti delle credenziali IAM. Quando si crea un segreto delle credenziali IAM trasversale agli account, includere la proprietà account_id, che punta all'account IBM Cloud in cui è stato creato l'ID servizio.

Il seguente esempio mostra una configurazione che puoi utilizzare per creare credenziali IAM.

    resource "ibm_sm_iam_credentials_secret" "test_iam_credentials_secret" {
        instance_id = local.instance_id
        region = local.region
        service_id = "ServiceId-f4b2deac-fbb5-4bf7-85de-88426701db97"
        ttl = "1800"
        name = "test-iam-credentials-secret"
        reuse_api_key = true
        secret_group_id = ibm_sm_secret_group.sm_secret_group_test.secret_group_id
        depends_on = [
            ibm_sm_iam_credentials_configuration.iam_credentials_configuration
        ]
    }

Automatizzate la generazione di credenziali IAM con Terraform IBM Modules (TIM) per Secrets Manager Secret per implementazioni coerenti e controllate dalla versione. Conoscere i moduli Terraform IBM.

Eliminazione delle credenziali IAM

Se disponi di un ID servizio o di una chiave API che è stata generata dal motore di segreto delle credenziali IAM ed elimini la tua istanza di Secrets Manager, devi anche eliminare il segreto da IAM. Per ulteriori informazioni, vedi Gestione delle chiavi API utente.