Aiutaci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Accedi alle AWS risorse utilizzando i ruoli IAM di EKS Pod Identity Target
Quando esegui applicazioni su Amazon Elastic Kubernetes Service (Amazon EKS), potresti dover accedere AWS a risorse che esistono nello stesso account o in account diversi. AWS Questa guida mostra come configurare l'accesso tra questi account utilizzando EKS Pod Identity, che consente ai pod Kubernetes di accedere ad altre risorse. AWS
Prerequisiti
Prima di iniziare, assicurati di aver completato i seguenti passaggi:
Come funziona
Pod Identity consente alle applicazioni del cluster EKS di accedere alle AWS risorse di tutti gli account attraverso un processo chiamato concatenamento dei ruoli. Quando crei un'associazione Pod Identity, puoi fornire due ruoli IAM: un ruolo EKS Pod Identity nello stesso account del cluster EKS e un ruolo IAM Target dall'account contenente AWS le tue risorse (come i bucket S3 o le tabelle DynamoDB). Il ruolo EKS Pod Identity deve trovarsi nell'account del cluster EKS a causa dei PassRole requisiti IAM, mentre il ruolo IAM di Target può essere in qualsiasi account. AWS PassRole consente a un' AWS entità di delegare l'assunzione del ruolo a un altro servizio. EKS Pod Identity utilizza PassRole per connettere un ruolo a un account di servizio Kubernetes, richiedendo che sia il ruolo che l'identità che lo trasmette si trovino nello stesso AWS account del cluster EKS. Quando il pod dell'applicazione deve accedere alle AWS risorse, richiede le credenziali a Pod Identity. Pod Identity esegue quindi automaticamente due ipotesi di ruolo in sequenza: prima assume il ruolo EKS Pod Identity, quindi utilizza tali credenziali per assumere il ruolo Target IAM. Questo processo fornisce al pod credenziali temporanee con le autorizzazioni definite nel ruolo di destinazione, consentendo l'accesso sicuro alle risorse di altri account. AWS
Considerazioni sulla memorizzazione nella cache
A causa dei meccanismi di memorizzazione nella cache, gli aggiornamenti a un ruolo IAM in un'associazione Pod Identity esistente potrebbero non avere effetto immediato nei pod in esecuzione sul cluster EKS. Il Pod Identity Agent memorizza nella cache le credenziali IAM in base alla configurazione dell'associazione al momento del recupero delle credenziali. Se l'associazione include solo un ruolo EKS Pod Identity ARN e nessun ruolo Target IAM, le credenziali memorizzate nella cache durano 6 ore. Se l'associazione include sia l'ARN del ruolo EKS Pod Identity che un ruolo IAM di Target, le credenziali memorizzate nella cache durano 59 minuti. La modifica di un'associazione esistente, ad esempio l'aggiornamento dell'ARN del ruolo EKS Pod Identity o l'aggiunta di un ruolo Target IAM, non reimposta la cache esistente. Di conseguenza, l'agente non riconoscerà gli aggiornamenti fino all'aggiornamento delle credenziali memorizzate nella cache. Per applicare le modifiche prima, è possibile ricreare i pod esistenti; in caso contrario, sarà necessario attendere la scadenza della cache.
Passaggio 1: creare e associare un ruolo Target IAM
In questo passaggio, stabilirai una catena di fiducia sicura creando e configurando un ruolo Target IAM. A titolo dimostrativo, creeremo un nuovo ruolo Target IAM per stabilire una catena di fiducia tra due AWS account: il ruolo EKS Pod Identity (ad esempioeks-pod-identity-primary-role
) nell' AWS account del cluster EKS ottiene l'autorizzazione ad assumere il ruolo Target IAM (ad esempioeks-pod-identity-aws-resources
) nel tuo account di destinazione, abilitando l'accesso a AWS risorse come i bucket Amazon S3.
Crea il ruolo Target IAM
-
Apri la console Amazon IAM
. -
Nella barra di navigazione in alto, verifica di aver effettuato l'accesso all'account contenente AWS le risorse (come i bucket S3 o le tabelle DynamoDB) per il tuo ruolo IAM di Target.
-
Nel pannello di navigazione a sinistra, seleziona Ruoli.
-
Scegli il pulsante Crea ruolo, quindi l' AWS account nella sezione «Tipo di entità affidabile».
-
Scegli Altro AWS account, inserisci il tuo numero di AWS account (l'account in cui esiste il tuo ruolo EKS Pod Identity), quindi scegli Avanti.
-
Aggiungi le politiche di autorizzazione che desideri associare al ruolo (ad esempio, AmazonS3FullAccess), quindi scegli Avanti.
-
Inserisci il nome del ruolo, ad esempio
MyCustomIAMTargetRole
, quindi scegli Crea ruolo.
Aggiorna la policy di fiducia di Target IAM Role
-
Dopo aver creato il ruolo, verrai riportato all'elenco dei ruoli. Trova e seleziona il nuovo ruolo che hai creato nel passaggio precedente (ad esempio,
MyCustomIAMTargetRole
). -
Seleziona la scheda Relazioni di attendibilità.
-
Fai clic su Modifica politica di fiducia sul lato destro.
-
Nell'editor delle politiche, sostituisci il codice JSON predefinito con la tua politica di fiducia. Sostituisci i valori segnaposto per il nome del ruolo e
111122223333
nell'ARN del ruolo IAM con l'ID dell' AWS account che ospita il tuo cluster EKS. Per esempio:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws: iam::111122223333:role/eks-pod-identity-primary-role" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws: iam::111122223333:role/eks-pod-identity-primary-role" }, "Action": "sts:TagSession" } ] }
Aggiorna la politica di autorizzazione per il ruolo EKS Pod Identity
In questo passaggio, aggiornerai la politica di autorizzazione del ruolo EKS Pod Identity associato al tuo cluster Amazon EKS aggiungendo l'ARN del ruolo Target IAM come risorsa.
-
Aprire la Console Amazon EKS
. -
Nel riquadro di navigazione a sinistra, seleziona Clusters, quindi seleziona il nome del tuo cluster EKS.
-
Scegli la scheda Accesso.
-
In Associazioni Pod Identity, seleziona il tuo ruolo EKS Pod Identity.
-
Scegli Autorizzazioni, Aggiungi autorizzazioni, quindi Crea politica in linea.
-
Scegli JSON sul lato destro.
-
Nell'editor delle politiche, sostituisci il codice JSON predefinito con la tua politica di autorizzazione. Sostituisci il valore segnaposto per il nome del ruolo e
222233334444
nell'ARN del ruolo IAM con il tuo ruolo IAM Target. Per esempio:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole", "sts:TagSession" ], "Resource": "arn:aws: iam::222233334444:role/eks-pod-identity-aws-resources" } ] }
Fase 2: Associare il ruolo Target IAM a un account di servizio Kubernetes
In questo passaggio, creerai un'associazione tra il ruolo IAM di Target e l'account del servizio Kubernetes nel tuo cluster EKS.
-
Aprire la Console Amazon EKS
. -
Nel riquadro di navigazione a sinistra, seleziona Cluster, quindi seleziona il nome del cluster a cui desideri aggiungere l'associazione.
-
Scegli la scheda Accesso.
-
In Associazioni Pod Identity, scegli Crea.
-
Scegli il ruolo EKS Pod Identity nel ruolo IAM per i tuoi carichi di lavoro da assumere.
-
Scegli il ruolo Target IAM nel ruolo Target IAM che verrà assunto dal ruolo EKS Pod Identity.
-
Nel campo dello spazio dei nomi Kubernetes, inserisci il nome dello spazio dei nomi in cui desideri creare l'associazione (ad esempio,).
my-app-namespace
Questo definisce dove risiede l'account del servizio. -
Nel campo dell'account del servizio Kubernetes, inserisci il nome dell'account di servizio (ad esempio
my-service-account
) che utilizzerà le credenziali IAM. Questo collega il ruolo IAM all'account del servizio. -
Scegli Crea per creare l'associazione.
(Facoltativo) Fase 3: Aggiungere autorizzazioni esterne a un ruolo IAM Target
A volte, potresti dover concedere a terzi l'accesso alle tue AWS risorse (accesso delegato). Ad esempio, decidi di assumere una società terza chiamata Example Corp per monitorare il tuo AWS account e contribuire a ottimizzare i costi. Per tenere traccia delle spese giornaliere, Example Corp deve accedere alle tue AWS risorse. In questo caso, ti consigliamo di aggiungere una policy di fiducia ExternalId
alla tua IAM Target Role per evitare possibili problemi di Confused Deputy.
Modifica la politica di fiducia
-
Dopo aver creato il ruolo, verrai reindirizzato all'elenco dei ruoli. Trova e fai clic sul nuovo ruolo che hai creato nel passaggio precedente (ad esempio,
MyCustomIAMTargetRole
). -
Seleziona la scheda Relazioni di attendibilità.
-
Fai clic su Modifica politica di fiducia sul lato destro.
-
Nell'editor delle politiche, sostituisci il codice JSON predefinito con la tua politica di fiducia. Sostituisci il valore
ExternalId
segnaposto conaws-region/other-account/cluster-name/namespace/service-account-name
, dove «region» è la AWS regione del cluster, «111122223333" è l'altro ID dell' AWS account, «cluster-name» è il nome del cluster EKS, «namespace» è lo spazio dei nomi Kubernetes e "" è il nome dell'account del servizio Kubernetes. service-account-name Per esempio:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws: iam::111122223333:role/eks-pod-identity-primary-role" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "region/111122223333/cluster-name/namespace/service-account-name" } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws: iam::111122223333:role/eks-pod-identity-primary-role" }, "Action": "sts:TagSession" } ] }