Gestione delle chiavi API utente
Un utente federato o non federato può creare una chiave API da usare 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 di IBM Cloud® elencando le chiavi, creando chiavi, aggiornando chiavi o eliminando chiavi.
La chiave API eredita tutti gli accessi assegnati all'identità dell'utente per cui è stata creata e l'accesso non è limitato al solo account in cui la chiave API è stata creata, poiché eredita tutti i criteri assegnati 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 la chiave API di un utente possa essere utilizzata per generare un token e accedere a risorse a cui l'utente ha accesso al di fuori dell'account in cui è stata creata la chiave API.
La chiave API associata all'identità dell'utente ha 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 di IBM Cloud potrebbe aver bisogno di agire per conto di un utente o di accedere a servizi che non sono abilitati allo IAM, quindi il servizio potrebbe richiedere una chiave API dell'utente. In questi casi, creare una chiave API associata a un ID funzionale a cui è 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 gli viene assegnato solo l'accesso per uno scopo particolare, come l'interazione con una risorsa o un'applicazione specifica. All'ID funzionale deve essere concesso solo il livello minimo di accesso in un singolo account, necessario per la funzione specifica per cui è stato creato.
Se si applica un profilo di fiducia, non è possibile creare una chiave API utente. È comunque possibile creare e gestire tutte le altre chiavi API. Ad esempio, le chiavi API dell'ID del servizio. Per ulteriori informazioni, consultare il sito Domande frequenti su IAM.
Gestione delle chiavi API utente
Per gestire le chiavi API IBM Cloud associate alla propria identità utente o quelle che si ha accesso a gestire per altri utenti dell'account, andare su Gestione > Accesso (IAM) > Chiavi API nella console IBM Cloud. Nella pagina delle chiavi API è possibile creare, modificare o eliminare le chiavi API di IBM Cloud. È inoltre possibile gestire tutte le chiavi API dell'infrastruttura classica per gli utenti di cui si è antenati nella gerarchia degli utenti. Inoltre, se si è il proprietario dell'account o un utente a cui è stato assegnato l'accesso richiesto per gestire le chiavi API di altri utenti nell'account, è possibile 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 IBM Cloud | Le chiavi API di IBM Cloud | Non è richiesto l'accesso | Visualizzare, creare, modificare, cancellare |
| Tutti gli utenti IBM Cloud Chiavi API | Tutte le chiavi API di IBM Cloud create da tutti gli utenti dell'account | Ruolo di amministratore sul servizio IAM Identity | Visualizzare, modificare ed eliminare |
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'uso di una chiave API è che un utente o un'organizzazione può creare più chiavi API per programmi diversi. Le chiavi API possono essere eliminate in modo indipendente se compromesse, senza interferire con altre chiavi API o addirittura 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 IBM Cloud, andare su Gestione > 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:
- Immettere
ibmcloud iam api-key-create NAME [-d DESCRIPTION] [-f, --file FILE] [--action-if-leaked VALUE]e specificare un nome, una descrizione e un file per il salvataggio della 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 è "DISABLE".
- 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.
Creare una chiave API utilizzando l'API
Per creare una chiave API, chiamare l'API IAM Identity Service come mostrato nell'esempio seguente:
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 autenticazione e di accesso 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:
- Installare la CLI di Terraform e configurare il plug-in IBM Cloud Provider per Terraform. Per ulteriori informazioni, vedere il tutorial su Come iniziare con Terraform su IBM Cloud®. Il plug-in astrae le API di IBM Cloud che vengono utilizzate per completare questo compito.
- Creare un file di configurazione di Terraform chiamato
main.tf. In questo file si definiscono le risorse utilizzando il linguaggio di configurazione HashiCorp. Per ulteriori informazioni, consultare il sito Documentazione di Terraform.
Creare una chiave API utilizzando Terraform
Per creare gruppi di accesso con Terraform, procedere come segue.
-
Creare un argomento nel file
main.tf. L'esempio seguente 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, vedere i dettagli di riferimento degli argomenti nella pagina di Terraform Identity and Access Management(IAM). -
Dopo aver completato la creazione del file di configurazione, inizializzare la CLI di Terraform. Per ulteriori informazioni, vedere Inizializzazione delle directory di lavoro.
terraform init -
Predisporre le risorse dal file
main.tf. Per ulteriori informazioni, vedere Provisioning dell'infrastruttura con Terraform.-
Eseguire
terraform planper generare un piano di esecuzione di Terraform per visualizzare in anteprima le azioni proposte.terraform plan -
Eseguire
terraform applyper 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 IBM Cloud, andare su Gestione > Accesso (IAM) > Chiavi API.
- Identificare la riga della chiave API che si desidera aggiornare e fare clic sull'icona Azioni
Azioni > Modifica.
- Aggiorna le informazioni per la tua chiave API.
- Fai clic su Apply.
Per modificare una chiave API non propria, ma che si ha accesso a gestire, andare alla pagina delle chiavi API. Quindi, selezionare l'opzione Tutte le chiavi API dell'utente IBM Cloud dal menu Visualizza per trovare la chiave API.
Aggiornamento di una chiave API tramite la CLI
Per modificare una chiave API utilizzando la CLI, utilizza il seguente comando:
- Immettere
ibmcloud iam api-key-update NAME [-n NAME] [-d DESCRIPTION], specificando il vecchio nome, il nuovo nome e la nuova descrizione della 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 tramite l'API
Per modificare una chiave API utilizzando l'API, chiamare l'API IAM Identity Service come mostrato nell'esempio seguente:
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))
Aggiornare una chiave API utilizzando Terraform
Per aggiornare una chiave API utilizzando terraform, procedere come segue:
-
Nel file di configurazione di Terraform
main.tf, trovare il codice di Terraform utilizzato per creare il sitoiam_api_key. -
L'esempio seguente aggiorna una 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, vedere i dettagli di riferimento degli argomenti nella pagina di Terraform Identity and Access Management(IAM). -
Predisporre le risorse dal file
main.tf. Per ulteriori informazioni, vedere Provisioning dell'infrastruttura con Terraform.-
Eseguire
terraform planper generare un piano di esecuzione di Terraform per visualizzare in anteprima le azioni proposte.terraform plan -
Eseguire
terraform applyper creare le risorse definite nel piano.terraform apply
-
Per ulteriori informazioni, consultare il sito Documentazione di 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 IBM Cloud, andare su Gestione > Accesso (IAM) > Chiavi API.
- Identificare la riga della chiave API che si desidera bloccare e fare clic sull'icona Azioni
Azioni > Blocca.
Puoi sbloccare la tua chiave API in qualsiasi momento per aggiornarla o rimuoverla dal tuo account. Selezionare la chiave API dalla tabella che si desidera sbloccare e fare clic sull'icona Azioni 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, esclusiva con UUID.
- UUID (obbligatorio)
- UUID della chiave API da bloccare, in esclusiva con NAME.
- -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 tramite 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, chiamare l'API IAM Identity Service come mostrato nell'esempio seguente:
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)
}
Sbloccare una chiave API
Per sbloccare una chiave API utilizzando l'API, chiamare l'API IAM Identity Service come mostrato nell'esempio seguente:
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)
}
Bloccare e sbloccare una chiave API usando Terraform
Per le chiavi API della piattaforma che rappresentano la tua identità utente, puoi evitarne l'eliminazione eseguendone il blocco.
Bloccare una chiave API utilizzando Terraform
Usare i seguenti passaggi per bloccare una chiave API usando Terraform:
-
Nel file di configurazione di Terraform
main.tf, trovare il codice di Terraform utilizzato per creare il sitoiam_api_key. -
L'esempio seguente aggiorna una chiave API utilizzando la risorsa
ibm_iam_api_key, doveentity_lockindica 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" } -
Predisporre le risorse dal file
main.tf. Per ulteriori informazioni, vedere Provisioning dell'infrastruttura con Terraform.-
Eseguire
terraform planper generare un piano di esecuzione di Terraform per visualizzare in anteprima le azioni proposte.terraform plan -
Eseguire
terraform applyper creare le risorse definite nel piano.terraform apply
-
Per ulteriori informazioni, consultare il sito Documentazione di 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 IBM Cloud, andare su Gestione > Accesso (IAM) > Chiavi API.
- Identificare la riga della chiave API che si desidera eliminare e fare clic sull'icona Azioni
Azioni > Elimina.
- Infine, conferma l'eliminazione facendo clic su Elimina.
Per eliminare una chiave API non propria, ma che si ha accesso a gestire, andare alla pagina delle chiavi API. Quindi, selezionare l'opzione Tutte le chiavi API dell'utente IBM Cloud dal menu Visualizza per trovare la chiave API.
Eliminazione di una chiave API tramite la CLI
Per eliminare una chiave API utilizzando la CLI:
Immettere ibmcloud iam api-key-delete NAME, specificando il nome della chiave da eliminare.
Eliminazione di una chiave API tramite l'API
Per eliminare una chiave API utilizzando l'API, chiamare l'API IAM Identity Service come mostrato nell'esempio seguente:
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)
}
Esaminare le chiavi API degli utenti trapelate utilizzando la console
Se viene rilevata una chiave API utente trapelata, è possibile utilizzare la console per esaminarla. Completa i seguenti passi:
- Accedi alla console IBM Cloud.
- Selezionare l'account che contiene la chiave API trapelata.
- Andare su Gestione > Accesso > Chiavi API per esaminare la chiave API trapelata.
Esaminare le chiavi API degli utenti trapelate utilizzando la CLI
Se viene rilevata una chiave API utente trapelata, è possibile utilizzare la CLI per esaminarla. Completa i seguenti passi:
-
Accedi alla CLI IBM Cloud.
-
Selezionare l'account che contiene la chiave API trapelata.
-
Esegui il seguente comando:
ibmcloud iam api-key <API_key_ID>