Gestione delle chiavi API utente
Un utente federato o non federato può creare una chiave API da utilizzare nella CLI o come parte dell'automazione per accedere come identità utente. È possibile utilizzare la console, la CLI o l'API per gestire le chiavi API IBM Cloud® Elencando le chiavi API, creando chiavi, aggiornando chiavi o eliminando chiavi.
La chiave API eredita tutti gli accessi assegnati per l'identità utente per cui viene creata e l'accesso non è limitato solo all'account in cui viene creata la chiave API perché eredita tutte le politiche assegnate all'utente. Quindi, se l'utente ha accesso alle risorse da più account, la chiave API eredita l'accesso da tutti gli account. Pertanto, è possibile che una chiave API di un utente possa essere utilizzata per generare un token e accedere alle risorse a cui un utente ha accesso al di fuori dell'account in cui è stata creata la chiave API.
La chiave API associata all'identità dell'utente dispone di tutti gli accessi a cui l'utente ha diritto in tutti gli account di cui è membro. Per questo motivo, è necessario usare con cautela la propria chiave API. Ad esempio, un servizio IBM Cloud potrebbe dover agire per conto di un utente o accedere a servizi che non sono abilitati all'IAM, quindi il servizio potrebbe richiedere una chiave API utente. In questi casi, crea una chiave API associata a un ID funzionale a cui viene assegnato il livello minimo di accesso richiesto per lavorare con il servizio.
Un ID funzionale è un ID utente creato per rappresentare un programma, un'applicazione o un servizio. L'ID funzionale può essere invitato a un account e assegnato solo all'accesso per un particolare scopo, come l'interazione con una specifica risorsa o applicazione. All'ID funzionale deve essere concesso solo l'accesso di livello minimo in un unico account necessario per la specifica funzione per cui è stato creato.
Se si sta applicando un profilo attendibile, non è possibile creare una chiave API utente. È ancora possibile creare e gestire tutte le altre chiavi API. Ad esempio, le chiavi API dell'ID servizio. Per ulteriori informazioni, consultare le FAQ su IAM.
Gestione delle chiavi API utente
Per gestire le chiavi API IBM Cloud associate alla tua identità utente o quelle a cui hai accesso per altri utenti nell'account, vai a Manage > Access (IAM) > API keys nella console IBM Cloud. Nella pagina delle chiavi API, è possibile creare, modificare o eliminare IBM Cloud Le chiavi API per se stessi. È inoltre possibile gestire tutte le chiavi API dell'infrastruttura classica per gli utenti di cui si è antenati nella gerarchia degli utenti. Inoltre, se sei il proprietario dell'account o un utente a cui è stato assegnato l'accesso richiesto per gestire le chiavi API di un altro utente nell'account, puoi utilizzare il filtro Visualizza per elencare e gestire anche tali chiavi API.
Opzioni di filtro | Chiavi API visualizzate | Accesso richiesto | Azioni consentite |
---|---|---|---|
Le mie chiavi API di IBM Cloud | Le tue chiavi API dell' IBM Cloud | Nessun accesso richiesto | Visualizza, crea, modifica, elimina |
Tutte le chiavi API dell' IBM Cloud e utente | Tutte le chiavi API IBM Cloud create da tutti gli utenti nell'account | Ruolo di amministratore sul servizio IAM Identity | Visualizza, modifica ed elimina |
Creazione di una chiave API nella console
In qualità di utente IBM Cloud, potresti voler utilizzare una chiave API quando abiliti un programma o uno script senza distribuire la tua password allo script. Un vantaggio dell'utilizzo di una chiave API è che un utente o un'organizzazione possono creare diverse chiavi API per programmi differenti. Le chiavi API possono essere eliminate indipendentemente se compromesse senza interferire con altre chiavi API o con l'utente. Puoi creare fino a 20 chiavi API.
Per creare una chiave API per la tua identità utente nell'IU, completa la seguente procedura:
- Nella console di gestione dell' IBM Cloud, vai su Gestisci > Accesso (IAM ) > Chiavi API.
- Fai clic su Crea una chiave API IBM Cloud.
- Immetti un nome e una descrizione per la tua chiave API.
- Fai clic su Crea.
- Fai quindi clic su Mostra per visualizzare la chiave API. In alternativa, fai clic su Copia per copiarla e salvarla per dopo oppure fai clic su Scarica.
Per motivi di sicurezza, la chiave API è disponibile per essere copiata o scaricata solo durante la fase di creazione. Se la chiave API viene persa, dovrai crearne una nuova.
Creazione di una chiave API utilizzando la CLI
Per creare una chiave API utilizzando la CLI, utilizza il seguente comando:
- Inserisci
ibmcloud iam api-key-create NAME [-d DESCRIPTION] [-f, --file FILE] [--action-if-leaked VALUE]
e specifica un nome, una descrizione e un file per salvare la chiave. Vedi il seguente esempio:
ibmcloud iam api-key-create MyKey -d "this is my API key" --file key_file --action-if-leaked "DELETE"
Per --action-if-leaked
, i valori possibili sono "NONE", "DISABLE" o "DELETE". L'azione predefinita è "DISABILITA".
- DISABILITA: la disabilitazione della chiave blocca immediatamente la sua capacità di autenticare e accedere ai servizi. Se necessario, è possibile riabilitare la chiave in un secondo momento.
- CANCELLA: la chiave API viene eliminata definitivamente dall'account e non può più essere utilizzata per l'autenticazione. Questa azione non può essere annullata.
- NESSUNO: La chiave rimane attiva e può essere utilizzata per accedere alle risorse.
Creazione di una chiave API utilizzando l'API
Per creare una chiave API, richiama l'APIIAM Identity Service come mostrato nel seguente esempio:
curl -X POST 'https://iam.cloud.ibm.com/v1/apikeys' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -d '{
"name": "My-apikey",
"description": "my personal key",
"iam_id": "IBMid-123WEREW",
"account_id": "ACCOUNT_ID"
"store_value": false
"action_when_leaked": "delete"
"support_sessions": false
}'
CreateApiKeyOptions createApiKeyOptions = new CreateApiKeyOptions.Builder()
.name(apiKeyName)
.iamId(iamId)
.description("Example ApiKey")
.build();
Response<ApiKey> response = service.createApiKey(createApiKeyOptions).execute();
ApiKey apiKey = response.getResult();
apikeyId = apiKey.getId();
System.out.println(apiKey.toString());
const params = {
name: apikeyName,
iamId: iamId,
description: 'Example ApiKey',
};
iamIdentityService.createApiKey(params)
.then(res => {
apikeyId = res.result.id
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err);
});
api_key = iam_identity_service.create_api_key(
name=apikey_name,
iam_id=iam_id
).get_result()
apikey_id = api_key['id']
print(json.dumps(api_key, indent=2))
createAPIKeyOptions := iamIdentityService.NewCreateAPIKeyOptions(apikeyName, iamID)
createAPIKeyOptions.SetDescription("Example ApiKey")
apiKey, response, err := iamIdentityService.CreateAPIKey(createAPIKeyOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(apiKey, "", " ")
fmt.Println(string(b))
apikeyID = *apiKey.ID
Per action_when_leaked
, i valori possibili sono "none", "disable" o "delete". L'azione predefinita è "disabilita".
- disabilitare: La disabilitazione della chiave blocca immediatamente la sua capacità di autenticare e accedere ai servizi. Se necessario, è possibile riabilitare la chiave in un secondo momento.
- eliminare: La chiave API viene eliminata definitivamente dall'account e non può più essere utilizzata per l'autenticazione. Questa azione non può essere annullata.
- nessuna: La chiave rimane attiva e può essere utilizzata per accedere alle risorse.
Per support_sessions
, definire se è possibile gestire le sessioni di accesso CLI per la chiave API:
- vero: Crea sessioni di accesso per questa chiave API, che si possono gestire rivedendo o revocando le sessioni. Per ulteriori informazioni, vedere Monitoraggio delle sessioni di accesso.
- falso: Non vengono create o tracciate sessioni. Non è possibile revocare o rivedere alcun accesso e per bloccare l'accesso è necessario eliminare o ruotare la chiave API stessa.
Prima di iniziare
Prima di poter gestire le chiavi API degli utenti utilizzando Terraform, assicurarsi di aver completato i seguenti passaggi:
- Installa la CLI Terraform e configurare il plug-in del provider IBM Cloud per Terraform. Per ulteriori informazioni, vedi l'esercitazione per Introduzione a Terraform su IBM Cloud®. Il plug-in astrae le API IBM Cloud utilizzate per completare questa attività.
- Creare un file di configurazione Terraform denominato "
main.tf
". In questo file, si definiscono le risorse utilizzando il linguaggio di configurazione HashiCorp. Per ulteriori informazioni, vedi la documentazione Terraform.
Creazione di una chiave API utilizzando Terraform
Utilizza la seguente procedura per creare gruppi di accesso utilizzando Terraform.
-
Creare un argomento nel file
main.tf
. Il seguente esempio crea un gruppo di accesso utilizzando la risorsaibm_iam_api_key
, dovename
è un nome univoco per identificare la chiave API.resource "ibm_iam_api_key" "iam_api_key" { name = "test1234" }
La proprietà
description
è disponibile solo se viene fornita una descrizione durante la creazione della chiave API. Per ulteriori informazioni, vedi i dettagli di riferimento dell'argomento nella pagina Terraform Identity and Access Management(IAM). -
Dopo aver terminato la creazione del file di configurazione, inizializza la CLI Terraform. Per ulteriori informazioni, consultare la sezione Inizializzazione delle directory di lavoro.
terraform init
-
Eseguire il provisioning delle risorse dal file
main.tf
. Per ulteriori informazioni, vedi Provisioning dell'infrastruttura con Terraform.-
Eseguire
terraform plan
per generare un piano di esecuzione Terraform per visualizzare in anteprima le azioni proposte.terraform plan
-
Eseguire
terraform apply
per creare le risorse definite nel piano.terraform apply
-
Aggiornamento di una chiave API nella console
Se desideri modificare il nome o la descrizione di una chiave API, completa le seguenti istruzioni nella IU o nella CLI.
Per modificare una chiave API, completa la seguente procedura:
- Nella console di gestione dell' IBM Cloud, vai su Gestisci > Accesso (IAM ) > Chiavi API.
- Identifica la riga della chiave API che vuoi aggiornare e fai clic sull'icona Azioni
> Modifica.
- Aggiorna le informazioni per la tua chiave API.
- Fai clic su Apply.
Per modificare una chiave API che non è la tua, ma hai accesso per la gestione, vai alla pagina delle chiavi API. Seleziona quindi l'opzione All user IBM Cloud API keys dal menu View per trovare la chiave API.
Aggiornamento di una chiave API utilizzando la CLI
Per modificare una chiave API utilizzando la CLI, utilizza il seguente comando:
- Inserire
ibmcloud iam api-key-update NAME [-n NAME] [-d DESCRIPTION]
, specificando il vecchio nome, il nuovo nome e la nuova descrizione per la chiave. Per ulteriori informazioni, vedere l'esempio seguente:
ibmcloud iam api-key-update MyCurrentName -n MyNewName -d "the new description of my key"
Aggiornamento di una chiave API utilizzando l'API
Per modificare una chiave API utilizzando la API, richiama la APIIAM Identity Service come mostrato nel seguente esempio:
curl -X PUT 'https://iam.cloud.ibm.com/v1/apikeys/APIKEY_UNIQUE_ID' -H 'Authorization: Bearer TOKEN' -H 'If-Match: <value of etag header from GET request>' -H 'Content-Type: application/json' -d '{
"name": "My-apikey",
"description": "my personal key"
}'
UpdateApiKeyOptions updateApiKeyOptions = new UpdateApiKeyOptions.Builder()
.id(apikeyId)
.ifMatch(apikeyEtag)
.description("This is an updated description")
.build();
Response<ApiKey> response = service.updateApiKey(updateApiKeyOptions).execute();
ApiKey apiKey = response.getResult();
System.out.println(apiKey.toString());
const params = {
id: apikeyId,
ifMatch: apikeyEtag,
description: 'This is an updated description',
};
iamIdentityService.updateApiKey(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err);
});
api_key = iam_identity_service.update_api_key(
id=apikey_id,
if_match=apikey_etag,
description='This is an updated description'
).get_result()
print(json.dumps(api_key, indent=2))
updateAPIKeyOptions := iamIdentityService.NewUpdateAPIKeyOptions(apikeyID, apikeyEtag)
updateAPIKeyOptions.SetDescription("This is an updated description")
apiKey, response, err := iamIdentityService.UpdateAPIKey(updateAPIKeyOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(apiKey, "", " ")
fmt.Println(string(b))
Aggiornamento di una chiave API utilizzando Terraform
Utilizza la seguente procedura per aggiornare una chiave API utilizzando terraform:
-
Nel file di configurazione Terraform
main.tf
, trova il codice Terraform che hai utilizzato per creareiam_api_key
. -
I seguenti aggiornamenti di esempio e la chiave API utilizzando la risorsa
ibm_iam_api_key
, dovename
è un nome univoco per identificare la chiave API.resource "ibm_iam_api_key" "iam_api_key" { name = "test1234" description = "API key for users" }
La proprietà
description
è disponibile solo se viene fornita una descrizione durante la creazione della chiave API. Per ulteriori informazioni, vedi i dettagli di riferimento dell'argomento nella pagina Terraform Identity and Access Management(IAM). -
Eseguire il provisioning delle risorse dal file
main.tf
. Per ulteriori informazioni, vedi Provisioning dell'infrastruttura con Terraform.-
Eseguire
terraform plan
per generare un piano di esecuzione Terraform per visualizzare in anteprima le azioni proposte.terraform plan
-
Eseguire
terraform apply
per creare le risorse definite nel piano.terraform apply
-
Per ulteriori informazioni, vedi la documentazione Terraform.
Blocco e sblocco di una chiave API nella console
Per le chiavi API della piattaforma che rappresentano la tua identità utente, puoi evitarne l'eliminazione eseguendone il blocco. Una chiave API bloccata ha l'icona Bloccata .
- Nella console di gestione dell' IBM Cloud, vai su Gestisci > Accesso (IAM ) > Chiavi API.
- Identifica la riga della chiave API che vuoi bloccare e fai clic sull'icona Azioni
> Blocca.
Puoi sbloccare la tua chiave API in qualsiasi momento per aggiornarla o rimuoverla dal tuo account. Seleziona la chiave API dalla tabella che vuoi sbloccare e fai clic sull'icona Azioni > Sblocca.
Blocco e sblocco di una chiave API utilizzando la CLI
Per le chiavi API della piattaforma che rappresentano la tua identità utente, puoi evitarne l'eliminazione eseguendone il blocco. Per bloccare una chiave API, utilizza il seguente comando:
ibmcloud iam api-key-lock (NAME|UUID) [-f, --force]
Prerequisiti: Endpoint, Accesso
Opzioni comando:
- NAME (required)
- Il nome della chiave API da bloccare, esclusivo con UUID.
- UUID (obbligatorio)
- UUID della chiave API da bloccare, esclusivo con NOME.
- -f, --force
- Forza il blocco senza conferma.
Esempio:
Blocca la chiave API test-api-key
ibmcloud iam api-key-lock test-api-key
Per sbloccare una chiave API, immetti il seguente comando:
ibmcloud iam api-key-unlock (NAME|UUID) [-f, --force]
Prerequisiti: Endpoint, Accesso
Opzioni comando:
- NAME (required)
- Nome della chiave API da sbloccare, esclusivo con UUID.
- UUID (obbligatorio)
- UUID della chiave API da sbloccare, esclusivo con NAME.
- -f, --force
- Forza lo sblocco senza conferma.
Esempio:
Sblocca la chiave API test-api-key
ibmcloud iam api-key-unlock test-api-key
Blocco e sblocco di una chiave API utilizzando l'API
Per le chiavi API della piattaforma che rappresentano la tua identità utente, puoi evitarne l'eliminazione eseguendone il blocco.
Bloccare una chiave API utilizzando l'API
Per bloccare una chiave API utilizzando l'API, richiama l'APIIAM Identity Service come mostrato nel seguente esempio:
curl -X POST 'https://iam.cloud.ibm.com/v1/apikeys/APIKEY_UNIQUE_ID/lock' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json'
LockApiKeyOptions lockApiKeyOptions = new LockApiKeyOptions.Builder()
.id(apikeyId)
.build();
service.lockApiKey(lockApiKeyOptions).execute();
const params = {
id: apikeyId,
};
iamIdentityService.lockApiKey(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err);
});
lock_api_key(self,
id: str,
**kwargs
) -> DetailedResponse
response = iam_identity_service.lock_api_key(id=apikey_id)
print(response)
lockAPIKeyOptions := iamIdentityService.NewLockAPIKeyOptions(apikeyID)
response, err := iamIdentityService.LockAPIKey(lockAPIKeyOptions)
if err != nil {
panic(err)
}
Sblocco di una chiave API
Per sbloccare una chiave API utilizzando l'API, richiama l'APIIAM Identity Service come mostrato nel seguente esempio:
curl -X DELETE 'https://iam.cloud.ibm.com/v1/apikeys/APIKEY_UNIQUE_ID/lock' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json'
UnlockApiKeyOptions unlockApiKeyOptions = new UnlockApiKeyOptions.Builder()
.id(apikeyId)
.build();
service.unlockApiKey(unlockApiKeyOptions).execute();
const params = {
id: apikeyId,
};
iamIdentityService.unlockApiKey(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err);
});
response = iam_identity_service.unlock_api_key(id=apikey_id)
print(response)
unlockAPIKeyOptions := iamIdentityService.NewUnlockAPIKeyOptions(apikeyID)
response, err := iamIdentityService.UnlockAPIKey(unlockAPIKeyOptions)
if err != nil {
panic(err)
}
Blocco e sblocco di una chiave API utilizzando il software Terraform
Per le chiavi API della piattaforma che rappresentano la tua identità utente, puoi evitarne l'eliminazione eseguendone il blocco.
Blocco di una chiave API utilizzando Terraform
Utilizza la seguente procedura per bloccare una chiave API utilizzando Terraform:
-
Nel file di configurazione Terraform
main.tf
, trova il codice Terraform che hai utilizzato per creareiam_api_key
. -
Il seguente esempio aggiorna e la chiave API utilizzando la risorsa
ibm_iam_api_key
, doveentity_lock
indica se la chiave API è bloccata per ulteriori operazioni di scrittura. Il valore predefinito èfalse
.resource "ibm_iam_api_key" "iam_api_key" { entity_lock = "true" }
-
Eseguire il provisioning delle risorse dal file
main.tf
. Per ulteriori informazioni, vedi Provisioning dell'infrastruttura con Terraform.-
Eseguire
terraform plan
per generare un piano di esecuzione Terraform per visualizzare in anteprima le azioni proposte.terraform plan
-
Eseguire
terraform apply
per creare le risorse definite nel piano.terraform apply
-
Per ulteriori informazioni, vedi la documentazione Terraform.
Eliminazione di una chiave API
Se stai utilizzando una strategia di rotazione della chiave, potresti voler eliminare una chiave vecchia e sostituirla con una nuova.
Per eliminare una chiave API, completa la seguente procedura:
- Nella console di gestione dell' IBM Cloud, vai su Gestisci > Accesso (IAM ) > Chiavi API.
- Identifica la riga della chiave API che vuoi eliminare e fai clic sull'icona Azioni
> Elimina.
- Infine, conferma l'eliminazione facendo clic su Elimina.
Per eliminare una chiave API che non è la tua, ma hai accesso per la gestione, vai alla pagina delle chiavi API. Seleziona quindi l'opzione All user IBM Cloud API keys dal menu View per trovare la chiave API.
Eliminazione di una chiave API utilizzando la CLI
Per eliminare una chiave API utilizzando la CLI:
Inserire ibmcloud iam api-key-delete NAME
, specificando il nome della chiave da eliminare.
Eliminazione di una chiave API utilizzando l'API
Per eliminare una chiave API utilizzando la API, richiama la APIIAM Identity Service come mostrato nel seguente esempio:
curl -X DELETE 'https://iam.cloud.ibm.com/v1/apikeys/APIKEY_UNIQUE_ID' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json'
DeleteApiKeyOptions deleteApiKeyOptions = new DeleteApiKeyOptions.Builder()
.id(apikeyId)
.build();
service.deleteApiKey(deleteApiKeyOptions).execute();
const params = {
id: apikeyId,
};
iamIdentityService.deleteApiKey(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err);
});
delete_api_key(self,
id: str,
**kwargs
) -> DetailedResponse
response = iam_identity_service.delete_api_key(id=apikey_id)
print(response)
deleteAPIKeyOptions := iamIdentityService.NewDeleteAPIKeyOptions(apikeyID)
response, err := iamIdentityService.DeleteAPIKey(deleteAPIKeyOptions)
if err != nil {
panic(err)
}