Exemples de politiques basées sur l'identité d'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 politiques basées sur l'identité d'Amazon EKS

Par défaut, les utilisateurs et les rôles IAM ne sont pas autorisés à créer ou modifier les 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 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 permettre à d'autres principaux IAM d'interagir avec votre cluster, modifiez la ConfigMap aws-auth dans Kubernetes et créez un rolebinding ou un clusterrolebinding Kubernetes avec le nom d'un group que vous spécifiez dans la ConfigMap aws-auth.

Pour plus d'informations sur l'utilisation du ConfigMap, consultezAutorisation d'un principal IAM à accéder à votre cluster.

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 :

  • Démarrer avec AWS gérées et évoluez vers les autorisations de moindre privilège - Pour commencer à accorder des autorisations à vos utilisateurs et charges de travail, utilisez les politiques gérées AWS qui accordent des autorisations dans 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 gérées par le client AWS qui sont spécifiques à vos cas d’utilisation. Pour de plus amples informations, consultez AWS Politiques gérées ou AWS Politiques gérées pour les activités professionnelles dans le Guide de l'utilisateur IAM.

  • Accorder 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. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques 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.

  • Utiliser 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 aux actions de service si elles sont utilisées via un Service AWS spécifique, comme AWS CloudFormation. Pour plus d’informations, consultez Conditions pour éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.

  • Utilisez IAM Access Analyzer pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles - IAM Access Analyzer 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.

  • Authentification multifactorielle (MFA) nécessaire : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root dans votre Compte AWS, activez l’authentification multifactorielle pour une sécurité renforcée. Pour exiger le 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 l'ensemble minimum d'autorisations requis, la console ne fonctionnera pas comme prévu pour les principaux auxquels cette politique est attaché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 des informations sur les onglets Présentation et Ressources dans la AWS Management Console, le principal a également besoin des autorisations Kubernetes. Pour plus d'informations, consultez Autorisations nécessaires.

{ "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 principaux qui effectuent des appels uniquement à la AWS CLI ou à l'API AWS. Autorisez plutôt l’accès à uniquement aux actions qui correspondent à l’opération d’API que vous tentez 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 politique 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": "*" } ] }

Créer un cluster Kubernetes sur le AWS Cloud

Région AWS Vous pouvez remplacer Région AWS par la Région AWS dans laquelle vous souhaitez créer votre cluster. Si vous voyez un avertissement indiquant Les actions de votre politique ne prennent pas en charge les autorisations au niveau des ressources :All resourcesdans le AWS Management Console, vous pouvez l'ignorer sans risque. Si votre compte possède déjà le rôle AWSServiceRoleForAmazonEKS, vous pouvez supprimer l'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

Région AWS Vous pouvez remplacer Région AWS par la Région AWS dans laquelle vous souhaitez créer votre cluster. Si vous voyez un avertissement indiquant Les actions de votre politique ne prennent pas en charge les autorisations au niveau des ressources :All resourcesdans le AWS Management Console, vous pouvez l'ignorer sans risque. 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 local Amazon EKS 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" }, ] }

Mettre à jour un cluster Kubernetes

Région AWS

{ "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 de AWS CLI update-kubeconfig.

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