Concesión de acceso a los pods a los recursos de AWS en función de las etiquetas - Amazon EKS

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 valor my-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 valor my-own-cluster.

En este caso, prevalecerá la primera y el valor de la etiqueta eks-cluster-name será my-cluster.