Autorizzare le risorse con i profili di fiducia IAM
Virtual Private Cloud Infrastruttura classica Satellite
Scoprite come impostare l'accesso alle risorse o per le risorse utilizzando i profili di fiducia.
Puoi abilitare profili attendibili IAM eseguendo il comando ibmcloud ks cluster master refresh.
- In IAM
- Iniziate creando un profilo IAM di fiducia. Quindi, collegare il profilo di fiducia con la risorsa di calcolo IBM Cloud Kubernetes Service selezionando le condizioni da abbinare ai cluster, tra cui uno spazio dei nomi Kubernetes e un account di servizio nei cluster. Infine, assegnare i criteri di accesso ai servizi di IBM Cloud che si desidera utilizzare per le applicazioni.
- Nel cluster
- Tramite la proiezione del volume dei token dell'account di servizio Kubernetes, le applicazioni che vengono eseguite nello spazio dei nomi Kubernetes del cluster collegato e che utilizzano l'account di servizio dello spazio dei nomi possono scambiare la chiave pubblica dell'account di servizio per ottenere un token di accesso IAM IBM Cloud. L'applicazione può utilizzare questo token di accesso per autenticare le richieste API ai servizi di IBM Cloud, come i database, Watson o l'infrastruttura VPC. Attraverso i criteri di accesso del profilo di fiducia, si controllano le azioni che il token consente all'applicazione di eseguire.
Creazione di un profilo IAM di fiducia
Per creare un profilo di fiducia nel proprio account, vedere Creazione di profili di fiducia nella documentazione IAM. Per creare un profilo di fiducia, è necessario essere il proprietario dell'account. Inoltre, sono necessari i seguenti ruoli di accesso.
- Ruolo di amministratore per tutti i servizi di gestione degli account.
- Ruolo di amministratore su IAM Identity Service. Per ulteriori informazioni, vedere IAM Identity Service.
- Ruoli aggiuntivi necessari per le risorse e i componenti specifici.
Impostare il profilo fiduciario predefinito per il cluster
Per impostare un profilo di fiducia per un singolo cluster, eseguire il comando ibmcloud ks experimental trusted-profile set.
Se si desidera che tutti i cluster di un gruppo di risorse usino lo stesso profilo di fiducia, eseguire il comando ibmcloud ks experimental trusted-profile default set.
Scopri i dettagli del tuo profilo di fiducia
Per ottenere il profilo di fiducia predefinito per i cluster dello stesso gruppo di risorse, eseguire il comando ibmcloud ks experimental trusted-profile default get.
Configura i tuoi pod dell'applicazione per l'autenticazione con i servizi IBM Cloud
Dare ai pod applicativi che girano nel cluster IBM Cloud® Kubernetes Service l'accesso ai servizi IBM Cloud usando i profili di fiducia in IBM Cloud Identity and Access Management (IAM). Come sviluppatore, è possibile configurare i pod delle applicazioni in modo che si autentichino con i servizi IBM Cloud nei cluster che sono collegati a un profilo affidabile IAM impostato.
Per completare questi passaggi, non è necessario avere il ruolo di accesso amministratore. Tuttavia, è necessario soddisfare i seguenti requisiti: Ruolo di accesso alla piattaforma Viewer; ruolo di accesso al servizio Writer per il cluster in IBM Cloud IAM per Kubernetes Service; le azioni iam-identity.profile.create e iam-identity.profile.linkToResource per il servizio di identità IAM.
Prima di cominciare:
- Accedi al tuo account. Se applicabile, specifica il gruppo di risorse appropriato. Imposta il contesto per il tuo cluster.
- Assicurati che il tuo amministratore dell'account abbia creato un profilo attendibile IAM per il tuo cluster.
Per configurare i tuoi pod dell'applicazione per l'autenticazione con servizi IBM Cloud:
-
Progetta il tuo file di configurazione del pod per utilizzare la proiezione del volume del token dell'account di servizio.
- Nella sezione
containers, monta il token di identità nella sezionevolumeMounts.
... volumeMounts: - mountPath: /var/run/secrets/tokens name: sa-token ``` 1. Nella sezione `volumes`, configura la proiezione del volume del token di account di servizio. Modificare il campo `expirationSeconds` per controllare per quanto tempo il token è valido. Per richiamare i token IAM, la scadenza del token dell'account di servizio deve essere di 1 ora o meno. {: tip} ```yaml {: codeblock} ... volumes: - name: sa-token projected: sources: - serviceAccountToken: path: sa-token expirationSeconds: 3600 audience: iam ... ``` - Nella sezione
-
Progetta la tua applicazione per scambiare il token proiettato dell'account di servizio per un token IAM che puoi usare per le successive chiamate API ai servizi IBM Cloud. Esamina la seguente richiesta di autenticazione di esempio. Sostituire
${profile_id}con l'ID del profilo attendibile a cui è collegato il cluster. Per elencare gli ID profilo disponibili, tu o l'amministratore dell'account puoi utilizzare il comandoibmcloud iam tps,GET 'https://iam.cloud.ibm.com/v1/profiles/?account_id=<account_id>'o puoi visualizzare i profili attendibili nella console IAM.curl -s -X POST \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Accept: application/json" \ -d grant_type=urn:ibm:params:oauth:grant-type:cr-token \ -d cr_token=$(cat /var/run/secrets/tokens/sa-token) \ -d profile_id=${profile_id} \ https://iam.cloud.ibm.com/identity/token -
Prima che la tua applicazione venga distribuita, prova il seguente lavoro Kubernetes di esempio per verificare lo scambio di token. Nel seguente lavoro Kubernetes, un pod
curleffettua una richiesta API a IBM Cloud IAM per verificare che la chiave pubblica del cluster sia scambiata per un token di accesso IAM. La tua applicazione potrebbe richiamare altri IBM Cloud servizi che il profilo attendibile autorizza.apiVersion: batch/v1 kind: Job metadata: name: token-exchange-job namespace: default spec: template: spec: containers: - name: curl image: curlimages/curl:7.77.0 command: ["/bin/sh"] args: ["-c", "curl -s -H \"Content-Type: application/x-www-form-urlencoded\" -H \"Accept: application/json\" -d grant_type=urn:ibm:params:oauth:grant-type:cr-token -d cr_token=$(cat /var/run/secrets/tokens/sa-token) -d profile_id=<profile_id> https://iam.cloud.ibm.com/identity/token"] volumeMounts: - mountPath: /var/run/secrets/tokens name: sa-token restartPolicy: Never serviceAccountName: default volumes: - name: sa-token projected: sources: - serviceAccountToken: path: sa-token expirationSeconds: 3600 audience: iam -
Distribuire il lavoro.
kubectl apply -f exchange-job.yaml -
Esaminare i dettagli del lavoro per verificare che sia stato eseguito correttamente.
kubectl describe job token-exchange-job -
Esaminare l'output per i messaggi
job completedesucceededper verificare che il lavoro sia stato eseguito correttamente. -
Se il lavoro ha avuto esito positivo, controlla i tuoi eventi globali Activity Tracker a Francoforte per verificare la riga di log con i dettagli sulla richiesta Trusted Profile. Se il lavoro ha avuto esito negativo, esaminare la propria configurazione e riprovare.