Asociación y desasociación de políticas de acceso a las entradas de acceso y desde las mismas - Amazon EKS

Ayude a mejorar esta página

¿Quiere contribuir a esta guía del usuario? Desplácese hasta el final de esta página y seleccione Editar esta página en GitHub. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.

Asociación y desasociación de políticas de acceso a las entradas de acceso y desde las mismas

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.

Requisitos previos
  • 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 y DisassociateAccessPolicy. 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 especificar dev-* 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 o ClusterRole de Kubernetes que estén especificados en cualquier objeto de Role y RoleBinding 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 de Role o ClusterRole 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 username o --as-group group-name, está obligando 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 al que se hace pasar la entidad principal de IAM son los permisos de Kubernetes que usted concedió en los objetos de Role o ClusterRole de Kubernetes que 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 se haga pasar por 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 de Role o ClusterRole 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 usuario en 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
Cómo asociar una política de acceso a una entrada de acceso mediante la AWS Management Console
  1. Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters.

  2. Elija el nombre del clúster que tenga una entrada de acceso a la que desea asociar una política de acceso.

  3. Elija la pestaña Acceso.

  4. 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.

  5. Elija Asociar política de acceso.

  6. 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.

  7. 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, luego 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.

  8. Seleccione Añadir política de acceso.

AWS CLI
Requisito previo

La versión 2.12.3 o posterior, o bien, la versión 1.27.160 o posterior de la AWS Command Line Interface (AWS CLI) instalada y configurada en su dispositivo o AWS CloudShell. Para comprobar su versión actual, utilice aws --version | cut -d / -f2 | cut -d ' ' -f1. Los administradores de paquetes tales como yum, 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 Instalar, actualizar y desinstalar la AWS CLI y Configuración rápida con aws configure en la Guía del usuario de AWS Command Line Interface. 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 AWS CLI en el directorio de inicio en la Guía del usuario de AWS CloudShell.

Cómo asociar una política de acceso a una entrada de acceso
  1. 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.

  2. 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"
        ]
    }
  3. 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 IAM my-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 nombres my-namespace1 y my-namespace2 de Kubernetes. Reemplace my-cluster por el nombre de su clúster, 111122223333 con su ID de Cuenta de AWS y my-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=my-namespace1,my-namespace2 con 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, volvería a ejecutar el comando usando solamente type=namespace,namespaces=my-namespace1. Si quisiera cambiar el alcance de namespace a cluster, volvería a ejecutar el comando usando type=cluster y eliminando type=namespace,namespaces=my-namespace1,my-namespace2.

Cómo desasociar una política de acceso de una entrada de acceso
  1. 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.

  2. 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 de AmazonEKSViewPolicy para los objetos en los espacios de nombres my-namespace1 y my-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 en la documentación de Kubernetes.

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 a su entrada de acceso.

ARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminPolicy

Grupos de la API de Kubernetes Recursos de Kubernetes Verbos de Kubernetes (permisos)
apps daemonsets, deployments, deployments/rollback, deployments/scale, replicasets, replicasets/scale, statefulsets, statefulsets/scale create, delete, deletecollection, patch, update
apps controllerrevisions, daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, replicasets, replicasets/scale, replicasets/status, statefulsets, statefulsets/scale, statefulsets/status get, list, watch
authorization.k8s.io localsubjectaccessreviews create
autoscaling horizontalpodautoscalers create, delete, deletecollection, patch, update
autoscaling horizontalpodautoscalers, horizontalpodautoscalers/status get, list, watch
batch cronjobs, jobs create, delete, deletecollection, patch, update
batch cronjobs, cronjobs/status, jobs, jobs/status get, list, watch
discovery.k8s.io endpointslices get, list, watch
extensions daemonsets, deployments, deployments/rollback, deployments/scale, ingresses, networkpolicies, replicasets, replicasets/scale, replicationcontrollers/scale create, delete, deletecollection, patch, update
extensions daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, ingresses, ingresses/status, networkpolicies, replicasets, replicasets/scale, replicasets/status, replicationcontrollers/scale get, list, watch
networking.k8s.io ingresses, ingresses/status, networkpolicies get, list, watch
networking.k8s.io ingresses, networkpolicies create, delete, deletecollection, patch, update
policy poddisruptionbudgets create, delete, deletecollection, patch, update
policy poddisruptionbudgets, poddisruptionbudgets/status get, list, watch
rbac.authorization.k8s.io rolebindings, roles create, delete, deletecollection, get, list, patch, update, watch
configmaps, endpoints, persistentvolumeclaims, persistentvolumeclaims/status, pods, replicationcontrollers, replicationcontrollers/scale, serviceaccounts, services, services/status get,list, watch
pods/attach, pods/exec, pods/portforward, pods/proxy, secrets, services/proxy get, list, watch
configmaps, events, persistentvolumeclaims, replicationcontrollers, replicationcontrollers/scale, secrets, serviceaccounts, services, services/proxy create, delete, deletecollection, patch, update
pods, pods/attach, pods/exec, pods/portforward, pods/proxy create, delete, deletecollection, patch, update
serviceaccounts impersonate
bindings, events, limitranges, namespaces/status, pods/log, pods/status, replicationcontrollers/status, resourcequotas, resourcequotas/status get, list, watch
namespaces get,list, watch

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 AmazonEKSAdminPolicy a su entrada de acceso.

ARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy

Grupos de la API de Kubernetes Kubernetes nonResourceURLs 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 los secretos de Kubernetes.

ARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSAdminViewPolicy

Grupos de la API de Kubernetes Recursos de Kubernetes Verbos de Kubernetes (permisos)
* * get, list, watch

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 la API de Kubernetes Recursos de Kubernetes Verbos de Kubernetes (permisos)
apps daemonsets, deployments, deployments/rollback, deployments/scale, replicasets, replicasets/scale, statefulsets, statefulsets/scale create, delete, deletecollection, patch, update
apps controllerrevisions, daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, replicasets, replicasets/scale, replicasets/status, statefulsets, statefulsets/scale, statefulsets/status get, list, watch
autoscaling horizontalpodautoscalers, horizontalpodautoscalers/status get, list, watch
autoscaling horizontalpodautoscalers create, delete, deletecollection, patch, update
batch cronjobs, jobs create, delete, deletecollection, patch, update
batch cronjobs, cronjobs/status, jobs, jobs/status get, list, watch
discovery.k8s.io endpointslices get, list, watch
extensions daemonsets, deployments, deployments/rollback, deployments/scale, ingresses, networkpolicies, replicasets, replicasets/scale, replicationcontrollers/scale create, delete, deletecollection, patch, update
extensions daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, ingresses, ingresses/status, networkpolicies, replicasets, replicasets/scale, replicasets/status, replicationcontrollers/scale get, list, watch
networking.k8s.io ingresses, networkpolicies create, delete, deletecollection, patch, update
networking.k8s.io ingresses, ingresses/status, networkpolicies get, list, watch
policy poddisruptionbudgets create, delete, deletecollection, patch, update
policy poddisruptionbudgets, poddisruptionbudgets/status get, list, watch
namespaces get, list, watch
pods/attach, pods/exec, pods/portforward, pods/proxy, secrets, services/proxy get, list, watch
serviceaccounts impersonate
pods, pods/attach, pods/exec, pods/portforward, pods/proxy create, delete, deletecollection, patch, update
configmaps, events, persistentvolumeclaims, replicationcontrollers, replicationcontrollers/scale, secrets, serviceaccounts, services, services/proxy create, delete, deletecollection, patch, update
configmaps, endpoints, persistentvolumeclaims, persistentvolumeclaims/status, pods, replicationcontrollers, replicationcontrollers/scale, serviceaccounts, services, services/status get, list, watch
bindings, events, limitranges, namespaces/status, pods/log, pods/status, replicationcontrollers/status, resourcequotas, resourcequotas/status get, list, watch

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 la API de Kubernetes Recursos de Kubernetes Verbos de Kubernetes (permisos)
apps controllerrevisions, daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, replicasets, replicasets/scale, replicasets/status, statefulsets, statefulsets/scale, statefulsets/status get, list, watch
autoscaling horizontalpodautoscalers, horizontalpodautoscalers/status get, list, watch
batch cronjobs, cronjobs/status, jobs, jobs/status get, list, watch
discovery.k8s.io endpointslices get, list, watch
extensions daemonsets, daemonsets/status, deployments, deployments/scale, deployments/status, ingresses, ingresses/status, networkpolicies, replicasets, replicasets/scale, replicasets/status, replicationcontrollers/scale get, list, watch
networking.k8s.io ingresses, ingresses/status, networkpolicies get, list, watch
policy poddisruptionbudgets, poddisruptionbudgets/status get, list, watch
configmaps, endpoints, persistentvolumeclaims, persistentvolumeclaims/status, pods, replicationcontrollers, replicationcontrollers/scale, serviceaccounts, services, services/status get, list, watch
bindings, events, limitranges, namespaces/status, pods/log, pods/status, replicationcontrollers/status, resourcequotas, resourcequotas/status get, list, watch
namespaces get, list, watch

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 la Página de historial de documentos de Amazon EKS.

Cambio Descripción Fecha
Add AmazonEKSAdminViewPolicy 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