Exemples de stratégies basées sur l'identité Amazon EKS - 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.

Exemples de stratégies basées sur l'identité Amazon EKS

Par défaut, les utilisateurs et les rôles IAM ne sont pas autorisés à créer ou modifier des ressources Amazon EKS. Ils ne peuvent pas non plus exécuter des tâches à l'aide de AWS Management Console, AWS CLI ou de l'API AWS. Un administrateur IAM doit créer des stratégies IAM autorisant les utilisateurs et les rôles à exécuter des opérations d'API spécifiques sur les ressources spécifiées dont ils ont besoin. Il doit ensuite attacher ces stratégies aux utilisateurs ou aux groupes IAM ayant besoin de ces autorisations.

Pour apprendre à créer une stratégie basée sur l'identité IAM à l'aide de ces exemples de documents de stratégie JSON, veuillez consulter Création de stratégies dans l'onglet JSON dans le IAM Guide de l'utilisateur.

Lorsque vous créez un cluster Amazon EKS, l'utilisateur ou le rôle de l'entité IAM, tel qu'unutilisateur fédéréqui crée le cluster, est automatiquement accordésystem:mastersdans la configuration RBAC du cluster dans le plan de contrôle. Cette entité IAM n'apparaît pas dans ConfigMap, ou dans toute autre configuration visible. Veillez donc à garder une trace de l'entité IAM qui a créé le cluster à l'origine. Pour accorder desAWSou rôles la capacité d'interagir avec votre cluster, vous devez modifier leaws-authConfigMap dans Kubernetes.

Pour plus d'informations sur l'utilisation de ConfigMap, consultezGestion des utilisateurs ou des rôles IAM pour votre cluster.

Bonnes pratiques en matière de stratégies

Les stratégies basées sur l'identité sont très puissantes. Elles déterminent si une personne peut créer, consulter ou supprimer des ressources Amazon EKS dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS . Lorsque vous créez ou modifiez des stratégies basées sur l’identité, suivez ces instructions et recommandations :

  • Commencez à utiliserAWSStratégies gérées par— Pour commencer à utiliser Amazon EKS rapidement, utilisezAWSLes stratégies gérées pour accorder à vos employés les autorisations dont ils ont besoin. Ces stratégies sont déjà disponibles dans votre compte et sont gérées et mises à jour par AWS. Pour de plus amples informations, veuillez consulter Mise en route avec les autorisations à l'aide des stratégies gérées par AWS dans le Guide de l’utilisateur IAM.

  • Accorder le privilège le plus faible : Lorsque vous créez des stratégies personnalisées, accordez uniquement les autorisations nécessaires à l'exécution d'une tâche. Commencez avec un minimum d'autorisations et accordez-en d'autres si nécessaire. Cette méthode est plus sûre que de commencer avec des autorisations trop permissives et d'essayer de les restreindre plus tard. Pour de plus amples informations, veuillez consulter Accorder les privilèges les plus faibles possible dans le Guide de l’utilisateur IAM.

  • Activer la MFA pour les opérations confidentielles : Pour plus de sécurité, demandez aux utilisateurs IAM d'utiliser la Multi-Factor Authentication (MFA) pour accéder à des ressources ou à des opérations d'API confidentielles. Pour de plus amples informations, veuillez consulter Utilisation de la Multi-Factor Authentication (MFA) dans AWS dans le Guide de l’utilisateur IAM.

  • Utiliser des conditions de stratégie pour davantage de sécurité : Définissez les conditions dans lesquelles vos stratégies basées sur l'identité autorisent l'accès à une ressource, dans la mesure où cela reste pratique. Par exemple, vous pouvez rédiger les conditions pour spécifier une plage d'adresses IP autorisées d'où peut provenir une demande. Vous pouvez également écrire des conditions pour autoriser les requêtes uniquement à une date ou dans une plage de temps spécifiée, ou pour imposer l'utilisation de SSL ou de MFA. Pour de plus amples informations, veuillez consulterÉléments de stratégie IAM JSON : Conditiondans leIAM User Guide.

Utilisation de la console Amazon EKS

Pour accéder à la console Amazon EKS, vous devez disposer d'un ensemble minimal d'autorisations. Ces autorisations doivent vous permettre de répertorier et de consulter les informations relatives aux ressources Amazon EKS dans votreAWS. Si vous créez une stratégie basée sur l'identité qui est plus restrictive que les autorisations minimales requises, la console ne fonctionnera pas comme prévu pour les entités (utilisateurs et rôles IAM) tributaires de cette stratégie.

Important

Si uneErreur de chargement des espaces de nomsdans la console, ou ne voyez rien sur lePrésentationouCharges de travailonglets, voirImpossible de voir les charges de travail ou les nœuds et de recevoir une erreur dans la boîte de dialogueAWS Management Consolepour résoudre le problème. Si vous ne résolvez pas le problème, vous pouvez toujours afficher et gérer des aspects de votre cluster Amazon EKS sur leConfigurationOnglet.

