Gestione degli utenti di un account
Utilizzate IBM Cloud® Identity and Access Management (IAM) per gestire gli utenti del vostro account. È possibile invitare gli utenti, annullare gli inviti, rimuovere un utente da un account o aggiornare il sito IBMid.
Tutti gli utenti devono accettare un invito per diventare utenti attivi all'interno di un nuovo account. Per ulteriori informazioni, vedere Annullamento o reinvio di inviti in attesa
Prima di iniziare
Invito di utenti in un account
Per invitare gli utenti e gestire gli inviti in sospeso, è necessario disporre di almeno uno dei seguenti tipi di accesso. Solo gli utenti possono invitare altri. Se si utilizza un ID servizio per l'autenticazione, non è possibile invitare nuovi utenti all'account.
- Proprietario account
- Una politica IAM con il ruolo di editor o superiore sul servizio di gestione dell'account di gestione utenti.
- L'infrastruttura classica di Gestione utenti consente di aggiungere utenti
A seconda del tuo livello di accesso, puoi invitare nuovi utenti e assegnare tutti o soltanto alcuni tipi di accesso.
Prima di poter invitare gli utenti tramite Terraform, accertarsi di aver completato quanto segue:
- 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.
Rimozione degli utenti da un account
Solo i proprietari degli account e gli utenti con l'accesso corretto possono rimuovere gli altri. Se si utilizza un ID servizio per l'autenticazione, non è possibile rimuovere gli utenti dall'account. Per rimuovere gli utenti da un account è necessario il seguente accesso:
- Un criterio di gestione dell'identità e degli accessi (IAM) per il servizio di gestione degli account di gestione degli utenti con il ruolo di amministratore assegnato.
- Se nell'account è presente un'infrastruttura classica, un utente deve avere un criterio IAM per il servizio Gestione account utenti con il ruolo di Amministratore assegnato ed essere un antenato dell'utente nella gerarchia degli utenti dell'infrastruttura classica con l'autorizzazione Gestisci utente infrastruttura classica assegnata.
La modifica di un utente IBMid
Per modificare un IBMid, l'ID sostitutivo deve già esistere. Se non si è sicuri che il nuovo IBMid esista, gli utenti possono andare su My IBM e cliccare su Create an IBMid. Se si inserisce un indirizzo e-mail che corrisponde a un dominio del provider di identità federate ( IdP ), IBMid reindirizza l'utente alla pagina di accesso IdP's. Il primo accesso al sito IBM® utilizzando un sito federato IdP comporta la creazione di un nuovo sito IBMid. Altrimenti, seguire i passaggi per creare l'ID. L'indirizzo e-mail utilizzato diventa il nuovo indirizzo sostitutivo dell'utente IBMid.
Invitare gli utenti nella console
Per invitare gli utenti, completa la seguente procedura:
- Nella console IBM Cloud, fare clic su Gestisci > Accesso (IAM) e selezionare Utenti.
- Fai clic su Invita utenti.
- Specifica gli indirizzi e-mail degli utenti. Se inviti più di un utente con un singolo invito, a tutti viene assegnato lo stesso accesso. È possibile limitare l'accesso al proprio account in base al dominio degli utenti invitati. In questo modo, solo gli utenti di un dominio specifico possono essere invitati all'account. Per ulteriori informazioni, vedere Limitare i domini utente per gli inviti agli account.
Gli utenti non possono essere invitati automaticamente negli account gestiti dalle aziende e devono essere aggiunti manualmente.
- Aggiungi una o più delle opzioni di accesso che gestisci. Devi assegnare almeno un'opzione di accesso. Per tutte le opzioni di accesso che non aggiungi e configuri, viene assegnato il valore predefinito Nessun accesso. A seconda
delle opzioni che sei autorizzato a gestire, puoi assegnare i seguenti tipi di accesso:
- Aggiungi gli utenti ai gruppi di accesso. Fai clic su Aggiungi per ogni gruppo di accesso a cui vuoi appartengano gli utenti.
- Assegna manualmente l'accesso agli utenti. Espandere la sezione per assegnare i singoli criteri di accesso IAM o le autorizzazioni classiche dell'infrastruttura.
- Seleziona Infrastruttura classica e poi scegli tra le tre serie di autorizzazioni.
- Selezionare un gruppo di servizi, come Tutti i servizi di identità e accesso abilitati, Tutti i servizi di gestione degli account e Tutti i servizi di gestione degli account IAM, oppure un servizio specifico. Poi, è possibile limitare l'accesso all'intero account o a un solo gruppo di risorse. Quindi, seleziona tutti i ruoli da applicare. Per visualizzare le azioni mappate a ciascun ruolo, fare clic sui numeri elencati accanto a ciascun ruolo. Alcuni servizi supportano l'utilizzo di operatori avanzati per concedere l'accesso alle risorse che soddisfano specifiche convenzioni di denominazione. Per ulteriori informazioni, vedi Assegnazione dell'accesso utilizzando politiche con caratteri jolly.
- Seleziona Gestione account e poi scegli tra tutte le opzioni di servizi di gestione dell'account o seleziona un servizio specifico. Quindi, seleziona tutti i ruoli da applicare.
- Seleziona Aggiungi per salvare l'assegnazione dell'accesso per l'invito.
- Dopo aver aggiunto tutte le assegnazioni dell'accesso necessarie, fai clic su Invita.
È possibile annullare un invito per tutti gli utenti che sono visualizzati in stato di elaborazione o in attesa nella colonna Stato della pagina Utenti. Se un utente invitato non riceve un invito, puoi reinviare l'invito a tutti gli utenti nello stato In sospeso. È possibile aggiungere altri criteri e autorizzazioni solo dopo che l'utente ha accettato l'invito.
Aggiunta di utenti solo VPN
Qualsiasi utente con le seguenti autorizzazioni può aggiungere un utente solo VPN:
- Per l'infrastruttura classica, è necessario disporre dell'autorizzazione di Gestione utenti sull'account.
- Per l'accesso IAM, è necessario avere il ruolo di Amministratore o Editor sul servizio di gestione degli account di gestione degli utenti.
Per aggiungere un utente solo VPN, procedere come segue:
- Nella pagina Utenti, fai clic su Aggiungi utente solo VPN.
- Immetti i dettagli delle informazioni personali per l'utente.
- Fare clic su Salva.
Invito degli utenti tramite la CLI
Per invitare gli utenti utilizzando la CLI, eseguire il seguente comando:
ibmcloud account user-invite USER_EMAIL [--access-groups ACCESS_GROUP_1,ACCESS_GROUP_2...]
Utilizzando la CLI, si può scegliere di non assegnare l'accesso e di lavorare sull'assegnazione dell'accesso in un secondo momento. Per ulteriori informazioni sui parametri del comando, vedi ibmcloud account user-invite.
Invito degli utenti tramite l'API
È possibile utilizzare l'API per invitare utenti in massa. A tutti gli utenti inclusi in un solo invito viene assegnato lo stesso accesso. Quando si invitano gli utenti utilizzando l'API, si inseriscono le e-mail in un elenco separato da virgole con ogni voce circondata da virgolette. Questo esempio assegna l'accesso aggiungendo l'utente a un gruppo di accesso.
curl -X POST https://user-management.cloud.ibm.com/v2/accounts/987d4cfd77b04e9b9e1a6asdcc861234/users -H 'Authorization: Bearer <IAM_TOKEN>'
-H 'Content-Type: application/json' -d '{
"users": [
{
"email": "cloud_api_example_member@ibm.com",
"account_role": "Member"
}],
"iam_policy": [{
"type": "access",
"roles": [{
"role_id": "crn:v1:bluemix:public:iam::::role:Viewer"
}],
"resources": [{
"attributes": [{
"name": "accountId",
"value": "987d4cfd77b04e9b9e1a6asdcc861234"
},
{
"name": "resourceType",
"value": "resource-group"
},
{
"name": "resource",
"value": "2c7449dd871049c29ec3a53853ce123e"
}
]
}]
}],
"access_groups":[
"AccessGroupId-******-0f54-4d4f-89c2-e5fdc0b9a28c",
"AccessGroupId-******-3087-4395-a382-a8e8ff9ccc23"
]
}'
InviteUser inviteUserModel = new InviteUser.Builder()
.email(memberEmail)
.accountRole("Member")
.build();
Role roleModel = new Role.Builder()
.roleId(viewerRoleId)
.build();
Attribute attributeModel = new Attribute.Builder()
.name("accountId")
.value(accountId)
.build();
Attribute attributeModel2 = new Attribute.Builder()
.name("resourceGroupId")
.value("*")
.build();
Resource resourceModel = new Resource.Builder()
.addAttributes(attributeModel)
.addAttributes(attributeModel2)
.build();
InviteUserIamPolicy inviteUserIamPolicyModel = new InviteUserIamPolicy.Builder()
.type("access")
.addRoles(roleModel)
.addResources(resourceModel)
.build();
InviteUsersOptions inviteUsersOptions = new InviteUsersOptions.Builder()
.accountId(accountId)
.addUsers(inviteUserModel)
.addIamPolicy(inviteUserIamPolicyModel)
.addAccessGroups(accessGroupId)
.build();
Response<InvitedUserList> response = adminService.inviteUsers(inviteUsersOptions).execute();
InvitedUserList invitedUserList = response.getResult();
System.out.println(invitedUserList);
const inviteUserModel = {
email: memberEmail,
account_role: 'Member',
};
const roleModel = {
role_id: viewerRoleId,
};
const attributeModel = {
name: 'accountId',
value: accountId,
};
const attributeModel2 = {
name: 'resourceGroupId',
value: '*',
};
const resourceModel = {
attributes: [attributeModel, attributeModel2],
};
const inviteUserIamPolicyModel = {
type: 'access',
roles: [roleModel],
resources: [resourceModel],
};
const params = {
accountId: accountId,
users: [inviteUserModel],
iamPolicy: [inviteUserIamPolicyModel],
accessGroups: [accessGroupId],
};
userManagementAdminService.inviteUsers(params)
.then(res => {
deleteUserId = res.result.resources[0].id;
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
invite_user_model = {
'email': member_email,
'account_role': 'Member'
}
role_model = {'role_id': viewer_role_id}
attribute_model = {'name': 'accountId', 'value': account_id}
attribute_model2 = {'name': 'resourceGroupId', 'value': '*'}
resource_model = {'attributes': [attribute_model, attribute_model2]}
invite_user_iam_policy_model = {
'type': 'access',
'roles': [role_model],
'resources': [resource_model]
}
invite_user_response = user_management_admin_service.invite_users(
account_id=account_id,
users=[invite_user_model],
iam_policy=[invite_user_iam_policy_model],
access_groups=[access_group_id]
).get_result()
print(json.dumps(invite_user_response, indent=2))
inviteUserModel := &usermanagementv1.InviteUser{
Email: &memberEmail,
AccountRole: core.StringPtr("Member"),
}
roleModel := &usermanagementv1.Role{
RoleID: &viewerRoleID,
}
attributeModel := &usermanagementv1.Attribute{
Name: core.StringPtr("accountId"),
Value: &accountID,
}
attributeModel2 := &usermanagementv1.Attribute{
Name: core.StringPtr("resourceGroupId"),
Value: core.StringPtr("*"),
}
resourceModel := &usermanagementv1.Resource{
Attributes: []usermanagementv1.Attribute{*attributeModel, *attributeModel2},
}
inviteUserIamPolicyModel := &usermanagementv1.InviteUserIamPolicy{
Type: core.StringPtr("access"),
Roles: []usermanagementv1.Role{*roleModel},
Resources: []usermanagementv1.Resource{*resourceModel},
}
inviteUsersOptions := &usermanagementv1.InviteUsersOptions{
AccountID: &accountID,
Users: []usermanagementv1.InviteUser{*inviteUserModel},
IamPolicy: []usermanagementv1.InviteUserIamPolicy{*inviteUserIamPolicyModel},
AccessGroups: []string{accessGroupID},
}
invitedUserList, response, err := userManagementAdminService.InviteUsers(inviteUsersOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(invitedUserList, "", " ")
fmt.Println(string(b))
È possibile assegnare l'accesso a un gruppo di servizi. Per assegnare l'accesso a tutti i servizi abilitati all'Identità e all'Accesso, specificare serviceType per l'attributo name e utilizzare value service. Per assegnare l'accesso a tutti i servizi di Gestione account, specificare serviceType per l'attributo name e utilizzare l'attributo value platform_service.
Per assegnare l'accesso al sottoinsieme di servizi di gestione degli account Tutti i servizi di gestione degli account IAM, specificare service_group_id per l'attributo name e utilizzare value IAM.
Invitare gli utenti utilizzando Terraform
È possibile invitare utenti al proprio account IBM Cloud utilizzando Terraform.
- Creare un argomento nel file
main.tf. L'esempio seguente invita gli utenti utilizzando la risorsaibm_iam_user_invite, doveusersè l'elenco degli ID e-mail degli utenti da invitare.Per ulteriori informazioni, vedere i dettagli di riferimento degli argomenti nella pagina di Terraform Identity and Access Management(IAM).resource "ibm_iam_user_invite" "invite_user" { users = ["test@in.ibm.com"] } - 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
- Eseguire
Annullamento o reinvio di inviti in sospeso
Dopo aver invitato nuovi utenti a unirsi all'account, IBM Cloud richiede a tutti gli utenti, tranne quelli che utilizzano solo la VPN, di accettare l'invito per diventare un utente attivo dell'account.
L'invito scade dopo 30 giorni. I nuovi utenti di IBM Cloud possono accettare un invito solo utilizzando il link di invito ricevuto via e-mail.
È possibile annullare un invito per tutti gli utenti che sono visualizzati in stato di elaborazione o in attesa nella colonna Stato della pagina Utenti. Se un utente invitato non riceve un invito, puoi reinviare l'invito a tutti gli utenti nello stato In sospeso.
- Andare alla pagina Utenti.
- Individuare la riga dell'utente nello stato
ProcessingoPending. - Fare clic sull'icona Azioni
Azioni, quindi scegliere di Reinviare l'invito o Annullare l'invito.
Accettare gli inviti nella console
Se l'utente invitato è già un membro di IBM Cloud, riceve un link di invito nelle sue notifiche e via e-mail. Nella pagina Notifiche, gli utenti possono
utilizzare il campo di ricerca per individuare un invito o filtrare in base al tipo di notifica chiamato account. Per ulteriori informazioni, vedere Gestione delle notifiche di invito e Visualizzazione delle notifiche.
Accettare gli inviti tramite la CLI
Se l'utente invitato è già un membro di IBM Cloud, può accettare gli inviti utilizzando la CLI. Nel seguente ibmcloud loginACCOUNT_ID è
l'ID dell'account mirato a cui l'utente è invitato a partecipare.
ibmcloud login -c ACCOUNT_ID --accept
Accettare gli inviti utilizzando l'API
Se l'utente invitato è già un membro di IBM Cloud, può accettare gli inviti utilizzando l'API. Nell'esempio seguente, ACCOUNT_ID è l'ID dell'account mirato a cui l'utente è invitato e IAM_TOKEN appartiene all'invitato.
curl -X POST \
'https://iam.cloud.ibm.com/v2/users/accept' \
--header 'Authorization: Bearer <IAM_TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
"account_id": "<ACCOUNT ID>"
}
Rimozione di un utente da un account tramite la console
Quando si rimuove un utente da un account, l'utente non può più accedere alla console, passare all'account o accedere alle risorse dell'account. La rimozione di un utente da un account non elimina l'ID IBM dell'utente.
Per rimuovere un utente da un account, completa la seguente procedura:
- Nella console IBM Cloud®, fare clic su Gestisci > Accesso (IAM) e selezionare Utenti.
- Dalla riga dell'utente che si desidera rimuovere, fare clic sull'icona Azioni
Azioni > Rimuovi utente.
Le risorse create dall'utente rimangono nell'account, ma le chiavi API IBM Cloud create dall'utente vengono rimosse. L'utente non ha più accesso alle risorse che ha creato. Il proprietario dell'account o un amministratore del servizio o dell'istanza del servizio può assegnare ad altri utenti la possibilità di lavorare con le risorse o eliminarle dall'account.
Se viene visualizzato un messaggio di errore che indica che un utente dell'infrastruttura classica non può essere rimosso, assicurarsi che a tutti i discendenti nella gerarchia degli utenti venga assegnato un nuovo genitore, che l'account venga disattivato o eliminato. Poi, si può riprovare.
In alternativa alla rimozione di un utente dall'account, è possibile assegnargli un criterio di accesso con una condizione temporanea basata sul tempo. In questo modo, l'utente può accedere alla console e visualizzare l'account nell'elenco degli account, ma non può accedere alle risorse dell'account prima dell'inizio del criterio o dopo la sua scadenza. Per ulteriori informazioni, vedere Creazione di una condizione temporanea basata sul tempo.
Rimozione di un utente da un account utilizzando la CLI
Per rimuovere un utente da un account, eseguire il seguente comando:
ibmcloud account user-remove USER_ID [-c ACCOUNT_ID] [-f, --force]
Per le opzioni di comando, vedere Gestione degli account e degli utenti comandi CLI.
Rimozione di un utente da un account tramite l'API
Per rimuovere un utente da un account, chiamare l'API Gestione utenti come mostrato nella seguente richiesta di esempio.
Sostituire le variabili con l'ID IAM dell'utente. È necessario utilizzare un token utente per l'autorizzazione. Gli ID di servizio non possono rimuovere gli utenti da un account.
curl -X DELETE https://user-management.cloud.ibm.com/v2/accounts/987d4cfd77b04e9b9e1a6asdcc861234/users/IBMid-1000000000 -H 'Authorization: Bearer <IAM_TOKEN>' -H 'Content-Type: application/json'
RemoveUserOptions removeUserOptions = new RemoveUserOptions.Builder()
.accountId(accountId)
.iamId(deleteUserId)
.build();
service.removeUser(removeUserOptions).execute();
const params = {
accountId: accountId,
iamId: deleteUserId,
};
userManagementAdminService.removeUser(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
response = user_management_admin_service.remove_user(
account_id=account_id,
iam_id=delete_user_id,
).get_result()
print(json.dumps(response, indent=2))
removeUserOptions := userManagementService.NewRemoveUserOptions(
accountID,
deleteUserID,
)
response, err := userManagementAdminService.RemoveUser(removeUserOptions)
if err != nil {
panic(err)
}
È inoltre possibile rimuovere un utente in base al suo ID utente o all'indirizzo e-mail e al regno. Sono richiesti l'ID utente o l'e-mail e il realm. Per ulteriori informazioni, vedere Rimuovere un utente dall'account per ID utente o e-mail.
curl -X DELETE https://user-management.cloud.ibm.com/v2/accounts/987d4cfd77b04e9b9e1a6asdcc861234/users?user_id=user%40ibm.com&email=user.email%40ibm.com&realm=ibmid -H 'Authorization: Bearer <IAM_TOKEN>' -H 'Content-Type: application/json'
Modifica del sito IBMid di un utente tramite la console
Come proprietario di un account, è possibile aggiornare il sito IBMid di un utente. Il nuovo IBMid che si utilizza per sostituire l'attuale IBMid deve essere già esistente. Il sito IBMid che si sta sostituendo viene rimosso dall'account. Se si desidera che l'utente esistente di IBMid continui a essere membro dell'account, è necessario invitarlo nuovamente e ristabilire il suo accesso.
I proprietari degli account non possono modificare il proprio IBMid.
Dopo che l'utente si è assicurato che il nuovo IBMid esista, completare i passaggi seguenti per modificare il IBMid dell'utente:
- Accedere a Gestione > Accesso (IAM) > Utenti nella console IBM Cloud® e selezionare l'utente di cui si vuole aggiornare IBMid.
- Nella sezione Dettagli, fare clic su Aggiorna IBMid.
- Immettere il nuovo IBMid, quindi fare clic su Aggiorna.
L'utente può ora accedere a ibm.com con il suo nuovo IMBid e continuare a lavorare nell'account IBM Cloud con l'accesso assegnato all'account IBMid precedentemente utilizzato.