Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
Concesión de acceso a los pods a los recursos de AWS en función de las etiquetas
El control de acceso basado en atributos (ABAC) concede derechos a los usuarios mediante políticas que combinan atributos. 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 agregar la compatibilidad con las etiquetas de sesión de roles, puede 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.
Ejemplo de política con etiquetas
A continuación, se muestra un ejemplo de política de IAM que concede permisos s3:GetObject
cuando el objeto correspondiente 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}" } } } ] }
Activación o desactivación de etiquetas de sesión
EKS Pod Identity agrega un conjunto predefinido de etiquetas de sesión cuando asume el rol. Estas etiquetas de sesión permiten a los administradores crear un único rol que funcione en todos los recursos al permitir el acceso a los recursos de AWS en función de las etiquetas coincidentes.
Activación de las etiquetas de sesión
Las etiquetas de sesión se activan automáticamente con EKS Pod Identity, por lo que no es necesario que haga nada. De forma predeterminada, EKS Pod Identity adjunta un conjunto de etiquetas predefinidas a la sesión. Para hacer referencia a estas etiquetas en las políticas, utilice la sintaxis ${aws:PrincipalTag/
seguida de la clave de etiqueta. Por ejemplo, ${aws:PrincipalTag/kubernetes-namespace}
.
-
eks-cluster-arn
-
eks-cluster-name
-
kubernetes-namespace
-
kubernetes-service-account
-
kubernetes-pod-name
-
kubernetes-pod-uid
Desactivación de las etiquetas de sesión
AWS comprime las políticas de sesión insertadas, los ARN de políticas administradas y las etiquetas de sesión en un formato binario empaquetado que tiene un límite separado. Si recibe un error PackedPolicyTooLarge
que indica que el formato binario empaquetado ha superado el límite de tamaño, puede desactivar las etiquetas de sesión agregadas por EKS Pod Identity para intentar reducir el tamaño. Para desactivar estas etiquetas de sesión, siga estos pasos:
-
Abra la consola de Amazon EKS
. -
En el panel de navegación izquierdo, seleccione Clústeres y, luego, seleccione el nombre del clúster que desea modificar.
-
Elija la pestaña Acceso.
-
En Asociaciones de Pod Identity, elija el ID de asociación que desea modificar en ID de asociación y, a continuación, Editar.
-
En Etiquetas de sesión, elija Desactivar etiquetas de sesión.
-
Seleccione Save changes (Guardar cambios).
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
.