Aidez à améliorer cette page
Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions aideront à améliorer notre guide de l'utilisateur pour tout le monde.
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.
Configuration de l'utilisation Amazon VPC CNI plugin for Kubernetes des rôles IAM pour les comptes de service (IRSA)
Le Amazon VPC CNI plugin for Kubernetes
-
Nécessite des autorisations AWS Identity and Access Management (IAM). Si votre cluster utilise la famille IPv4, les autorisations sont spécifiées dans la politique
AmazonEKS_CNI_Policy
AWS gérée. Si votre cluster utilise la famille IPv6, les autorisations doivent être ajoutées à une politique IAM que vous créez.Vous pouvez attacher cette politique au rôle IAM de nœud Amazon EKS ou à un rôle IAM distinct. Nous vous recommandons de l'affecter à un rôle séparé, comme détaillé dans cette rubrique. -
Crée et est configuré pour utiliser un compte de service Kubernetes nommé
aws-node
quand il est déployé. Le compte de service est lié à unclusterrole
Kubernetes nomméaws-node
, qui reçoit les autorisations Kubernetes requises.
Note
Les Pods pour Amazon VPC CNI plugin for Kubernetes ont accès aux autorisations attribuées au rôle IAM de nœud Amazon EKS, sauf si vous bloquez l'accès à IMDS. Pour plus d'informations, consultez Restreindre l'accès au profil d'instance affecté au composant master
Prérequis
-
Un cluster Amazon EKS existant. Pour en déployer un, consultez Mise en route avec Amazon EKS.
-
Un fournisseur AWS Identity and Access Management (IAM) OpenID Connect (OIDC) existant pour votre cluster. Pour déterminer si vous en avez déjà un, ou pour en créer un, consultez Créez un OIDC fournisseur IAM pour votre cluster.
Étape 1 : création du rôle IAM Amazon VPC CNI plugin for Kubernetes
Pour créer le rôle IAM
-
Déterminez la famille d'adresses IP de votre cluster.
aws eks describe-cluster --name
my-cluster
| grep ipFamilyL'exemple qui suit illustre un résultat.
"ipFamily": "ipv
4
"La sortie peut renvoyer
ipv6
à la place. -
Créez le rôle IAM. Vous pouvez utiliser
eksctl
oukubectl
et le AWS CLI pour créer votre rôle IAM. (Facultatif) Configurez le type de AWS Security Token Service point de terminaison utilisé par votre compte Kubernetes de service. Pour plus d’informations, consultez Configuration du AWS Security Token Service point de terminaison pour un compte de service.
Étape 2 : redéploiement des Pods du Amazon VPC CNI plugin for Kubernetes
-
Supprimez et recréez tous les Pods existants associés au compte de service pour appliquer les variables d'environnement d'informations d'identification. L'annotation n'est pas appliquée aux Pods qui sont actuellement en cours d'exécution sans l'annotation. La commande suivante supprime les Pods de
aws-node
DaemonSet existants et les déploie avec l'annotation de compte de service.kubectl delete Pods -n kube-system -l k8s-app=aws-node
-
Vérifiez que les Pods ont tous redémarré.
kubectl get pods -n kube-system -l k8s-app=aws-node
-
Décrivez l'un des Pods et vérifiez que les variables d'environnement
AWS_WEB_IDENTITY_TOKEN_FILE
etAWS_ROLE_ARN
existent. Remplacezcpjw7
par le nom de l'un de vos Pods renvoyés dans la sortie de l'étape précédente.kubectl describe pod -n kube-system aws-node-
cpjw7
| grep 'AWS_ROLE_ARN:\|AWS_WEB_IDENTITY_TOKEN_FILE:'L'exemple qui suit illustre un résultat.
AWS_ROLE_ARN: arn:aws:iam::
111122223333
:role/AmazonEKSVPCCNIRole
AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/token AWS_ROLE_ARN: arn:aws:iam::111122223333
:role/AmazonEKSVPCCNIRole
AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/tokenDeux ensembles de résultats dupliqués sont renvoyés, car le Pod comprend deux conteneurs. Les deux exemples présentent les mêmes valeurs.
Si vous utilisez Pod le point de terminaison Région AWS al, la ligne suivante est également renvoyée dans la sortie précédente.
AWS_STS_REGIONAL_ENDPOINTS=regional
Étape 3 : suppression de la politique CNI du rôle IAM de nœud
Si le rôle IAM de votre nœud Amazon EKS est actuellement associé à la politique AmazonEKS_CNI_Policy
IAM (IPv4
) ou à une IPv6politique, et que vous avez créé un rôle IAM distinct, que vous y avez attaché la politique et que vous l'avez attribué au compte de aws-node
Kubernetes service, nous vous recommandons de supprimer la politique de votre rôle de nœud à l'aide de la AWS CLI commande correspondant à la famille d'adresses IP de votre cluster. Remplacez
par le nom de votre rôle de nœud.AmazonEKSNodeRole
-
IPv4
aws iam detach-role-policy --role-name
AmazonEKSNodeRole
--policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy -
IPv6
Remplacez
par l'ID de votre compte et111122223333
par le nom de votre politiqueAmazonEKS_CNI_IPv6_Policy
IPv6
.aws iam detach-role-policy --role-name
AmazonEKSNodeRole
--policy-arn arn:aws:iam::111122223333
:policy/AmazonEKS_CNI_IPv6_Policy
Créer une politique IAM pour les clusters qui utilisent la famille IPv6
Si vous avez créé un cluster qui utilise la famille IPv6
et que la version 1.10.1
ou une version ultérieure du module complémentaire Amazon VPC CNI plugin for Kubernetes du cluster est configurée, vous devez créer une politique IAM que vous pourrez affecter à un rôle IAM. Si vous avez un cluster existant que vous n'avez pas configuré avec la famille IPv6
lorsque vous l'avez créé, alors pour utiliser IPv6
, vous devez créer un nouveau cluster. Pour plus d'informations sur l'utilisation de IPv6
avec votre cluster, veuillez consulter IPv6adresses pour les clustersPods, et services.
-
Copiez la politique suivante et enregistrez-la dans un fichier appelé
.vpc-cni-ipv6-policy
.json{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignIpv6Addresses", "ec2:DescribeInstances", "ec2:DescribeTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeInstanceTypes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] } ] }
Créez la politique IAM.
aws iam create-policy --policy-name
AmazonEKS_CNI_IPv6_Policy
--policy-document file://vpc-cni-ipv6-policy.json