Configurazione del motore delle credenziali IAM
È possibile impostare le credenziali IAM per l'istanza del servizio IBM Cloud® Secrets Manager configurando il motore delle credenziali IAM.
In Secrets Manager, il motore delle credenziali IAM serve come backend per il tipo di segreto iam_credentials. Prima di poter creare le credenziali IAM, devi configurare il motore delle credenziali IAM per la tua istanza del servizio.
È possibile abilitare l'istanza creando un'autorizzazione al servizio IAM, oppure inserendo una chiave API associata a un ID di servizio nel proprio
account IBM Cloud.
Quando si utilizza una chiave API per la configurazione del motore, il token di accesso generato ha una durata di 60 minuti e continuerà a funzionare anche se la chiave API viene eliminata da IAM. Può essere modificato modificando la scadenza del token nelle impostazioni IAM. Ulteriori informazioni. Tieni presente che se l'entità correlata alla chiave API viene eliminata, il token viene invalidato immediatamente.
Quando si utilizza l'autorizzazione del servizio IAM per la configurazione del motore, è possibile creare e gestire i segreti delle credenziali IAM nello stesso account IBM Cloud dell'istanza Secrets Manager, nonché da altri account. La configurazione della chiave API funziona solo con l'account a cui appartiene l'istanza Secrets Manager.
Prima di iniziare
Per configurare il motore delle credenziali IAM, assicurarsi che sia stato assegnato il Direttore ruolo del servizio sull'istanza Secrets Manager.
Se si configura il motore di credenziali IAM con una chiave API, è necessaria una chiave API ID servizio con il seguente accesso:
- Ruolo della piattaforma Editor nel servizio gruppi di accesso IAM.
- Operatore ruolo della piattaforma sul servizio IAM Identity Service.
- Service ID creator service role sul servizio IAM Identity Service. Il ruolo del servizio creatore dell'ID servizio è richiesto solo quando disabiliti la creazione degli ID servizio nelle tue impostazioni IAM.
Se si configura il motore delle credenziali IAM con l'autorizzazione del servizio IAM, Secrets Manager aggiunge le seguenti due politiche di autorizzazione per conto dell'utente.
- Membro del servizio Gruppi Gestisce il ruolo della piattaforma sul servizio IAM Access Groups Service.
- Operatore ruolo della piattaforma per il servizio IAM Identity Service.
- Service ID creator service role sul servizio IAM Identity Service. Il ruolo del servizio creatore dell'ID servizio è richiesto solo quando disabiliti la creazione degli ID servizio nelle tue impostazioni IAM.
Se l'account in cui si desidera generare le credenziali IAM consente l'accesso da indirizzi IP specifici, è necessario aggiornare anche le impostazioni dell'indirizzo IP nell'account per consentire le richieste in entrata da Secrets Manager. Per ulteriori informazioni, vedi Gestione dell'accesso con restrizioni basate sul contesto.
Configurazione del motore delle credenziali IAM nella IU
Utilizzo dell'autorizzazione del servizio IAM
Completare i seguenti passaggi per configurare il motore delle credenziali IAM utilizzando l'autorizzazione del servizio IAM.
Per gestire le credenziali IAM dallo stesso account IBM Cloud dell'istanza Secrets Manager:
- Nella pagina Secrets engines, fai clic sulla scheda IAM credentials.
- Fai clic su Autorizza.
- Fai clic su Configure.
Per gestire le credenziali IAM da un altro account IBM Cloud, creare manualmente le autorizzazioni del servizio IAM.
Per il criterio di autorizzazione IAM Identity Service:
- Nell'account in cui si desidera gestire le credenziali IAM, andare su Gestione > Accesso (IAM).
- Selezionare Autorizzazioni dal menu del pannello sinistro.
- Fai clic su Crea.
- In Origine selezionare Account specifico e fornire l'ID dell'account a cui appartiene l'istanza Secrets Manager.
- Servizio: Secrets Manager.
- Risorse: Risorse specifiche > Istanza di servizio e fornire l'ID dell'istanza di servizio per l'istanza Secrets Manager.
- In corrispondenza di Target selezionare
- Servizio: IAM Identity Service
- Risorse: Tutti
- Ruoli: Operatore
Per il criterio di autorizzazione IAM Access Groups Service:
- Nell'account in cui si desidera gestire le credenziali IAM, andare su Gestione > Accesso (IAM).
- Selezionare Autorizzazioni dal menu del pannello sinistro.
- Fai clic su Crea.
- In Origine selezionare Account specifico e fornire l'ID dell'account a cui appartiene l'istanza Secrets Manager.
- Servizio: Secrets Manager.
- Risorse: Risorse specifiche > Istanza di servizio e fornire l'ID dell'istanza di servizio per l'istanza Secrets Manager.
- In corrispondenza di Target selezionare
- Servizio: Servizio Gruppi di accesso IAM
- Risorse: Tutti
- Ruoli: Gruppo Gestione membri del servizio
Utilizzo della chiave API
Completare i seguenti passaggi per configurare il motore delle credenziali IAM utilizzando la chiave API di un Service ID.
- Nella pagina Secrets engines, fai clic sulla scheda IAM credentials.
- Fare clic su Configura motore credenziali IAM con chiave API.
- Immettere una chiave API che abbia accesso per creare e gestire altre chiavi API nel proprio account.
- Fai clic su Configure.
Configurazione del motore di credenziali IAM dalla CLI
Utilizzo dell'autorizzazione del servizio IAM
Completare i passaggi seguenti per configurare il motore delle credenziali IAM utilizzando un'autorizzazione del servizio IAM.
Per gestire le credenziali IAM dallo stesso account IBM Cloud dell'istanza Secrets Manager, eseguire i seguenti comandi per aggiungere le necessarie politiche di autorizzazione del servizio IAM:
ibmcloud iam authorization-policy-create secrets-manager iam-identity "Service ID Creator, Operator" --source-service-instance-id SOURCE_SERVICE_INSTANCE_GUID
ibmcloud iam authorization-policy-create secrets-manager iam-groups "Groups Service Member Manage" --source-service-account SOURCE_SERVICE_INSTANCE_GUID
- Sostituire SOURCE_SERVICE_INSTANCE_GUID con l'ID del servizio di istanza Secrets Manager. Se non viene fornita, l'autorizzazione si applica a tutte le istanze Secrets Manager
Per gestire le credenziali IAM da un altro account IBM Cloud: includere anche il parametro ACCOUNT_GUID.
- Accedere all'account IBM Cloud con gli ID dei servizi che si desidera gestire.
- Eseguire i seguenti comandi per aggiungere i criteri di autorizzazione del servizio IAM richiesti:
ibmcloud iam authorization-policy-create secrets-manager iam-identity "Service ID Creator, Operator" --source-service-instance-id SOURCE_SERVICE_INSTANCE_GUID --source-service-account ACCOUNT_GUID
ibmcloud iam authorization-policy-create secrets-manager iam-groups "Groups Service Member Manage" --source-service-account SOURCE_SERVICE_INSTANCE_GUID --source-service-instance-id ACCOUNT_GUID
- Sostituire SOURCE_SERVICE_INSTANCE_GUID con l'ID del servizio di istanza Secrets Manager. Se non viene fornita, l'autorizzazione si applica a tutte le istanze Secrets Manager
- Sostituire ACCOUNT_GUID con l'ID dell'account IBM Cloud in cui si desidera creare i segreti delle credenziali IAM.
Utilizzo della chiave API
Completare i passaggi seguenti per configurare il motore delle credenziali IAM utilizzando la chiave API di un Service ID.
-
In una finestra del terminale, accedi a IBM Cloud tramite la CLIIBM Cloud.
ibmcloud login -
Seleziona l'account, la regione e il gruppo di risorse in cui si trova la tua istanza del servizio Secrets Manager.
-
Crea un ID servizio e impostalo come variabile di ambiente.
export SERVICE_ID=`ibmcloud iam service-id-create <service_ID_name> --description "<description>" --output json | jq -r ".id"`; echo $SERVICE_ID -
Gestire l'accesso per l'ID servizio.
Assegnare le autorizzazioni ID servizio per creare e gestire altri ID servizio.
ibmcloud iam service-policy-create $SERVICE_ID --roles Operator --service-name "iam-identity"Assegna le autorizzazioni ID servizio per la visualizzazione e l'aggiornamento dei gruppi di accesso nel tuo account.
ibmcloud iam access-group-policy-create $SERVICE_ID --roles Editor --service-name "iam-groups"Aggiungi l'ID servizio a un gruppo di accesso nel tuo account.
ibmcloud iam access-group-service-id-add <access_group_name> $SERVICE_IDCreare una chiave API IBM Cloud per l'ID del servizio.
export IBM_CLOUD_API_KEY=`ibmcloud iam service-api-key-create <API_key_name> $SERVICE_ID --description "<description>" --output json | jq -r ".apikey"` -
Utilizzare la chiave API per configurare il motore delle credenziali IAM per la propria istanza.
Per configurare un motore di segreti dalla CLI IBM Cloud, esegui il comando
ibmcloud secrets-manager configuration-create.ibmcloud secrets-manager configuration-create --configuration-prototype='{"config_type": "iam_credentials_configuration","name": "iam-configuration","api_key": "'$IBM_CLOUD_API_KEY'"}'Utilizzando il prompt dei comandi di Windows™ (
cmd.exe) o il programma di gestione delle risorse PowerShell? Se riscontri degli errori durante la trasmissione del contenuto JSON sulla riga di comando, potresti dover regolare le stringhe per i requisiti di escape delle virgolette specifici del tuo sistema operativo. Per ulteriori informazioni, vedere Uso delle virgolette con le stringhe nella CLI di IBM Cloud.
Configurazione del motore delle credenziali IAM con la API
Per le istruzioni passo-passo per creare una chiave API IBM Cloud con il livello di accesso corretto, passare ai passaggi dell'interfaccia utente o della CLI.
Utilizzo dell'autorizzazione del servizio IAM
L'esempio seguente mostra una query che si può usare per configurare il motore delle credenziali IAM per la propria istanza quando si usa l'autorizzazione del servizio IAM. Per saperne di più, consultate IBM Cloud i Documenti sulle API di IAM.
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "$SOURCE_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "secrets-manager"
},
{
"name": "serviceInstance",
"value": "$INSTANCE_GUID"
}
]
}
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam-identity::::serviceRole:ServiceIdCreator"
},
{
"role_id": "crn:v1:bluemix:public:iam::::role:Operator"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$TARGET_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "iam-identity"
}
]
}
]
}'
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "$SOURCE_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "secrets-manager"
},
{
"name": "serviceInstance",
"value": "$INSTANCE_GUID"
}
]
}
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam-groups::::serviceRole:MemberManage"
}
],
"resources":[
{
"attributes": [
{
"name":"$TARGET_ACCOUNT_ID",
"value": "791f5fb10986423e97aa8512f18b7e65"
},
{
"name": "serviceName",
"value": "iam-groups"
}
]
}
]
}'
L'attributo serviceInstance è facoltativo. Se si omette, l'autorizzazione si applica a tutte le istanze di Secrets Manager. Il SOURCE_ACCOOUNT_ID e TARGET_ACCOUNT_ID sono necessari se si crea l'autorizzazione per il conto corrente o per un conto specifico.
Utilizzo della chiave API
L'esempio seguente mostra una query che si può usare per configurare il motore delle credenziali IAM per la propria istanza usando una chiave API. Quando richiami l'API, sostituisci le variabili chiave API e il token IAM con i valori specifici della tua istanza Secrets Manager.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"api_key": "{iam_apikey}", "config_type": "iam_credentials_configuration",
"name": "iam-configuration"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"
Una risposta corretta restituisce il valore ID del segreto, insieme ad altri metadati. Per ulteriori informazioni sui parametri di richiesta obbligatori e facoltativi, vedi Crea un segreto.
Configurazione del motore delle credenziali IAM con Terraform
Utilizzo dell'autorizzazione del servizio IAM
L'esempio seguente mostra una query che si può usare per configurare il motore delle credenziali IAM per l'istanza Secrets Manager quando si usa un'autorizzazione del servizio IAM.
resource "ibm_iam_authorization_policy" "sm_to_iam_identity" {
source_service_name = "secrets-manager"
source_service_account = local.source_account_id
source_resource_instance_id = local.instance_id
target_service_name = "iam-identity"
roles = ["Service ID creator", "Operator"]
}
resource "ibm_iam_authorization_policy" "sm_to_iam_groups" {
source_service_name = "secrets-manager"
source_service_account = local.source_account_id
source_resource_instance_id = local.instance_id
target_service_name = "iam-groups"
roles = ["Groups Service Member Manage"]
}
L'attributo source_resource_instance_id è facoltativo. Se si omette, l'autorizzazione si applica a tutte le istanze di Secrets Manager. L'attributo source_service_account è facoltativo.
Può essere omesso se il conto sorgente è lo stesso del conto corrente.
Utilizzo della chiave API
Per le istruzioni passo-passo per creare una chiave API IBM Cloud con il livello di accesso corretto, passare ai passaggi dell'interfaccia utente o della CLI.
L'esempio seguente mostra una configurazione che può essere utilizzata per configurare il motore delle credenziali IAM utilizzando la chiave API di un ID servizio.
resource "ibm_sm_iam_credentials_configuration" "iam_credentials_configuration" {
instance_id = local.instance_id
region = local.region
name = "iam_credentials_config"
api_key = var.ibmcloud_api_key
}
Configurare il motore delle credenziali IAM in modo programmatico con Secrets Manager IAM Engine. Vedere Moduli Terraform IBM per esempi di configurazione.
Recupero del valore di configurazione di un motore di credenziali IAM nell'interfaccia utente
Puoi recuperare la configurazione di un motore utilizzando l'IU Secrets Manager. Il recupero di una configurazione è valido solo quando si configura il motore delle credenziali IAM con una chiave API.
- Nel motore di segreti Credenziali IAM, fare clic sul menu Azioni
per aprire un elenco di opzioni per la configurazione del motore.
- Per visualizzare il valore di configurazione, fare clic su Visualizza configurazione.
- Fare clic su Conferma dopo essersi assicurati di essere in un ambiente sicuro.
Il valore segreto viene visualizzato per 15 secondi, quindi la finestra di dialogo viene chiusa.
Recupero del valore di configurazione di un motore utilizzando la CLI
Puoi richiamare la configurazione di un motore utilizzando la CLI Secrets Manager. Nel seguente comando di esempio, sostituire il nome della configurazione del motore con il proprio nome della configurazione. Il recupero di una configurazione è valido solo quando si configura il motore delle credenziali IAM con una chiave API.
ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud
Sostituisci {instance_ID} e {region} con i valori che si applicano alla tua istanza del servizio Secrets Manager. Per trovare l' URL e endpoint specifico per la tua istanza, puoi copiarlo dalla pagina Endpoints nell'interfaccia utente di Secrets Manager. Per ulteriori informazioni, vedi Visualizzazione degli URL degli endpoint
Richiamo del valore di configurazione di un motore utilizzando l'API
Puoi recuperare la configurazione di un motore utilizzando l'API Secrets Manager. Nella seguente richiesta di esempio, sostituire il nome di configurazione del motore con il proprio nome di configurazione. Il recupero di una configurazione è valido solo quando si configura il motore delle credenziali IAM con una chiave API.
curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"
Sostituisci {instance_ID} e {region} con i valori che si applicano alla tua istanza del servizio Secrets Manager. Per trovare l' URL e endpoint specifico per la tua istanza, puoi copiarlo dalla pagina Endpoints nell'interfaccia utente di Secrets Manager. Per ulteriori informazioni, vedi Visualizzazione degli URL degli endpoint
Una risposta corretta restituisce il valore della configurazione motore, insieme ad altri metadati. Per ulteriori informazioni sui parametri di richiesta obbligatori e opzionali, vedere Get configuration.
Passi successivi
Ora si può usare Secrets Manager per generare le credenziali IAM. Nell'interfaccia utente Secrets Manager, fai clic su Secrets> Add> IAM credentials per avviare la creazione dei segreti.
- Creazione delle credenziali IAM
- Automatizzate la configurazione del motore IAM di Secrets Manager utilizzando il modulo Secrets Manager IAM Engine.