Concessione dell’accesso dei pod alle risorse AWS in base ai tag - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Concessione dell’accesso dei pod alle risorse AWS in base ai tag

Il controllo degli accessi basato su attributi (ABAC) concede diritti agli utenti attraverso policy che combinano gli attributi. EKS Pod Identity allega i tag alle credenziali temporanee di ciascun pod con attributi come nome cluster, namespace e nome account di servizio. Tali tag di sessione di ruolo consentono agli amministratori di creare un singolo ruolo che può funzionare su più account di servizio, permettendo l’accesso alle risorse AWS in base ai tag corrispondenti. Aggiungendo il supporto per i tag di sessione dei ruoli, puoi imporre limiti di sicurezza più rigorosi tra i cluster e i carichi di lavoro all’interno dei cluster, riutilizzando al contempo gli stessi ruoli IAM e le stesse policy IAM.

Policy esemplificativa con tag

Di seguito è riportato un esempio di policy IAM che concede a s3:GetObject autorizzazioni quando l’oggetto corrispondente è etichettato con il nome del cluster EKS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/eks-cluster-name": "${aws:PrincipalTag/eks-cluster-name}" } } } ] }

Abilitare o disabilitare i tag di sessione

EKS Pod Identity aggiunge un set predefinito di tag di sessione quando assume il ruolo. Questi tag di sessione permettono agli amministratori di per creare un singolo ruolo che può funzionare su più risorse consentendo l’accesso alle risorse AWS in base ai tag corrispondenti.

Disattivare i tag di sessione

I tag di sessione sono abilitati automaticamente con EKS Pod Identity: non è richiesta alcuna azione da parte dell’utente. Per impostazione predefinita, EKS Pod Identity allega una serie di tag predefiniti alla sessione. Per fare riferimento a tali tag nelle politiche, utilizza la sintassi ${aws:PrincipalTag/ seguita dalla chiave del tag. Ad esempio, ${aws:PrincipalTag/kubernetes-namespace}.

  • eks-cluster-arn

  • eks-cluster-name

  • kubernetes-namespace

  • kubernetes-service-account

  • kubernetes-pod-name

  • kubernetes-pod-uid

Disattiva i tag di sessione

AWS comprime le policy di sessione in linea, gli ARN delle policy gestite e i tag di sessione in un formato binario compresso con un limite separato. Se ricevi un errore PackedPolicyTooLarge che indica che il formato binario compresso ha superato il limite di dimensione, puoi tentare ridurlo disattivando i tag di sessione aggiunti da EKS Pod Identity. Per disattivare questi tag di sessione, procedi nel seguente modo:

  1. Aprire la Console Amazon EKS.

  2. Nel riquadro di navigazione a sinistra, seleziona Cluster, quindi seleziona il nome del cluster che desideri modificare.

  3. Scegli la scheda Accesso.

  4. Nelle associazioni Pod Identity, scegli l’ID di associazione che desideri modificare in ID di associazione, quindi scegli Modifica.

  5. In Tag di sessione, scegli Disattiva i tag di sessione.

  6. Scegli Save changes (Salva modifiche).

Tag tra account

Tutti i tag di sessione aggiunti da EKS Pod Identity sono transitivi; le chiavi e i valori dei tag vengono passati a tutte le azioni AssumeRole utilizzate dai carichi di lavoro per cambiare ruolo in un altro account. È possibile utilizzare questi tag nelle policy di altri account per limitare l'accesso in scenari tra account. Per ulteriori informazioni, consulta Concatenamento di ruoli con i tag di sessione nella Guida per l'utente di IAM.

Tag personalizzati

EKS Pod Identity non può aggiungere tag personalizzati supplementari all’azione AssumeRole che esegue. Tuttavia, i tag applicati al ruolo IAM sono sempre disponibili nello stesso formato: ${aws:PrincipalTag/ seguito dalla chiave, ad esempio ${aws:PrincipalTag/MyCustomTag}.

Nota

I tag aggiunti alla sessione tramite la richiesta sts:AssumeRole hanno la precedenza in caso di conflitto. Ad esempio, supponiamo che:

  • Amazon EKS aggiunge una chiave eks-cluster-name e un valore my-cluster alla sessione quando EKS assume il ruolo di cliente e

  • Hai aggiunto anche un tag eks-cluster-name al ruolo IAM con valore my-own-cluster.

In questo caso, il primo ha la precedenza e il valore del tag per eks-cluster-name sarà my-cluster.