Asociación de políticas de acceso a entradas de acceso
Puede asignar una o más políticas de acceso a las entradas de acceso del tipo STANDARD
. Amazon EKS concede automáticamente a los demás tipos de entradas de acceso los permisos necesarios para funcionar correctamente en el clúster. Las políticas de acceso de Amazon EKS incluyen permisos de Kubernetes, no permisos de IAM. Antes de asociar una política de acceso a una entrada de acceso, asegúrese de estar familiarizado con los permisos de Kubernetes incluidos en cada política de acceso. Para obtener más información, consulte Permisos de política de acceso. Si ninguna de las políticas de acceso cumple con sus requisitos, no asocie una política de acceso a una entrada de acceso. En su lugar, especifique uno o más nombres de grupo para la entrada de acceso, y cree y administre objetos de control de acceso basados en roles de Kubernetes. Para obtener más información, consulte Creación de entradas de acceso.
-
Una entrada de acceso existente. Para crear uno, consulte Creación de entradas de acceso.
-
Un rol o usuario de AWS Identity and Access Management con los siguientes permisos:
ListAccessEntries
,DescribeAccessEntry
,UpdateAccessEntry
,ListAccessPolicies
,AssociateAccessPolicy
yDisassociateAccessPolicy
. Para obtener más información, consulte Acciones definidas por Amazon Elastic Kubernetes Service en la Referencia de autorización de servicios.
Antes de asociar políticas de acceso con entradas de acceso, tenga en cuenta los siguientes requisitos:
-
Puede asociar varias políticas de acceso a cada entrada de acceso, pero solo puede asociar cada política a una entrada de acceso una vez. Si asocia varias políticas de acceso, la entidad principal de IAM de la entrada de acceso tendrá todos los permisos incluidos en todas las políticas de acceso asociadas.
-
Puede limitar una política de acceso a todos los recursos de un clúster o especificar el nombre de uno o más espacios de nombres de Kubernetes. Puede utilizar caracteres comodín para el nombre de un espacio de nombres. Por ejemplo, si desea limitar una política de acceso a todos los espacios de nombres que comiencen con
dev-
, puede especificardev-*
como nombre de un espacio de nombres. Asegúrese de que los espacios de nombres existan en su clúster y de que la ortografía coincida con el nombre real del espacio de nombres del clúster. Amazon EKS no confirma la ortografía ni la existencia de los espacios de nombres del clúster. -
Puede cambiar el alcance del acceso de una política de acceso después de asociarla a una entrada de acceso. Si limitó la política de acceso a los espacios de nombres de Kubernetes, puede añadir y eliminar espacios de nombres para la asociación, según sea necesario.
-
Si asocia una política de acceso a una entrada de acceso que también tenga nombres de grupo especificados, la entidad principal de IAM tendrá todos los permisos en todas las políticas de acceso asociadas. También tiene todos los permisos en cualquier objeto de
Role
oClusterRole
de Kubernetes que estén especificados en cualquier objeto deRole
yRoleBinding
de Kubernetes que especifican los nombres de grupo. -
Si ejecuta el comando
kubectl auth can-i --list
, no verá ningún permiso de Kubernetes asignado por las políticas de acceso asociadas a una entrada de acceso para la entidad principal de IAM que esté utilizando cuando ejecute el comando. El comando solo muestra los permisos de Kubernetes si los concedió en los objetos deRole
oClusterRole
de Kubernetes que vinculó a los nombres de grupo o al nombre de usuario que especificó para una entrada de acceso. -
Si se hace pasar por un usuario o un grupo de Kubernetes al interactuar con los objetos de Kubernetes del clúster, por ejemplo, al utilizar el comando
kubectl
con--as
ousername
--as-group
, forzará el uso de una autorización RBAC de Kubernetes. Como resultado, la entidad principal de IAM no tiene permisos asignados por ninguna política de acceso asociada a la entrada de acceso. Los únicos permisos de Kubernetes que tiene el usuario o grupo que está suplantando a la entidad principal de IAM son los permisos de Kubernetes que usted concedió en los objetos degroup-name
Role
oClusterRole
de Kubernetes, los cuales vinculó a los nombres de grupo o al nombre de usuario. Para que su entidad principal de IAM tenga los permisos de las políticas de acceso asociadas, no suplante un usuario o un grupo de Kubernetes. La entidad principal de IAM también seguirá teniendo todos los permisos que le haya concedido en los objetos deRole
oClusterRole
de Kubernetes que usted haya vinculado con los nombres de grupo o el nombre de usuario que especificó para la entrada de acceso. Para obtener más información, consulte Suplantación del usuarioen la documentación de Kubernetes.
Puede asociar una política de acceso a una entrada de acceso mediante la AWS Management Console o la AWS CLI.
AWS Management Console
-
Abra la consola de Amazon EKS
. -
Elija el nombre del clúster que tenga una entrada de acceso a la que desea asociar una política de acceso.
-
Elija la pestaña Acceso.
-
Si el tipo de entrada de acceso es Estándar, puede asociar o desasociar las políticas de acceso de Amazon EKS. Si el tipo de entrada de acceso no es Estándar, entonces esta opción no está disponible.
-
Elija Asociar política de acceso.
-
En Nombre de la política, seleccione la política con los permisos que desea que tenga la entidad principal de IAM. Para ver los permisos incluidos en cada política, consulte Permisos de política de acceso.
-
En Alcance del acceso, elija un alcance del acceso. Si elige Clúster, los permisos en la política de acceso se otorgan a la entidad principal de IAM para los recursos de todos los espacios de nombres de Kubernetes. Si elige espacio de nombres de Kubernetes, entonces puede elegir Añadir nuevo espacio de nombres. En el campo Espacio de nombres que aparece, puede introducir el nombre de un espacio de nombres de Kubernetes del clúster. Si quiere que la entidad principal de IAM tenga los permisos en varios espacios de nombres, puede introducir varios espacios de nombres.
-
Seleccione Añadir política de acceso.
AWS CLI
-
La versión
2.12.3
o posterior, o bien, la versión1.27.160
o posterior de la AWS interfaz de la línea de comandos (AWS CLI) instalada y configurada en su dispositivo o AWS CloudShell. Para comprobar su versión actual, utiliceaws --version | cut -d / -f2 | cut -d ' ' -f1
. Los administradores de paquetes tales comoyum
,apt-get
o Homebrew para macOS suelen estar atrasados varias versiones respecto de la versión de la AWS CLI más reciente. Para instalar la versión más reciente, consulte Instalación y Configuración rápida con aws configure en la AWS Guía del usuario de la Interfaz de la línea de comandos. La versión de AWS CLI instalada en AWS CloudShell también puede estar atrasada varias versiones respecto de la versión más reciente. Para actualizarla, consulte Instalación de la CLI de AWS en su directorio principal en la Guía del usuario de AWS CloudShell. -
Ver las políticas de acceso disponibles.
aws eks list-access-policies --output table
Un ejemplo de salida sería el siguiente.
--------------------------------------------------------------------------------------------------------- | ListAccessPolicies | +-------------------------------------------------------------------------------------------------------+ || accessPolicies || |+---------------------------------------------------------------------+-------------------------------+| || arn | name || |+---------------------------------------------------------------------+-------------------------------+| || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSAdminPolicy | AmazonEKSAdminPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy | AmazonEKSClusterAdminPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSEditPolicy | AmazonEKSEditPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSViewPolicy | AmazonEKSViewPolicy || |+---------------------------------------------------------------------+-------------------------------+|
Para ver los permisos incluidos en cada política, consulte Permisos de política de acceso.
-
Ver las entradas de acceso existentes. Reemplace
my-cluster
por el nombre de su clúster.aws eks list-access-entries --cluster-name my-cluster
Un ejemplo de salida sería el siguiente.
{ "accessEntries": [ "arn:aws:iam::111122223333:role/my-role", "arn:aws:iam::111122223333:user/my-user" ] }
-
Asocie una política de acceso a una entrada de acceso. El siguiente ejemplo asocia la política de acceso de
AmazonEKSViewPolicy
a una entrada de acceso. Siempre que el rol de IAMmy-role
intente acceder a los objetos de Kubernetes del clúster, Amazon EKS autorizará al rol a usar los permisos en la política para acceder únicamente a los objetos de Kubernetes en los espacios de nombresmy-namespace1
ymy-namespace2
de Kubernetes. Reemplacemy-cluster
por el nombre de su clúster,111122223333
con su ID de cuenta de AWS ymy-role
por el nombre del rol de IAM para el que desea que Amazon EKS autorice el acceso a los objetos del clúster de Kubernetes.aws eks associate-access-policy --cluster-name my-cluster --principal-arn arn:aws:iam::111122223333:role/my-role \ --access-scope type=namespace,namespaces=my-namespace1,my-namespace2 --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy
Si desea que la entidad principal de IAM tenga los permisos en todo el clúster, reemplace
type=namespace,namespaces=
conmy-namespace1
,my-namespace2
type=cluster
. Si desea asociar varias políticas de acceso a la entrada de acceso, ejecute el comando varias veces, cada una con una política de acceso única. Cada política de acceso asociada tiene su propio alcance.nota
Si más adelante desea cambiar el alcance de una política de acceso asociada, vuelva a ejecutar el comando anterior con el nuevo alcance. Por ejemplo, si quisiera eliminar
my-namespace2
, debería volver a ejecutar el comando usando solamentetype=namespace,namespaces=
. Si quisiera cambiar el alcance demy-namespace1
namespace
acluster
, debería volver a ejecutar el comando usandotype=cluster
y eliminartype=namespace,namespaces=
.my-namespace1
,my-namespace2
-
Determine qué políticas de acceso están asociadas a una entrada de acceso.
aws eks list-associated-access-policies --cluster-name my-cluster --principal-arn arn:aws:iam::111122223333:role/my-role
Un ejemplo de salida sería el siguiente.
{ "clusterName": "my-cluster", "principalArn": "arn:aws:iam::111122223333", "associatedAccessPolicies": [ { "policyArn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy", "accessScope": { "type": "cluster", "namespaces": [] }, "associatedAt": "2023-04-17T15:25:21.675000-04:00", "modifiedAt": "2023-04-17T15:25:21.675000-04:00" }, { "policyArn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminPolicy", "accessScope": { "type": "namespace", "namespaces": [ "my-namespace1", "my-namespace2" ] }, "associatedAt": "2023-04-17T15:02:06.511000-04:00", "modifiedAt": "2023-04-17T15:02:06.511000-04:00" } ] }
En el ejemplo anterior, la entidad principal de IAM para esta entrada de acceso tiene permisos de visualización en todos los espacios de nombres del clúster y permisos de administrador en dos espacios de nombres de Kubernetes.
-
Desasocie una política de acceso de una entrada de acceso. En este ejemplo, la política de
AmazonEKSAdminPolicy
está disociada de una entrada de acceso. Sin embargo, la entidad principal de IAM conserva los permisos de la política de acceso deAmazonEKSViewPolicy
para los objetos en los espacios de nombresmy-namespace1
ymy-namespace2
, ya que esa política de acceso no está disociada de la entrada de acceso.aws eks disassociate-access-policy --cluster-name my-cluster --principal-arn arn:aws:iam::111122223333:role/my-role \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminPolicy
Permisos de política de acceso
Las políticas de acceso incluyen rules
que contienen (permisos) de verbs
y resources
de Kubernetes. Las políticas de acceso no incluyen los permisos ni los recursos de IAM. Al igual que los objetos de Role
y ClusterRole
de Kubernetes, las políticas de acceso solo incluyen rules
de allow
. No puede modificar el contenido de una política de acceso. No puede crear sus propias políticas de acceso. Si los permisos de las políticas de acceso no satisfacen sus necesidades, cree objetos RBAC de Kubernetes y especifique los nombres de grupo para las entradas de acceso. Para obtener más información, consulte Creación de entradas de acceso. Los permisos contenidos en las políticas de acceso son similares a los permisos de los roles del clúster orientados a los usuarios de Kubernetes. Para obtener más información, consulte Roles orientados a los usuarios
Elija cualquier política de acceso para ver su contenido. Cada fila de cada tabla en cada política de acceso es una regla independiente.
Esta política de acceso incluye permisos que otorgan a una entidad principal de IAM la mayoría de los permisos a los recursos. Cuando se asocia a una entrada de acceso, su alcance de acceso suele ser uno o más espacios de nombres de Kubernetes. Si desea que una entidad principal de IAM tenga acceso de administrador a todos los recursos de su clúster, asocie la política de acceso de AmazonEKSClusterAdminPolicy AmazonEKSClusterAdminPolicy a su entrada de acceso.
ARN:
arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminPolicy
Grupos de API de Kubernetes | Recursos de Kubernetes | Verbos de Kubernetes (permisos) |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Esta política de acceso incluye permisos que permiten a un administrador de la entidad principal de IAM acceder a un clúster. Cuando se asocia a una entrada de acceso, su alcance de acceso suele ser el clúster, en lugar de un espacio de nombres de Kubernetes. Si desea que una entidad principal de IAM tenga un alcance administrativo más limitado, considere la posibilidad de asociar la política de acceso de AmazonEKSAdminPolicyAmazonEKSAdminPolicy a su entrada de acceso.
ARN:
arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy
Grupos de API de Kubernetes | nonResourceURLs de Kubernetes | Recursos de Kubernetes | Verbos de Kubernetes (permisos) |
---|---|---|---|
|
|
|
|
|
|
Esta política de acceso incluye permisos que permiten a una entidad principal de IAM acceder para enumerar/visualizar todos los recursos en un clúster. Tenga en cuenta que esto incluye Kubernetes Secrets.
ARN:
arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminViewPolicy
Grupos de API de Kubernetes | Recursos de Kubernetes | Verbos de Kubernetes (permisos) |
---|---|---|
|
|
|
Esta política de acceso incluye permisos que permiten a una entidad principal de IAM editar la mayoría de los recursos de Kubernetes.
ARN:
arn:aws:eks::aws:cluster-access-policy/AmazonEKSEditPolicy
Grupos de API de Kubernetes | Recursos de Kubernetes | Verbos de Kubernetes (permisos) |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Esta política de acceso incluye permisos que permiten a una entidad principal de IAM ver la mayoría de los recursos de Kubernetes.
ARN:
arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy
Grupos de API de Kubernetes | Recursos de Kubernetes | Verbos de Kubernetes (permisos) |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Actualizaciones de la política de acceso
Vea detalles sobre las actualizaciones de las políticas de acceso desde su introducción. Para obtener alertas automáticas sobre cambios en esta página, suscríbase a la fuente RSS en Historial de documentos.
Cambio | Descripción | Fecha |
---|---|---|
Add |
Agregue una nueva política para ampliar el acceso a las vistas, incluidos recursos como Secretos. |
23 de abril de 2024 |
Se introdujeron políticas de acceso. |
Amazon EKS introdujo políticas de acceso. |
29 de mayo de 2023 |