Concesión de acceso a los pods a los recursos de AWS en función de las etiquetas
Pod Identity de EKS adjunta etiquetas a las credenciales temporales de cada pod con atributos como el nombre del clúster, el espacio de nombres y el nombre de la cuenta de servicio. Estas etiquetas de sesión de roles permiten a los administradores crear un único rol que funcione en todas las cuentas de servicio al permitir el acceso a los recursos de AWS en función de las etiquetas coincidentes. Al añadir la compatibilidad con las etiquetas de sesión de roles, los clientes pueden reforzar los límites de seguridad entre los clústeres y las cargas de trabajo dentro de los clústeres, mientras reutilizan los mismos roles y políticas de IAM.
Por ejemplo, la siguiente política permite la acción s3:GetObject
si el objeto está etiquetado con el nombre del clúster de 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}" } } } ] }
Lista de etiquetas de sesión agregadas por Pod Identity de EKS
La siguiente lista contiene todas las claves de las etiquetas que se añaden a la solicitud AssumeRole
realizada por Amazon EKS. Para usar estas etiquetas en las políticas, utilice ${aws:PrincipalTag/
seguido de la clave, por ejemplo ${aws:PrincipalTag/kubernetes-namespace}
.
-
eks-cluster-arn
-
eks-cluster-name
-
kubernetes-namespace
-
kubernetes-service-account
-
kubernetes-pod-name
-
kubernetes-pod-uid
Etiquetas entre cuentas
Todas las etiquetas de sesión que agrega Pod Identity de EKS son transitivas; las claves y los valores de las etiquetas se transfieren a cualquier acción AssumeRole
que sus cargas de trabajo utilicen para cambiar los roles a otra cuenta. Puede utilizar estas etiquetas en las políticas de otras cuentas para limitar el acceso en situaciones entre cuentas. Para obtener más información, consulte Encadenar roles con etiquetas de sesión en la Guía del usuario de IAM.
Etiquetas personalizadas
Pod Identity de Amazon EKS no puede agregar etiquetas personalizadas adicionales a la acción AssumeRole
que realiza. Sin embargo, las etiquetas que se aplican al rol de IAM siempre están disponibles en el mismo formato: ${aws:PrincipalTag/
seguido de la clave, por ejemplo ${aws:PrincipalTag/MyCustomTag}
.
nota
Las etiquetas agregadas a la sesión mediante la solicitud de sts:AssumeRole
tienen prioridad en caso de conflicto. Por ejemplo, supongamos que:
-
Amazon EKS agrega una clave
eks-cluster-name
y un valormy-cluster
a la sesión cuando EKS asume el rol de cliente y -
Agrega una etiqueta
eks-cluster-name
al rol de IAM con el valormy-own-cluster
.
En este caso, prevalecerá la primera y el valor de la etiqueta eks-cluster-name
será my-cluster
.