Aidez à améliorer cette page
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.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
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.
Vous pouvez attribuer une ou plusieurs stratégies d'accès à des entrées d'accès de type STANDARD
. Amazon EKS accorde automatiquement aux autres types d'entrées d'accès les autorisations nécessaires pour fonctionner correctement dans votre cluster. Les politiques d'accès d'Amazon EKS incluent les autorisations Kubernetes, et non les autorisations IAM. Avant d'associer une politique d'accès à une entrée d'accès, assurez-vous de connaître les autorisations Kubernetes incluses dans chaque politique d'accès. Pour de plus amples informations, veuillez consulter Vérifiez les autorisations relatives à la politique 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 et créez et gérez les objets de contrôle d'accès basés sur les rôles Kubernetes. 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 :
ListAccessEntries
DescribeAccessEntry
,UpdateAccessEntry
,ListAccessPolicies
,AssociateAccessPolicy
, etDisassociateAccessPolicy
. Pour plus d'informations, consultez la section Actions définies par Amazon Elastic Kubernetes Service dans le Service Authorization Reference.
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 principal IAM de l'entrée d'accès dispose de toutes les autorisations incluses dans toutes les politiques d'accès associées.
-
Vous pouvez définir une politique d'accès à toutes les ressources d'un cluster ou en spécifiant le nom d'un ou de plusieurs espaces de noms Kubernetes. 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écifierdev-*
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 aux espaces de noms Kubernetes, vous pouvez ajouter et supprimer des espaces de noms pour l'association, si nécessaire.
-
Si vous associez une stratégie d'accès à une entrée d'accès dont les noms de groupe sont également spécifiés, le principal IAM dispose alors de toutes les autorisations dans toutes les stratégies d'accès associées. Il dispose également de toutes les autorisations dans n'importe quel Kubernetes
Role
ouClusterRole
objet spécifié dans n'importe quel KubernetesRole
et d'RoleBinding
objets spécifiant les noms de groupes. -
Si vous exécutez la
kubectl auth can-i --list
commande, vous ne verrez aucune autorisation Kubernetes attribuée par les politiques d'accès associées à une entrée d'accès pour le principal IAM que vous utilisez lorsque vous exécutez la commande. La commande affiche uniquement les autorisations Kubernetes si vous les avez accordées dans KubernetesRole
ou dans desClusterRole
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 utilisateur ou un groupe Kubernetes lorsque vous interagissez avec des objets Kubernetes sur votre cluster, par exemple en utilisant la
kubectl
commande avec--as
ouusername
--as-group
, vous forcez l'utilisation de l'autorisation Kubernetes RBAC. Par conséquent, le principal IAM ne dispose d'aucune autorisation attribuée par les stratégies d'accès associées à l'entrée d'accès. Les seules autorisations Kubernetes dont dispose l'utilisateur ou le groupe dont le principal IAM se fait passer sont les autorisations Kubernetes que vous lui avez accordées dans Kubernetesgroup-name
Role
ou lesClusterRole
objets que vous avez liés aux noms de groupes ou aux noms d'utilisateur. Pour que votre principal IAM dispose des autorisations définies dans les politiques d'accès associées, ne vous faites pas passer pour un utilisateur ou un groupe Kubernetes. Le principal IAM aura également toutes les autorisations que vous lui avez accordées dans les KubernetesRole
ou lesClusterRole
objets que vous avez liés aux noms de groupe ou au nom 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 la documentation deKubernetes.
Vous pouvez associer une politique d'accès à une entrée d'accès à l'aide de la AWS Management Console ou de la AWS CLI.
AWS Management Console
-
Ouvrez la console Amazon EKS
. -
Choisissez le nom du cluster qui possède une entrée d'accès à laquelle associer une stratégie d'accès.
-
Choisissez l'onglet Access.
-
Si le type d'entrée d'accès est Standard, vous pouvez associer ou dissocier les stratégies d'accès Amazon EKS. Si le type de votre entrée d'accès est autre que Standard, cette option n'est pas disponible.
-
Choisissez Associer la stratégie d'accès.
-
Dans Nom de la stratégie, sélectionnez la stratégie avec les autorisations que vous souhaitez attribuer au principal IAM. Pour consulter les autorisations incluses dans chaque stratégie, consultez Vérifiez les autorisations relatives à la politique d'accès.
-
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 principal IAM pour les ressources de tous les espaces de noms Kubernetes. Si vous choisissez l'espace de noms Kubernetes, vous pouvez ensuite choisir Ajouter un nouvel espace de noms. Dans le champ Namespace qui apparaît, vous pouvez saisir le nom d'un espace de noms Kubernetes sur votre cluster. Si vous souhaitez que le principal IAM dispose d'autorisations sur plusieurs espaces de noms, vous pouvez saisir plusieurs espaces de noms.
-
Choisissez Ajouter une stratégie d'accès.
AWS CLI
-
Version
2.12.3
ou version ultérieure1.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, utilisezaws --version | cut -d / -f2 | cut -d ' ' -f1
. Les gestionnaires de packages tels queyum
Homebrew pour macOS ont souvent plusieurs versions de retard sur la dernière version de la AWS CLI.apt-get
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 version de la AWS CLI 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 de la AWS CLI dans votre répertoire de base dans le guide de AWS CloudShell l'utilisateur. -
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 Vérifiez les autorisations relatives à la politique d'accès.
-
Consultez vos entrées d'accès existantes. Remplacez
my-cluster
par 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" ] }
-
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 le rôlemy-role
IAM tente d'accéder à des objets Kubernetes sur le cluster, Amazon EKS autorise le rôle à utiliser les autorisations définies dans la politique pour accéder aux objets Kubernetes dans les espaces de noms Kubernetes et Kubernetes uniquement.my-namespace1
my-namespace2
my-cluster
Remplacez-le par le nom de votre cluster,111122223333
par votre identifiant de AWS compte etmy-role
par le nom du rôle IAM pour lequel vous souhaitez qu'Amazon EKS autorise l'accès aux objets du cluster 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 vous souhaitez que le principal IAM dispose des autorisations à l'échelle du cluster, remplacez
type=namespace,namespaces=
parmy-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 devez exécuter à nouveau la commande en utilisanttype=namespace,namespaces=
uniquement. Si vous souhaitez modifier la portée demy-namespace1
namespace
àcluster
, vous devez exécuter à nouveau la commande en utilisanttype=cluster
, en supprimanttype=namespace,namespaces=
.my-namespace1
,my-namespace2
-
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 principal IAM pour cette entrée d'accès dispose d'autorisations d'affichage sur tous les espaces de noms du cluster et d'autorisations d'administrateur pour deux espaces de noms Kubernetes.
-
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 principal IAM conserve toutefois les autorisations définies dans la politiqueAmazonEKSViewPolicy
d'accès pour les objets desmy-namespace2
espaces de nomsmy-namespace1
et, 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
Pour répertorier les politiques d'accès disponibles, voirVérifiez les autorisations relatives à la politique d'accès.