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:
-
Aprire la Console Amazon EKS
. -
Nel riquadro di navigazione a sinistra, seleziona Cluster, quindi seleziona il nome del cluster che desideri modificare.
-
Scegli la scheda Accesso.
-
Nelle associazioni Pod Identity, scegli l’ID di associazione che desideri modificare in ID di associazione, quindi scegli Modifica.
-
In Tag di sessione, scegli Disattiva i tag di sessione.
-
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-namee un valoremy-clusteralla sessione quando EKS assume il ruolo di cliente e -
Hai aggiunto anche un tag
eks-cluster-nameal ruolo IAM con valoremy-own-cluster.
In questo caso, il primo ha la precedenza e il valore del tag per eks-cluster-name sarà my-cluster.