Associer les politiques d'accès aux entrées d'accès - Amazon EKS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Associer les politiques d'accès aux entrées d'accès

Vous pouvez attribuer une ou plusieurs stratégies d'accès à des entrées d'accès de type STANDARD. Amazon accorde EKS automatiquement aux autres types d'entrées d'accès les autorisations nécessaires pour fonctionner correctement dans votre cluster. Les politiques EKS d'accès d'Amazon incluent Kubernetes des autorisations, pas IAM des autorisations. Avant d'associer une politique d'accès à une entrée d'accès, assurez-vous que vous connaissez le Kubernetes autorisations incluses dans chaque politique d'accès. Pour de plus amples informations, veuillez consulter Autorisations des stratégies d'accès. Si aucune des politiques d'accès ne répond à vos exigences, n'associez aucune politique d'accès à une entrée d'accès. Spécifiez plutôt un ou plusieurs noms de groupe pour l'entrée d'accès, puis créez et gérez Kubernetes objets de contrôle d'accès basés sur les rôles. Pour de plus amples informations, veuillez consulter Création d'entrées d'accès.

  • Une entrée d'accès existante. Pour en créer un, consultez Création d'entrées d'accès.

  • Un rôle ou un utilisateur AWS Identity and Access Management disposant des autorisations suivantes : ListAccessEntriesDescribeAccessEntry,UpdateAccessEntry,ListAccessPolicies,AssociateAccessPolicy, etDisassociateAccessPolicy. Pour plus d'informations, consultez la rubrique Actions définies par Amazon Elastic Kubernetes Service dans la Référence des autorisations de service.

Avant d'associer des stratégies d'accès à des entrées d'accès, tenez compte des exigences suivantes :

  • Vous pouvez associer plusieurs stratégies d'accès à chaque entrée d'accès, mais vous ne pouvez associer chaque politique à une entrée d'accès qu'une seule fois. Si vous associez plusieurs politiques d'accès, le IAM principal de l'entrée d'accès dispose de toutes les autorisations incluses dans toutes les politiques d'accès associées.

  • Vous pouvez étendre une politique d'accès à toutes les ressources d'un cluster ou en spécifiant le nom d'une ou de plusieurs Kubernetes espaces de noms. Vous pouvez utiliser des caractères génériques pour le nom d'un espace de noms. Par exemple, si vous souhaitez étendre une stratégie d'accès à tous les espaces de noms commençant par dev-, vous pouvez spécifier dev-* sous forme de nom d'espace de noms. Assurez-vous que les espaces de noms existent sur votre cluster et que votre orthographe correspond au nom réel de l'espace de noms du cluster. Amazon EKS ne confirme ni l'orthographe ni l'existence des espaces de noms de votre cluster.

  • Vous pouvez modifier la portée d'accès d'une stratégie d'accès après l'avoir associée à une entrée d'accès. Si vous avez défini la politique d'accès à Kubernetes espaces de noms, vous pouvez ajouter et supprimer des espaces de noms pour l'association, si nécessaire.

  • Si vous associez une politique d'accès à une entrée d'accès dont les noms de groupe sont également spécifiés, le IAM principal dispose de toutes les autorisations dans toutes les politiques d'accès associées. Il dispose également de toutes les autorisations Kubernetes Roleou ClusterRole un objet spécifié dans n'importe quel Kubernetes Roleet RoleBinding des objets qui spécifient les noms des groupes.

  • Si vous exécutez la kubectl auth can-i --list commande, vous n'en verrez aucune Kubernetes autorisations attribuées par les politiques d'accès associées à une entrée d'accès pour le IAM principal que vous utilisez lorsque vous exécutez la commande. La commande affiche uniquement Kubernetes autorisations si vous les avez accordées dans Kubernetes Roleou ClusterRole des objets que vous avez liés aux noms de groupe ou au nom d'utilisateur que vous avez spécifiés pour une entrée d'accès.

  • Si vous vous faites passer pour un Kubernetes utilisateur ou groupe lors de l'interaction avec Kubernetes objets de votre cluster, tels que l'utilisation de la kubectl commande avec --as username ou --as-group group-name si vous forcez l'utilisation de Kubernetes RBACautorisation. Par conséquent, le IAM principal ne dispose d'aucune autorisation attribuée par les politiques d'accès associées à l'entrée d'accès. Le seul Kubernetes les autorisations dont dispose l'utilisateur ou le groupe dont le IAM principal usurpe l'identité sont les suivantes : Kubernetes autorisations que vous leur avez accordées dans Kubernetes Roleou ClusterRole des objets que vous avez liés aux noms de groupe ou au nom d'utilisateur. Pour que votre IAM principal dispose des autorisations prévues dans les politiques d'accès associées, ne vous faites pas passer pour un Kubernetes utilisateur ou groupe. Le IAM directeur conservera également les autorisations que vous lui avez accordées dans le Kubernetes Roleou ClusterRole des objets que vous avez liés aux noms de groupe ou d'utilisateur que vous avez spécifiés pour l'entrée d'accès. Pour plus d'informations, consultez la section Usurpation d'identité d'un utilisateur dans le Kubernetes .

