Profili di fiducia per utenti e carichi di lavoro federati
Concedere l'accesso senza gestire le credenziali. Utilizzare profili affidabili per gli utenti federati con attributi SAML o identità di carichi di lavoro nelle risorse di calcolo.
È possibile utilizzare i profili di fiducia per concedere a diverse identità di IBM Cloud® l'accesso alle risorse del proprio account. Concedete automaticamente agli utenti federati l'accesso al vostro account con condizioni basate sugli attributi SAML della vostra directory aziendale. Oppure, utilizzare i profili di fiducia per impostare un'autorizzazione a grana fine per le applicazioni in esecuzione nelle risorse di calcolo. In questo modo, non è necessario creare ID di servizio o chiavi API per le risorse di calcolo. È inoltre possibile stabilire la fiducia con i servizi IBM Cloud o con gli ID dei servizi di un altro account per garantire l'accesso a più account.
Non è necessario che un utente sia membro dell'account per assumere un profilo di fiducia. Un utente può utilizzare il profilo se il suo fornitore di identità ( IdP ) corrisponde a un IdP utilizzato nelle condizioni di fiducia.
Quando si crea inizialmente un profilo di fiducia, è possibile creare condizioni di fiducia con i seguenti tipi di entità: utenti federati, risorse di calcolo, ID di servizio o servizi IBM Cloud. Dopo aver creato il profilo di fiducia, è possibile aggiungere altre condizioni per combinare più tipi di entità nello stesso profilo.
È possibile utilizzare Activity Tracker per monitorare quali risorse di calcolo, ID servizio e servizi IBM Cloud degli utenti federati applicano un profilo di fiducia. Per ulteriori informazioni, vedere Monitoraggio delle sessioni di accesso per i profili affidabili.
Prima di iniziare
Se si dispone dei seguenti accessi, è possibile creare profili affidabili:
- Proprietario account
- Ruolo di amministratore su tutti i servizi di gestione degli account
- Ruolo di amministratore su IAM Identity Service. Per ulteriori informazioni, vedere Servizio identità IAM.
Stabilire la fiducia con gli utenti federati nella console
Completare i passaggi seguenti per definire quali utenti federati possono accedere a risorse specifiche:
-
Abilitare l'autenticazione da un provider di identità esterno.
-
Nella console IBM Cloud , fare clic su Gestisci > Accesso (IAM) e selezionare Profili di fiducia.
-
Fai clic su Crea.
-
Descrivete il vostro profilo fornendo un nome, un'e-mail e una descrizione, quindi fate clic su Continua.
Nell'e-mail è possibile aggiungere un ID e-mail personale o una lista di distribuzione.
Nella descrizione, fornire un elenco delle azioni disponibili per questo profilo di fiducia.
-
È possibile creare il profilo di fiducia prima di aggiungere i dettagli selezionando Decidi in seguito. Oppure, stabilire la fiducia completando i seguenti passaggi:
-
Selezionare gli utenti federati come tipo di entità attendibile dall'elenco.
-
Selezionate Utenti federati da IBMid o **Utenti federati da IBM Cloud App ID come metodo di autenticazione e inserite il provider di identità predefinito (**IdP ) abilitato al punto 1.
Se gli utenti per i quali si sta creando un profilo di fiducia utilizzano IBM Cloud App ID, creare il profilo di fiducia come utente App ID e lo stesso vale per IBMid. In questo modo, gli attributi di SAML possono dare un'idea di come strutturare le condizioni del profilo di fiducia. Altri utenti con lo stesso IdP possono avere attributi diversi di SAML. Utilizzate i vostri attributi solo come suggerimento. Per utilizzare gli attributi di una richiesta di risarcimento diversi dai propri, è necessario inserirli manualmente. {: tip}
- Selezionare Utenti federati da IBMid, Utenti federati da IBM Cloud App ID, o **Utenti federati da IBM Cloud SAML come metodo di autenticazione e inserire il provider di identità predefinito (**IdP ) abilitato al punto 1.
-
Aggiungere condizioni basate sui dati di IdP per definire come e quando gli utenti federati possono applicare il profilo.
- Facendo clic su Aggiungi una condizione, è possibile definire più condizioni. Gli utenti federati devono soddisfare tutte le condizioni per essere inclusi nel profilo di fiducia. Per ulteriori informazioni sui campi utilizzati per creare le condizioni, vedere Proprietà delle condizioni IAM.
- Fare clic su Visualizza dati del fornitore di identità ( IdP ) per cercare i nomi e i valori degli attributi nei propri dati personali dal sito IdP. Per ulteriori informazioni, vedere Utilizzo dei dati di IdP per creare profili affidabili.
-
Definire la durata della sessione per quanto tempo un utente può applicare il profilo prima di doversi riautenticare.
-
-
Fai clic su Continue.
-
(Facoltativo) Assegnare l'accesso al profilo di fiducia.
-
Oppure, fare clic su Crea senza assegnare alcun accesso.
Per ulteriori informazioni sui campi utilizzati per creare condizioni per i profili affidabili, vedere Proprietà delle condizioni IAM.
Stabilire la fiducia con le risorse di calcolo nella console
Completate i seguenti passaggi per impostare un migliore controllo sulla concessione dell'accesso alle risorse di calcolo.
IBM Cloud Kubernetes Service supporta solo i profili affidabili per le versioni 1.21 e successive. I cluster liberi di IBM Cloud Kubernetes Service creano solo versioni precedenti. Con il piano standard si può scegliere di creare cluster con una versione precedente, quindi assicurarsi di selezionare la versione 1.21 o più recente.
-
Nella console IBM Cloud , fare clic su Gestisci > Accesso (IAM) e selezionare Profili di fiducia.
-
Fare clic su Crea profilo.
-
Descrivete il vostro profilo fornendo un nome e una descrizione e fate clic su Continua.
-
È possibile creare il profilo di fiducia prima di aggiungere i dettagli selezionando Decidi in seguito. Oppure, stabilire la fiducia completando i seguenti passaggi:
-
Selezionare Risorse di calcolo e selezionare un tipo di servizio di calcolo dall'elenco.
-
Se si seleziona l'opzione Tutte le risorse del servizio, è possibile definire più condizioni per filtrare le risorse per il tipo di servizio di calcolo selezionato facendo clic su Aggiungi una condizione. Queste condizioni si basano su attributi, come i gruppi di risorse o la posizione, e si applicano a tutte le risorse esistenti e future. Le risorse devono soddisfare tutte le condizioni per essere incluse nel profilo di fiducia.
I nomi degli spazi dei nomi e degli account dei servizi Kubernetes immessi non devono necessariamente esistere già. Tutti i futuri namespace o account di servizio con questi nomi possono stabilire la fiducia. Per elencare i namespace esistenti, accedere al cluster ed eseguire
kubectl get ns. Per elencare gli account di servizio esistenti, accedere al cluster ed eseguirekubectl get sa -n <namespace>. È anche possibile inseriredefaultper entrambi. -
Se si seleziona Risorse specifiche, è possibile stabilire la fiducia con una o più istanze di risorse di calcolo esistenti direttamente senza condizioni. Ad esempio, un cluster Kubernetes.
-
-
Fai clic su Continue.
-
(Facoltativo) Assegnare l'accesso al profilo di fiducia.
-
Oppure, fare clic su Crea senza assegnare alcun accesso.
Per ulteriori informazioni sui campi utilizzati per creare condizioni per i profili affidabili, vedere Proprietà delle condizioni IAM.
Stabilire la fiducia con i servizi IBM Cloud nella console
Un servizio di IBM Cloud nel vostro account o in un altro account potrebbe aver bisogno di un token per eseguire un'operazione nel vostro account.
- Esempio 1
- Un'istanza del servizio Project in un altro account può assumere un profilo di fiducia per distribuire in modo sicuro un'architettura nell'account dell'utente senza bisogno di rotazione delle chiavi. Per ulteriori informazioni, vedere Utilizzo di profili affidabili per autorizzare un progetto a distribuire un'architettura.
- Esempio 2
- Un catalogo privato è un'istanza del servizio Catalog Management identificata da un CRN. Potreste voler convalidare i prodotti del vostro catalogo privato in un account separato da quello che contiene il vostro catalogo. È possibile dare a un catalogo privato l'accesso alla creazione di risorse per la convalida in un account di destinazione creando un profilo di fiducia nell'account di destinazione. Quindi si stabilisce la fiducia con il catalogo utilizzando il CRN del catalogo per collegare l'istanza del servizio al profilo attendibile. Per ulteriori informazioni, vedere Onboarding del software nel catalogo privato.
La condivisione delle risorse tra gli account mediante l'uso di profili di fiducia funziona per un insieme limitato di servizi e non è un metodo generale per l'accesso trasversale agli account per i servizi.
Completare i seguenti passaggi per definire come un servizio IBM Cloud può accedere a risorse specifiche dell'account:
-
Chiedere all'amministratore del servizio il Cloud Resource Name (CRN) che identifica in modo univoco l'istanza del servizio. Il CRN viene usato per autorizzare le operazioni.
L'amministratore del servizio può trovare il CRN accedendo all'icona del menu di navigazione
> Elenco risorse e facendo clic sul nome del servizio a cui ci si rivolge. Nella sezione Dettagli, copiare il CRN. Per un catalogo privato CRN, andare su Gestione > Cataloghi > Cataloghi privati e selezionare il catalogo privato. Fare clic su Azioni... > Modifica dettagli catalogo per trovare il CRN del catalogo.
-
Nella console IBM Cloud , fare clic su Gestisci > Accesso (IAM) e selezionare Profili di fiducia.
-
Fare clic su Crea profilo.
-
Definire il proprio profilo fornendo un nome e una descrizione e fare clic su Continua.
Nella descrizione, fornire un elenco di azioni disponibili per il profilo di fiducia.
-
È possibile creare il profilo di fiducia prima di aggiungere i dettagli selezionando Decidi in seguito. Oppure, stabilire la fiducia completando i seguenti passaggi:
- Selezionare i servizi di IBM Cloud®.
- Inserire il CRN fornito dall'amministratore del servizio.
IBM Cloud i servizi sono identità statiche che non utilizzano condizioni per stabilire la fiducia. Invece, si stabilisce la fiducia utilizzando il CRN per creare un collegamento diretto con l'entità fidata.
-
Fai clic su Continue.
-
(Facoltativo) Assegnare l'accesso al profilo di fiducia.
-
Oppure, fare clic su Crea senza assegnare alcun accesso.
Stabilire la fiducia con gli ID dei servizi nella console
È possibile utilizzare i profili di fiducia per dare a un ID di servizio l'accesso trasversale all'account e l'accesso ai servizi di infrastruttura classici di chiamata. Per consentire a un ID servizio di un account di accedere a un account di destinazione, creare il profilo di fiducia nell'account di destinazione. Completare i passaggi seguenti per definire come un ID servizio può accedere a risorse specifiche dell'account:
-
Chiedere a un amministratore dell'altro account il valore dell'ID servizio che lo identifica.
Un amministratore può trovare il valore dell'ID servizio andando su Gestione > Accesso (IAM) > ID servizio e selezionando l'ID servizio a cui si vuole puntare. Fare clic su Dettagli e copiare l'ID che inizia con
ServiceId. -
Nella console IBM Cloud , fare clic su Gestisci > Accesso (IAM) e selezionare Profili di fiducia.
-
Fare clic su Crea profilo.
-
Definire il proprio profilo fornendo un nome e una descrizione e fare clic su Continua.
Nella descrizione, fornire un elenco di azioni disponibili per questo profilo di fiducia.
-
È possibile creare il profilo di fiducia prima di aggiungere i dettagli selezionando Decidi in seguito. Oppure, stabilire la fiducia completando i seguenti passaggi:
- Selezionare gli ID dei servizi
- Inserire il valore dell'ID del servizio fornito dall'amministratore.
-
Fai clic su Continue.
-
(Facoltativo) Assegnare l'accesso al profilo di fiducia.
-
Oppure, fare clic su Crea senza assegnare alcun accesso.
I Service ID sono identità statiche che non utilizzano condizioni per stabilire la fiducia. Invece, si stabilisce la fiducia utilizzando il valore dell'ID dai metadati dell'ID del servizio per creare un collegamento diretto con l'entità fidata.
Assegnazione dell'accesso al profilo di fiducia
Dopo aver stabilito la fiducia con gli utenti federati, le risorse di calcolo, un servizio IBM Cloud o un ID servizio, è possibile assegnare l'accesso.
È possibile assegnare l'accesso all'infrastruttura classica solo se l'account è collegato a un account Softlayer.
- Assegnare l'accesso.
- Assegnare l'accesso al profilo di fiducia aggiungendolo a uno o più gruppi di accesso. In questo modo, è possibile utilizzare i criteri esistenti nei gruppi di accesso creati.
- Selezionare Gruppi di accesso e selezionare tutti i gruppi a cui si desidera aggiungere il profilo di fiducia. È possibile assegnare gli utenti solo ai gruppi di accesso che si ha la possibilità di gestire.
- Fai clic su Aggiungi.
- Assegnare l'accesso al profilo di fiducia con un criterio di accesso.
- Selezionare il criterio di accesso. In base al livello di accesso, è possibile assegnare criteri IAM e autorizzazioni classiche per l'infrastruttura.
- Selezionare un singolo servizio o un gruppo di servizi, come Tutti i servizi di Identità e accesso abilitati, Tutti i servizi di Gestione account o Tutti i servizi di Gestione account IAM. Poi, fai clic su Avanti.
- Estendere l'accesso a tutte le risorse o a risorse specifiche in base agli attributi selezionati. Poi, fai clic su Avanti.
- Selezionare una qualsiasi combinazione di ruoli e autorizzazioni per definire l'ambito di accesso e fare clic su Rivedi.
- Fare clic su Aggiungi per aggiungere la configurazione del criterio al riepilogo.
- È possibile assegnare l'accesso all 'infrastruttura Classic selezionando un utente, un dispositivo o un servizio, quindi una qualsiasi combinazione di autorizzazioni granulari.
- Assegnare l'accesso al profilo di fiducia aggiungendolo a uno o più gruppi di accesso. In questo modo, è possibile utilizzare i criteri esistenti nei gruppi di accesso creati.
- Fai clic su Crea.
Personalizzazione dell'esperienza della console
Come amministratore di un profilo di fiducia, è possibile personalizzare gli elementi di navigazione che appaiono nel banner della console IBM Cloud per gli utenti che applicano un profilo di fiducia. Questa funzionalità aiuta a semplificare l'esperienza della console, nascondendo gli elementi di navigazione a cui gli utenti non hanno bisogno di accedere e impedendo agli utenti di esplorare le aree in cui non hanno i permessi.
Per personalizzare la navigazione della console per un profilo di fiducia, completare i seguenti passaggi:
- Nella console IBM Cloud, fare clic su Gestione > Accesso (IAM) e su Profili attendibili.
- Selezionare il profilo di fiducia che si desidera personalizzare e fare clic su Esperienza console.
- Selezionare la pagina di destinazione che si desidera utilizzare come pagina di destinazione predefinita e fare clic su Salva.
- Selezionare gli elementi di navigazione che si desidera includere nel banner della console.
- Selezionare i cataloghi privati in cui il profilo di fiducia può accedere a prodotti specifici e fare clic su Salva.
Stabilire la fiducia con gli utenti federati utilizzando la CLI
Completare i passaggi seguenti per definire quali utenti federati possono accedere a risorse specifiche:
-
Abilitare l'autenticazione da un provider di identità esterno.
-
Creare un profilo di fiducia eseguendo il seguente comando:
ibmcloud iam trusted-profile-create my-profile -d "sample trusted profile"Per ulteriori informazioni, vedi la Guida di riferimento CLI.
-
Per creare le condizioni per il profilo di fiducia, eseguire il comando
ibmcloud iam trusted-profile-rule-create:ibmcloud iam trusted-profile-rule-create my-profile --name my-rule --type Profile-SAML --conditions claim:cn,operator:EQUALS,value:my_user --realm-name https://w3id.sso.ibm.com/auth/sps/samlidp2/saml20 --expiration 1200Per ulteriori informazioni, vedi la Guida di riferimento CLI.
-
Creare un criterio di accesso con il ruolo
Viewerper tutte le risorse dell'account eseguendo il seguente comando:ibmcloud iam trusted-profile-policy-create --roles ViewerPer ulteriori informazioni, vedi la Guida di riferimento CLI.
Stabilire la fiducia con le risorse di calcolo utilizzando la CLI
Completate i seguenti passaggi per impostare un migliore controllo sulla concessione dell'accesso alle risorse di calcolo.
IBM Cloud Kubernetes Service supporta solo i profili affidabili per le versioni 1.21 e successive. I cluster liberi di IBM Cloud Kubernetes Service creano solo versioni precedenti. Con il piano standard si può scegliere di creare cluster con una versione precedente, quindi assicurarsi di selezionare la versione 1.21 o più recente.
-
Creare un profilo di fiducia eseguendo il seguente comando:
ibmcloud iam trusted-profile-create sample-compute-profile -d "sample trusted profile for compute resources"Per ulteriori informazioni, vedi la Guida di riferimento CLI.
-
Creare le condizioni per il profilo di fiducia utilizzando il comando
ibmcloud iam trusted-profile-rule-create:ibmcloud iam trusted-profile-rule-create sample-compute-profile --name cr-rule --type Profile-CR --conditions claim:namespace,operator:EQUALS,value:default --conditions claim:crn,operator:EQUALS,value:crn:test:bluemix:public:containers-kubernetes:us-south:a/test:: --cr-type IKS_SAPer ulteriori informazioni, vedi la Guida di riferimento CLI.
È anche possibile creare un collegamento diretto:
ibmcloud iam trusted-profile-link-create sample-compute-profile --name my_link --cr-type IKS_SA --link-name default --link-namespace default --link-crn my_compute_resource_crnPer ulteriori informazioni, vedi la Guida di riferimento CLI.
-
Creare un criterio di accesso eseguendo il seguente comando:
ibmcloud iam trusted-profile-policy-create --roles ViewerPer ulteriori informazioni, vedi la Guida di riferimento CLI.
Stabilire la fiducia con i servizi di IBM Cloud utilizzando la CLI
Un servizio IBM Cloud in un altro account potrebbe aver bisogno di un token per eseguire un'operazione nel vostro account. Completare i seguenti passaggi per definire come un servizio IBM Cloud può accedere a risorse specifiche dell'account:
-
Chiedete all'amministratore del servizio in un altro account il CRN che identifica in modo univoco l'istanza del servizio. Il CRN viene usato per autorizzare le operazioni.
L'amministratore del servizio può trovare il CRN accedendo all'icona del menu di navigazione
> Elenco risorse e facendo clic sul servizio a cui ci si rivolge. Nella sezione Dettagli, copiare il CRN.
-
Creare un rapporto di fiducia con un collegamento diretto:
ibmcloud iam trusted-profile-link-create sample-cloudservice-profile --name my_cloudservice_link --link-crn `crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource`Per ulteriori informazioni, vedi la Guida di riferimento CLI.
-
Creare un criterio di accesso eseguendo il seguente comando:
ibmcloud iam trusted-profile-policy-create --roles ViewerPer ulteriori informazioni, vedi la Guida di riferimento CLI.
Stabilire la fiducia con gli ID dei servizi utilizzando la CLI
Completare i passaggi seguenti per definire come un ID servizio può accedere a risorse specifiche dell'account:
È possibile utilizzare i profili di fiducia per dare a un ID di servizio l'accesso trasversale agli account e l'accesso ai servizi dell'Infrastruttura Classic.
-
Chiedere a un amministratore dell'altro account il valore dell'ID servizio che lo identifica.
Un amministratore può trovare il valore dell'ID del servizio andando su Gestione > Accesso (IAM) > ID del servizio e selezionando l'ID del servizio che si desidera indirizzare. Fare clic su Dettagli e copiare l'ID che inizia con
ServiceId. -
Creare un rapporto di fiducia con un collegamento diretto:
ibmcloud iam trusted-profile-link-create sample-serviceid-profile --name my_serviceid_link --link-crn `crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource`Per ulteriori informazioni, vedi la Guida di riferimento CLI.
-
Creare un criterio di accesso eseguendo il seguente comando:
ibmcloud iam trusted-profile-policy-create --roles ViewerPer ulteriori informazioni, vedi la Guida di riferimento CLI.
Assegnazione dell'accesso al profilo di fiducia tramite la CLI
Dopo aver stabilito la fiducia con gli utenti federati, le risorse di calcolo, un servizio IBM Cloud o un ID servizio, è possibile assegnare l'accesso.
È possibile assegnare l'accesso all'infrastruttura classica solo se l'account è collegato a un account Softlayer.
Utilizzare il comando trusted-profile-policy-create per assegnare un criterio di accesso al profilo attendibile. L'esempio seguente
assegna un criterio con il ruolo di Amministratore a tutti i servizi di Gestione account:
ibmcloud iam trusted-profile-policy-create Profile-36f5c562-1t36-4442-b7f0-2663c85386f1 --roles Administrator --attributes serviceType=service
Stabilire la fiducia con gli utenti federati utilizzando l'API
Completare i passaggi seguenti per definire quali utenti federati possono accedere a risorse specifiche:
-
Abilitare l'autenticazione da un provider di identità esterno.
-
Creare un profilo di fiducia specificando l'ID dell'account.
curl -X POST 'https://iam.cloud.ibm.com/v1/profiles' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "name": "My Nice Profile", "description": "My Nice Profile - desc", "account_id": "ACCOUNT_ID" }'Nella descrizione, fornire un elenco delle azioni disponibili per questo profilo di fiducia.
-
Create le condizioni per il vostro profilo di fiducia. Per gli utenti federati, impostare l'attributo
typesuProfile-SAML. Ilrealm-nameè il IdP URL. Per ulteriori informazioni, consultare l'API IAM Identity Services.curl -X POST 'https://iam.cloud.ibm.com/v1/profiles/PROFILE_ID/rules' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "type": "Profile-SAML", "realm_name": "https://www.example.org/my-nice-idp", "expiration": 43200, "conditions": [ { "claim": "groups", "operator": "EQUALS", "value": "\"cloud-docs-dev\"" } ] }'C'è un limite di 20 regole di richiesta per profilo di fiducia.
-
(Facoltativo) Assegnare l'accesso al profilo di fiducia.
Stabilire la fiducia nelle risorse di calcolo con l'API
Completate i seguenti passaggi per impostare un migliore controllo sulla concessione dell'accesso alle risorse di calcolo.
IBM Cloud Kubernetes Service supporta solo i profili affidabili per le versioni 1.21 e successive. I cluster liberi di IBM Cloud Kubernetes Service creano solo versioni precedenti. Con il piano standard si può scegliere di creare cluster con una versione precedente, quindi assicurarsi di selezionare la versione 1.21 o più recente.
-
Creare un profilo di fiducia specificando l'ID dell'account.
curl -X POST 'https://iam.cloud.ibm.com/v1/profiles' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "name": "My Nice Profile", "description": "My Nice Profile - desc", "account_id": "ACCOUNT_ID" }'Nella descrizione, fornire un elenco delle azioni disponibili per questo profilo di fiducia.
-
Creare una regola di rivendicazione per il profilo di fiducia che segua il principio del minor privilegio, specificando le condizioni che riguardano solo le risorse a cui è necessario accedere. Le condizioni si applicano a tutte le risorse future esistenti. È anche possibile creare un collegamento diretto con risorse specifiche esistenti.
- Creare le condizioni
- Per le risorse di calcolo, impostare l'attributo
typesuProfile-CR. Per ulteriori informazioni, consultare l'API IAM Identity Services.
curl -X POST 'https://iam.cloud.ibm.com/v1/profiles/PROFILE_ID/rules' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "type": "Profile-CR", "conditions": [ { "claim": "namespace", "operator": "EQUALS", "value": "\"default123\"" } ] }'C'è un limite di 20 regole di richiesta per profilo di fiducia.
- Creare un direct link (collegamento diretto)
- È possibile stabilire un collegamento diretto con risorse specifiche ed esistenti.
curl -X POST 'https://iam.cloud.ibm.com/v1/profiles/PROFILE_ID/links' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{ "name": "my link", "cr_type": "VSI", "is_cross_account": true, "link": { "crn": "crn:v1:staging:public:iam-identity::a/18e3020749ce4744b0b472466d61fdb4::computeresource:Fake-Compute-Resource", "namespace": "default", "name": "my compute resource name" } }'
-
(Facoltativo) Assegnare l'accesso al profilo di fiducia.
Assegnazione dell'accesso al profilo di fiducia tramite l'API
Dopo aver stabilito la fiducia con gli utenti federati, le risorse di calcolo, un servizio IBM Cloud o un ID servizio, è possibile assegnare l'accesso.
È possibile assegnare l'accesso all'infrastruttura classica solo se l'account è collegato a un account Softlayer.
L'esempio seguente assegna un criterio con il ruolo di Amministratore a tutti i servizi di Gestione account:
curl -X POST \
'https://iam.cloud.ibm.com/v1/policies' \
-H 'Authorization: $TOKEN'\
-H 'Content-Type: application/json'\
-d '{
"type": "access",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9"
}
]
}'
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam::::role:Administrator"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceType",
"value": "platform-service"
}
]
}
]
}'
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
.name("iam_id")
.value("Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9")
.build();
PolicySubject policySubjects = new PolicySubject.Builder()
.addAttributes(subjectAttribute)
.build();
PolicyRole policyRoles = new PolicyRole.Builder()
.roleId("crn:v1:bluemix:public:iam::::role:Administrator")
.build();
ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
.name("accountId")
.value("exampleAccountId")
.operator("stringEquals")
.build();
ResourceAttribute serviceTypeResourceAttribute = new ResourceAttribute.Builder()
.name("serviceType")
.value("platform-service")
.operator("stringEquals")
.build();
PolicyResource policyResources = new PolicyResource.Builder()
.addAttributes(accountIdResourceAttribute)
.addAttributes(serviceTypeResourceAttribute)
.build();
CreatePolicyOptions options = new CreatePolicyOptions.Builder()
.type("access")
.subjects(Arrays.asList(policySubjects))
.roles(Arrays.asList(policyRoles))
.resources(Arrays.asList(policyResources))
.build();
Response<Policy> response = service.createPolicy(options).execute();
Policy policy = response.getResult();
System.out.println(policy);
const policySubjects = [
{
attributes: [
{
name: 'iam_id',
value: "Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9",
},
],
},
];
const policyRoles = [
{
role_id: 'crn:v1:bluemix:public:iam::::role:Administrator',
},
];
const accountIdResourceAttribute = {
name: 'accountId',
value: 'exampleAccountId',
operator: 'stringEquals',
};
const serviceTypeResourceAttribute = {
name: 'serviceType',
value: 'platform-service',
operator: 'stringEquals',
};
const policyResources = [
{
attributes: [accountIdResourceAttribute, serviceTypeResourceAttribute]
},
];
const params = {
type: 'access',
subjects: policySubjects,
roles: policyRoles,
resources: policyResources,
};
iamPolicyManagementService.createPolicy(params)
.then(res => {
examplePolicyId = res.result.id;
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
policy_subjects = PolicySubject(
attributes=[SubjectAttribute(name='iam_id', value='Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9')])
policy_roles = PolicyRole(
role_id='crn:v1:bluemix:public:iam::::role:Administrator')
account_id_resource_attribute = ResourceAttribute(
name='accountId', value=example_account_id)
service_name_resource_attribute = ResourceAttribute(
name='serviceType', value='platform-service')
policy_resources = PolicyResource(
attributes=[account_id_resource_attribute,
service_type_resource_attribute])
policy = iam_policy_management_service.create_policy(
type='access',
subjects=[policy_subjects],
roles=[policy_roles],
resources=[policy_resources]
).get_result()
print(json.dumps(policy, indent=2))
subjectAttribute := &iampolicymanagementv1.SubjectAttribute{
Name: core.StringPtr("iam_id"),
Value: core.StringPtr("Iam-Profile-35f55552-1e36-4442-z7f0-2673c85386f9"),
}
policySubjects := &iampolicymanagementv1.PolicySubject{
Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
RoleID: core.StringPtr("crn:v1:bluemix:public:iam::::role:Administrator"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("accountId"),
Value: core.StringPtr("ACCOUNT_ID"),
Operator: core.StringPtr("stringEquals"),
}
serviceTypeResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
Name: core.StringPtr("serviceType"),
Value: core.StringPtr("platform-service"),
Operator: core.StringPtr("stringEquals"),
}
policyResources := &iampolicymanagementv1.PolicyResource{
Attributes: []iampolicymanagementv1.ResourceAttribute{
*accountIDResourceAttribute, *serviceTypeResourceAttribute},
}
options := iamPolicyManagementService.NewCreatePolicyOptions(
"access",
[]iampolicymanagementv1.PolicySubject{*policySubjects},
[]iampolicymanagementv1.PolicyRole{*policyRoles},
[]iampolicymanagementv1.PolicyResource{*policyResources},
)
policy, response, err := iamPolicyManagementService.CreatePolicy(options)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(policy, "", " ")
fmt.Println(string(b))