Pour garantir que ces entités puissent toujours utiliser la console Amazon EKS, créez une stratégie avec votre propre nom unique, par exempleAmazonEKSAdminPolicy. Attachez la stratégie aux entités. Pour de plus amples informations, veuillez consulter Ajout d'autorisations à un utilisateur dans le IAM Guide de l'utilisateur.

Important

L'exemple de stratégie suivant vous permettra d'afficher des informations sur leConfigurationOnglet dans la console. Pour afficher des informations sur laNœudsandCharges de travaildans leAWS Management Console, vous avez besoin d'autorisations IAM supplémentaires, ainsi que d'autorisations Kubernetes. Pour plus d'informations, consultez le .Affichez les nœuds et les charges de travail pour tous les clusters dans leAWS Management ConsoleExemple de stratégie.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "eks.amazonaws.com" } } } ] }

Vous n'avez pas besoin d'accorder les autorisations minimales de console pour les utilisateurs qui effectuent des appels uniquement à l'interface AWS CLI ou API AWS. Autorisez plutôt l'accès à uniquement aux actions qui correspondent à l'opération d'API que vous tentez d'effectuer.

Affichez les nœuds et les charges de travail pour tous les clusters dans leAWS Management Console

Cet exemple montre comment créer une stratégie qui autorise un utilisateur àNœuds ViewandAffichage des charges de travailpour tous les clusters.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:DescribeCluster", "eks:ListClusters", "eks:AccessKubernetesApi", "ssm:GetParameter", "eks:ListUpdates", "eks:ListFargateProfiles" ], "Resource": "*" } ] }
Important

La stratégie doit être attachée à un utilisateur ou un rôle qui est mappé à un utilisateur ou un groupe Kubernetes dans la boîte de dialogueaws-authConfigMap. L'utilisateur ou le groupe doit être unsubjectdans unrolebindingouclusterrolebindingqui est lié à un Kubernetesroleouclusterrolequi dispose des autorisations nécessaires pour afficher les ressources Kubernetes. Pour plus d'informations sur l'ajout d'utilisateurs IAM ou de rôles à l'aws-authconfigmap, voirGestion des utilisateurs ou des rôles IAM pour votre cluster. Pour créer des rôles et des liaisons de rôles, consultezUtilisation de l'autorisation RBACDans la documentation Kubernetes. Vous pouvez télécharger les exemples de manifestes suivants qui créent unclusterroleandclusterrolebindingou unroleandrolebinding :

  • Afficher les ressources Kubernetes dans tous les espaces de noms— Le nom du groupe dans le fichier esteks-console-dashboard-full-access-group, qui est le groupe sur lequel votre utilisateur ou votre rôle IAM doit être mappé dans laaws-authConfigMap. Vous pouvez modifier le nom du groupe avant de l'appliquer à votre cluster, si vous le souhaitez, puis mapper votre utilisateur ou votre rôle IAM à ce groupe dans la configmap. Pour télécharger le fichier, sélectionnez le lien approprié pour la région dans laquelle se trouve votre cluster.

  • Afficher les ressources Kubernetes dans un espace de noms spécifique— L'espace de noms dans ce fichier estdefault, donc si vous voulez spécifier un autre espace de noms, modifiez le fichier avant de l'appliquer à votre cluster. Le nom du groupe dans le fichier esteks-console-dashboard-restricted-access-group, qui est le groupe sur lequel votre utilisateur ou votre rôle IAM doit être mappé dans laaws-authConfigMap. Vous pouvez modifier le nom du groupe avant de l'appliquer à votre cluster, si vous le souhaitez, puis mapper votre utilisateur ou votre rôle IAM à ce groupe dans la configmap. Pour télécharger le fichier, sélectionnez le lien approprié pour la région dans laquelle se trouve votre cluster.

Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations

Cet exemple montre comment créer une stratégie qui permet aux utilisateurs IAM d'afficher les stratégies en ligne et gérées attachées à leur identité d'utilisateur. Cette stratégie inclut les autorisations nécessaires pour réaliser cette action sur la console ou par programmation à l'aide de l'AWS CLI ou de l'API AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Mise à jour d’un cluster Kubernetes

Cet exemple montre comment vous pouvez créer une stratégie qui permet à un utilisateur de mettre à jour la version Kubernetes de n’importe quel cluster dev pour un compte, dans n'importe quelle région.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "eks:UpdateClusterVersion", "Resource": "arn:aws:eks:*:<111122223333>:cluster/<dev>" } ] }

Affichage de la liste ou description de tous les clusters

Cet exemple montre comment vous pouvez créer une stratégie qui donne à un utilisateur l’accès en lecture seule pour afficher la liste ou décrire tous les clusters. Un compte doit être en mesure d’afficher la liste et et décrire les clusters pour utiliser la commande de l’AWS CLIupdate-kubeconfig.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:ListClusters" ], "Resource": "*" } ] }