Vous pouvez associer une politique d'accès à une entrée d'accès à l'aide du AWS Management Console ou du AWS CLI.

AWS Management Console

  1. Ouvrez la EKSconsole Amazon.

  2. Choisissez le nom du cluster qui possède une entrée d'accès à laquelle associer une stratégie d'accès.

  3. Choisissez l'onglet Access.

  4. Si le type d'entrée d'accès est Standard, vous pouvez associer ou dissocier les politiques d'EKSaccès d'Amazon. Si le type de votre entrée d'accès est autre que Standard, cette option n'est pas disponible.

  5. Choisissez Associer la stratégie d'accès.

  6. Dans Nom de la politique, sélectionnez la politique avec les autorisations que vous souhaitez IAM attribuer au principal. Pour consulter les autorisations incluses dans chaque stratégie, consultez Autorisations des stratégies d'accès.

  7. Pour Portée d'accès, choisissez une portée d'accès. Si vous choisissez Cluster, les autorisations définies dans la politique d'accès sont accordées au IAM principal pour toutes les ressources Kubernetes espaces de noms. Si tu le souhaites Kubernetes espace de noms, vous pouvez ensuite choisir Ajouter un nouvel espace de noms. Dans le champ Namespace qui apparaît, vous pouvez saisir le nom d'un Kubernetes espace de noms sur votre cluster. Si vous souhaitez que le IAM principal dispose des autorisations sur plusieurs espaces de noms, vous pouvez saisir plusieurs espaces de noms.

  8. Choisissez Ajouter une stratégie d'accès.

AWS CLI

  1. Version 2.12.3 ou version ultérieure 1.27.160 ou version ultérieure de l'interface de ligne de AWS commande (AWS CLI) installée et configurée sur votre appareil ou AWS CloudShell. Pour vérifier votre version actuelle, utilisez aws --version | cut -d / -f2 | cut -d ' ' -f1. Des gestionnaires de packages tels que yumapt-get, ou Homebrew for macOS ont souvent plusieurs versions de retard par rapport à la dernière version du AWS CLI. Pour installer la dernière version, consultez la section Installation et configuration rapide avec aws configure dans le Guide de l'utilisateur de l'interface de ligne de AWS commande. La AWS CLI version installée AWS CloudShell peut également avoir plusieurs versions de retard par rapport à la dernière version. Pour le mettre à jour, consultez la section Installation AWS CLI dans votre répertoire personnel dans le guide de AWS CloudShell l'utilisateur.

  2. Affichez les stratégies d'accès disponibles.

    aws eks list-access-policies --output table

    L'exemple qui suit illustre un résultat.

    --------------------------------------------------------------------------------------------------------- | 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 || |+---------------------------------------------------------------------+-------------------------------+|

    Pour consulter les autorisations incluses dans chaque stratégie, consultez Autorisations des stratégies d'accès.

  3. Consultez vos entrées d'accès existantes. Remplacez my-cluster avec le nom de votre cluster.

    aws eks list-access-entries --cluster-name my-cluster

    L'exemple qui suit illustre un résultat.

    { "accessEntries": [ "arn:aws: iam::111122223333:role/my-role", "arn:aws: iam::111122223333:user/my-user" ] }
  4. Associez une stratégie d'accès à une entrée d'accès. L'exemple suivant associe la stratégie d'accès AmazonEKSViewPolicy à une entrée d'accès. Chaque fois que my-role IAMtentatives d'accès au rôle Kubernetes objets du cluster, Amazon EKS autorisera le rôle à utiliser les autorisations définies dans la politique d'accès Kubernetes objets dans le my-namespace1 and my-namespace2 Kubernetes espaces de noms uniquement. Remplacez my-cluster avec le nom de votre cluster, 111122223333 avec votre identifiant de AWS compte, et my-role avec le nom du IAM rôle auquel vous souhaitez qu'Amazon EKS autorise l'accès Kubernetes objets de cluster pour.

    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 vous souhaitez que le IAM principal dispose des autorisations à l'échelle du cluster, remplacez partype=namespace,namespaces=my-namespace1,my-namespace2 . type=cluster Si vous souhaitez associer plusieurs stratégies d'accès à l'entrée d'accès, exécutez la commande plusieurs fois, chaque fois avec une stratégie d'accès unique. Chaque stratégie d'accès associée possède sa propre portée.

    Note

    Si vous souhaitez ultérieurement modifier la portée d'une stratégie d'accès associée, réexécutez la commande précédente avec la nouvelle portée. Par exemple, si vous souhaitez supprimer my-namespace2, vous exécuteriez à nouveau la commande en utilisant type=namespace,namespaces=my-namespace1 uniquement. Si vous souhaitez modifier la portée de namespace àcluster, vous devez exécuter à nouveau la commande en utilisanttype=cluster, en supprimanttype=namespace,namespaces=my-namespace1,my-namespace2 .

  5. Déterminez les stratégies d'accès associées à une entrée d'accès.

    aws eks list-associated-access-policies --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/my-role

    L'exemple qui suit illustre un résultat.

    { "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" } ] }

    Dans l'exemple précédent, le IAM principal responsable de cette entrée d'accès dispose d'autorisations d'affichage sur tous les espaces de noms du cluster, et de deux autorisations d'administrateur Kubernetes espaces de noms.

  6. Dissociez une stratégie d'accès d'une entrée d'accès. Dans cet exemple, la stratégie AmazonEKSAdminPolicy est dissociée d'une entrée d'accès. Le IAM principal conserve les autorisations définies dans la politique AmazonEKSViewPolicy d'accès pour les objets du my-namespace1 and my-namespace2 espaces de noms cependant, car cette politique d'accès n'est pas dissociée de l'entrée d'accès.

    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

