Aidez à améliorer cette page
Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.
Exemples de politiques basées sur l'identité d'Amazon EKS
Par défaut, les utilisateurs et les rôles IAM n’ont pas l’autorisation de créer ou de modifier des ressources Amazon EKS. Ils ne peuvent pas non plus effectuer de tâches à l’aide de la AWS Management Console, de l’interface AWS CLI ou de l’API AWS. Un administrateur IAM doit créer des politiques 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 politiques aux utilisateurs ou aux groupes IAM ayant besoin de ces autorisations.
Pour apprendre à créer une politique basée sur l'identité IAM à l'aide de ces exemples de documents de politique JSON, veuillez consulter Création de politiques dans l'onglet JSON dans le Guide de l'utilisateur IAM.
Lorsque vous créez un cluster Amazon EKS, le principal IAM qui crée le cluster se voit automatiquement accorder des autorisations system:masters dans la configuration du contrôle d’accès basé sur les rôles (RBAC) du cluster dans le plan de contrôle Amazon EKS. Ce principal n’apparaît dans aucune configuration visible. Souvenez-vous donc du principal qui a créé le cluster à l’origine. Pour accorder à d’autres principaux IAM la possibilité d’interagir avec votre cluster, modifiez le aws-auth ConfigMap dans Kubernetes et créez un rolebinding ou clusterrolebinding Kubernetes associé au nom d’un group que vous spécifiez dans le aws-auth ConfigMap.
Pour plus d'informations sur l'utilisation du ConfigMap, consultez Autoriser les utilisateurs et les rôles IAM à accéder aux API Kubernetes.
Bonnes pratiques en matière de politiques
Les politiques basées sur l'identité 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 politiques basées sur l’identité, suivez ces instructions et recommandations :
-
Commencez à utiliser les politiques gérées par AWS et évoluez vers des autorisations minimales : pour commencer à accorder des autorisations à vos utilisateurs et à vos charges de travail, utilisez les politiques gérées par AWS qui accordent des autorisations pour de nombreux cas d’utilisation courants. Elles sont disponibles dans votre compte AWS. Nous vous recommandons de réduire encore les autorisations en définissant des politiques AWS gérées par le client qui sont propres à vos cas d’utilisation. Pour plus d’informations, consultez politiques gérées par AWS ou politiques gérées par AWS pour les activités professionnelles dans le Guide de l’utilisateur IAM.
-
Accordez les autorisations de moindre privilège : lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Vous pouvez le faire en définissant les actions pouvant être exécutées sur des ressources particulières et dans des conditions spécifiques, également appelées autorisations de moindre privilège. Pour plus d’informations sur l’utilisation d’IAM pour appliquer des autorisations, consultez politiques et autorisations dans IAM dans le Guide de l’utilisateur IAM.
-
Utilisez des conditions dans les politiques IAM pour restreindre davantage l’accès : vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l’accès à des actions de service si elles sont utilisées via un service AWS spécifique, tel que AWS CloudFormation. Pour plus d’informations, consultez Conditions pour éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.
-
Utilisez l’Analyseur d’accès IAM pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles : l’Analyseur d’accès IAM valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez Validation de politique IAM Access Analyzer dans le Guide de l’utilisateur IAM.
-
Exigez l’authentification multifactorielle (MFA) : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur racine dans votre compte AWS, activez la MFA pour plus de sécurité. Pour exiger la MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez Configuration de l’accès aux API protégé par MFA dans le Guide de l’utilisateur IAM.
Pour plus d’informations sur les bonnes pratiques dans IAM, consultez Bonnes pratiques de sécurité dans IAM dans le Guide de l’utilisateur IAM.
Utilisation de la console Amazon EKS
Pour accéder à la console Amazon EKS, un principal IAM doit disposer d'un ensemble minimum d'autorisations. Ces autorisations doivent permettre au principal de répertorier et d'afficher les informations sur les ressources Amazon EKS dans votre compte AWS. Si vous créez une politique basée sur l’identité qui est plus restrictive que les autorisations minimales requises, la console ne fonctionnera pas comme prévu pour les principaux auxquels cette politique est associée.
Pour garantir que vos principaux IAM puissent toujours utiliser la console Amazon EKS, créez une politique avec votre propre nom unique, par exemple AmazonEKSAdminPolicy. Attachez la politique aux principaux. Pour plus d'informations, consultez la rubrique Ajout et suppression d'autorisations basées sur l'identité IAM du Guide de l'utilisateur IAM.
Important
L'exemple de politique suivant permet à un principal d'afficher des informations dans l'onglet Configuration sur la console. Pour afficher les informations des onglets Aperçu et Ressources dans la AWS Management Console, le principal a également besoin d’autorisations Kubernetes. Pour de plus amples informations, consultez Autorisations requises.
{ "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 la console aux principaux qui effectuent uniquement des appels vers l’interface AWS CLI ou l’API AWS. Autorisez plutôt l’accès uniquement aux actions qui correspondent à l’opération API que vous essayez d’effectuer.
Autorisation des utilisateurs IAM à afficher leurs propres autorisations
Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques 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’interface de ligne de commande AWS 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": "*" } ] }
Créer un cluster Kubernetes sur le cloud AWS
Cet exemple de stratégie inclut les autorisations minimales requises pour créer un cluster Amazon EKS nommé my-cluster dans la région us-west-2AWS. Vous pouvez remplacer la région AWS par la région AWS dans laquelle vous voulez créer un cluster. Si vous voyez un avertissement indiquant Les actions de votre politique ne prennent pas en charge les autorisations au niveau des ressources et vous obligent à choisir All resources dans la AWS Management Console, vous pouvez l’ignorer en toute sécurité. Si votre compte possède déjà le AWSServiceRoleForAmazonEKS, vous pouvez supprimer le rôle d'action iam:CreateServiceLinkedRole de la politique. Si vous avez déjà créé un cluster Amazon EKS dans votre compte, ce rôle existe déjà, sauf si vous l’avez supprimé.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "eks:CreateCluster", "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-cluster" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::111122223333:role/aws-service-role/eks.amazonaws.com/AWSServiceRoleForAmazonEKS", "Condition": { "ForAnyValue:StringEquals": { "iam:AWSServiceName": "eks" } } }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::111122223333:role/cluster-role-name" } ] }
Créer un cluster Kubernetes local sur un Outpost
Cet exemple de politique inclut les autorisations minimales requises pour créer un cluster Amazon EKS local nommé my-cluster sur un Outpost dans la région us-west-2AWS. Vous pouvez remplacer la région AWS par la région AWS dans laquelle vous voulez créer un cluster. Si vous voyez un avertissement indiquant Les actions de votre politique ne prennent pas en charge les autorisations au niveau des ressources et vous obligent à choisir All resources dans la AWS Management Console, vous pouvez l’ignorer en toute sécurité. Si votre compte possède déjà le rôle AWSServiceRoleForAmazonEKSLocalOutpost, vous pouvez supprimer l'action iam:CreateServiceLinkedRole de la politique. Si vous avez déjà créé un cluster Amazon EKS local sur un Outpost dans votre compte, ce rôle existe déjà, sauf si vous l’avez supprimé.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "eks:CreateCluster", "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-cluster" }, { "Action": [ "ec2:DescribeSubnets", "ec2:DescribeVpcs", "iam:GetRole" ], "Resource": "*", "Effect": "Allow" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::111122223333:role/aws-service-role/outposts.eks-local.amazonaws.com/AWSServiceRoleForAmazonEKSLocalOutpost" }, { "Effect": "Allow", "Action": [ "iam:PassRole", "iam:ListAttachedRolePolicies" ] "Resource": "arn:aws:iam::111122223333:role/cluster-role-name" }, { "Action": [ "iam:CreateInstanceProfile", "iam:TagInstanceProfile", "iam:AddRoleToInstanceProfile", "iam:GetInstanceProfile", "iam:DeleteInstanceProfile", "iam:RemoveRoleFromInstanceProfile" ], "Resource": "arn:aws:iam::*:instance-profile/eks-local-*", "Effect": "Allow" }, ] }
Mise à jour d'un cluster Kubernetes
Cette politique type inclut les autorisations minimales requises pour mettre à jour un cluster nommé my-cluster dans la région AWS us-west-2.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "eks:UpdateClusterVersion", "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-cluster" } ] }
Affichage de la liste ou description de tous les clusters
Cet exemple de politique inclut les autorisations minimales requises pour répertorier et décrire tous les clusters de votre compte. Un principal IAM doit être en mesure de répertorier et de décrire les clusters pour utiliser la commande update-kubeconfig CLI AWS.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:ListClusters" ], "Resource": "*" } ] }