Autorisations des stratégies d'accès

Les politiques d'accès incluent rules celles qui contiennent Kubernetes verbs(autorisations) etresources. Les politiques d'accès n'incluent ni IAM les autorisations ni les ressources. Similaire à Kubernetes Roleet ClusterRole des objets que les politiques d'accès incluent uniquement allowrules. Vous ne pouvez pas modifier le contenu d'une politique d'accès. Vous ne pouvez pas créer vos propres politiques d'accès. Si les autorisations définies dans les politiques d'accès ne répondent pas à vos besoins, créez Kubernetes RBACobjets et spécifiez les noms de groupe pour vos entrées d'accès. Pour de plus amples informations, veuillez consulter Création d'entrées d'accès. Les autorisations contenues dans les politiques d'accès sont similaires à celles du Kubernetes rôles de cluster orientés vers l'utilisateur. Pour plus d'informations, consultez la section Rôles destinés aux utilisateurs dans le Kubernetes .

Choisissez n'importe quelle stratégie d'accès pour voir son contenu. Chaque ligne de chaque table dans chaque stratégie d'accès est une règle distincte.

Cette politique d'accès inclut les autorisations qui accordent à un IAM principal le plus grand nombre d'autorisations sur les ressources. Lorsqu'elle est associée à une entrée d'accès, son étendue d'accès est généralement une ou plusieurs Kubernetes espaces de noms. Si vous souhaitez qu'un IAM principal dispose d'un accès administrateur à toutes les ressources de votre cluster, associez plutôt la politique UN mazonEKSCluster AdminPolicy d'mazonEKSClusterAdminPolicy accès A à votre entrée d'accès.

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

Groupes Kubernetes API Ressources Kubernetes Verbes Kubernetes (autorisations)

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

Cette politique d'accès inclut des autorisations qui accordent à un administrateur IAM principal l'accès à un cluster. Lorsqu'elle est associée à une entrée d'accès, son étendue d'accès est généralement le cluster, plutôt qu'un Kubernetes espace de noms. Si vous souhaitez qu'un IAM directeur ait une portée administrative plus limitée, pensez plutôt à associer la mazonEKSAdmin politique d'accès Une mazonEKSAdmin politique A Policy à votre entrée d'accès.

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

Groupes Kubernetes API Kubernetes nonResource URLs Ressources Kubernetes Verbes Kubernetes (autorisations)

\*

\*

\*

\*

\*

Cette politique d'accès inclut des autorisations qui accordent un accès IAM principal à la liste/à l'affichage de toutes les ressources d'un cluster. Notez que cela inclut les secrets Kubernetes.

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

Groupes Kubernetes API Ressources Kubernetes Verbes Kubernetes (autorisations)

\*

\*

`get, watch``

Cette politique d'accès inclut des autorisations qui permettent au IAM principal de modifier la plupart des modifications Kubernetes ressources.

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

Groupes Kubernetes API Ressources Kubernetes Verbes Kubernetes (autorisations)

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

Cette politique d'accès inclut des autorisations qui permettent à un IAM directeur d'accéder à la plupart Kubernetes ressources.

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

Groupes Kubernetes API Ressources Kubernetes Verbes Kubernetes (autorisations)

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/statuspods/log,pods/status,replicationcontrollers/status,resourcequotas, ou esourcequotas/status

get, list, watch

namespaces

get, list, watch

Mises à jour des stratégies d'accès

Affichez les détails sur les mises à jour des stratégies d'accès depuis leur introduction. Pour recevoir des alertes automatiques concernant les modifications apportées à cette page, abonnez-vous au RSS fil d'actualitéHistorique du document.

Modification Description Date

Addition AmazonEKSAdminViewPolicy

Ajoutez une nouvelle politique pour un accès étendu aux vues, y compris à des ressources telles que les secrets.

23 avril 2024

Stratégies d'accès introduites.

Amazon EKS a introduit des politiques d'accès.

29 mai 2023