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.
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 contribueront à améliorer notre guide de l'utilisateur pour tous.
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.
Configurer le VPC CNI plugin Amazon à utiliser IRSA
Le VPCCNIplugin Amazon pour Kubernetes
-
Nécessite les autorisations AWS Identity and Access Management (IAM). Si votre cluster utilise la
IPv4
famille, les autorisations sont spécifiées dans la politique AWS gérée « Amazon EKS _ CNI _Policy ». Si votre cluster utilise laIPv6
famille, les autorisations doivent être ajoutées à une IAM politique que vous créez ; pour obtenir des instructions, consultez. Création d'une IAM politique pour les clusters qui utilisent la IPv6 famille Vous pouvez associer la politique au IAM rôle du EKS nœud Amazon ou à un IAM rôle distinct. Pour obtenir des instructions sur la manière d'associer la politique au IAM rôle du EKS nœud Amazon, consultezIAMRôle EKS du nœud Amazon. 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 Kubernetes compte de service nommé
aws-node
lors de son déploiement. Le compte de service est lié à un Kubernetesclusterrole
nomméaws-node
, auquel est attribué le nom requis Kubernetes autorisations.
Note
Le Pods pour le Amazon VPC CNI plugin for Kubernetes ont accès aux autorisations attribuées au IAMrôle de EKS nœud Amazon, 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
-
Un EKS cluster Amazon existant. Pour en déployer un, consultez Commencez avec Amazon EKS.
-
Un AWS Identity and Access Management existant (IAM) OpenID Connect (OIDC) fournisseur pour votre cluster. Pour déterminer si vous en avez déjà un, ou pour en créer un, consultez Créer un IAM OIDC fournisseur pour votre cluster.
Étape 1 : Création du Amazon VPC CNI plugin for Kubernetes IAMrôle
-
Déterminez la famille d'adresses IP de votre cluster.
aws eks describe-cluster --name my-cluster | grep ipFamily
L'exemple qui suit illustre un résultat.
"ipFamily": "ipv4"
La sortie peut renvoyer
ipv6
à la place. -
Créez le IAM rôle. Vous pouvez utiliser
eksctl
oukubectl
et le AWS CLI pour créer votre IAM rôle.- eksctl
-
-
Créez un IAM rôle et associez la IAM politique au rôle à l'aide de la commande correspondant à la famille d'adresses IP de votre cluster. La commande crée et déploie une AWS CloudFormation pile qui crée un IAM rôle, y attache la politique que vous spécifiez et annote la politique existante
aws-node
Kubernetes compte ARN de service avec le IAM numéro du rôle créé.-
IPv4
Remplacez
my-cluster
avec votre propre valeur.eksctl create iamserviceaccount \ --name aws-node \ --namespace kube-system \ --cluster my-cluster \ --role-name AmazonEKSVPCCNIRole \ --attach-policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \ --override-existing-serviceaccounts \ --approve
-
IPv6
Remplacez
my-cluster
avec votre propre valeur. Remplacez111122223333
avec votre identifiant de compte et remplacezAmazonEKS_CNI_IPv6_Policy
avec le nom de votreIPv6
police. Si vous n'avez pas deIPv6
politique, reportez-vous Création d'une IAM politique pour les clusters qui utilisent la IPv6 famille à la section pour en créer une. Pour utiliserIPv6
avec votre cluster, ce dernier doit répondre à plusieurs exigences. Pour de plus amples informations, veuillez consulter En savoir plus sur IPv6 les adresses des clusters, pods, et services.eksctl create iamserviceaccount \ --name aws-node \ --namespace kube-system \ --cluster my-cluster \ --role-name AmazonEKSVPCCNIRole \ --attach-policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --override-existing-serviceaccounts \ --approve
-
-
- kubectl et le AWS CLI
-
-
Consultez le OIDC fournisseur de votre clusterURL.
aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text
L'exemple qui suit illustre un résultat.
https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
Si aucune sortie n'est renvoyée, vous devez créer un IAM OIDC fournisseur pour votre cluster.
-
Copiez le contenu suivant dans un fichier nommé
vpc-cni-trust-policy.json
. Remplacer111122223333
avec votre identifiant de compte etEXAMPLED539D4633E53DE1B71EXAMPLE
avec le résultat renvoyé à l'étape précédente. Remplacezregion-code
avec la AWS région dans laquelle se trouve votre cluster.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws: iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:aws-node" } } } ] }
-
Créez le rôle. Vous pouvez remplacer
AmazonEKSVPCCNIRole
avec le nom de votre choix.aws iam create-role \ --role-name AmazonEKSVPCCNIRole \ --assume-role-policy-document file://"vpc-cni-trust-policy.json"
-
Associez la IAM politique requise au rôle. Exécutez la commande qui correspond à la famille d'adresses IP de votre cluster.
-
IPv4
aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name AmazonEKSVPCCNIRole
-
IPv6
Remplacez
111122223333
avec votre identifiant de compte etAmazonEKS_CNI_IPv6_Policy
avec le nom de votreIPv6
police. Si vous n'avez pas deIPv6
politique, reportez-vous Création d'une IAM politique pour les clusters qui utilisent la IPv6 famille à la section pour en créer une. Pour utiliserIPv6
avec votre cluster, ce dernier doit répondre à plusieurs exigences. Pour de plus amples informations, veuillez consulter En savoir plus sur IPv6 les adresses des clusters, pods, et services.aws iam attach-role-policy \ --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name AmazonEKSVPCCNIRole
-
-
Exécutez la commande suivante pour annoter le compte ARN de
aws-node
service avec le IAM rôle que vous avez créé précédemment. Remplacez leexample values
avec vos propres valeurs.kubectl annotate serviceaccount \ -n kube-system aws-node \ eks.amazonaws.com/role-arn=arn:aws: iam::111122223333:role/AmazonEKSVPCCNIRole
-
-
(Facultatif) Configurez le type de point de terminaison du service de jetons de AWS sécurité utilisé par votre Kubernetes compte de service. Pour de plus amples informations, veuillez consulter Configurer le point de terminaison du service AWS Security Token pour un compte de service.
Étape 2 : redéploiement Amazon VPC CNI plugin for KubernetesPods
-
Supprimer et recréer tout ce qui existe Pods qui sont associés au compte de service pour appliquer les variables d'environnement d'identification. L'annotation n'est pas appliquée à Pods qui sont actuellement en cours d'exécution sans l'annotation. La commande suivante supprime les fichiers existants
aws-node
DaemonSet Pods et les déploie avec l'annotation du compte de service.kubectl delete Pods -n kube-system -l k8s-app=aws-node
-
Confirmez que Pods tout a 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
AWS_WEB_IDENTITY_TOKEN_FILE
d'AWS_ROLE_ARN
environnement et existent. Remplacezcpjw7
avec le nom de l'un de vos Pods renvoyé dans le résultat 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/token
Deux ensembles de résultats dupliqués sont renvoyés car Pod contient deux récipients. Les deux exemples présentent les mêmes valeurs.
Si vos recettes Pod utilise le point de terminaison AWS régional, puis la ligne suivante est également renvoyée dans la sortie précédente.
AWS_STS_REGIONAL_ENDPOINTS=regional
Étape 3 : supprimer la CNI politique du IAM rôle de nœud
Si la politique AmazonEKS_CNI_Policy
IAM (IPv4
) ou une IPv6politique est actuellement associée à votre IAMrôle de EKS nœud Amazon, et que vous avez créé un IAM rôle distinct, que vous y avez attaché la politique à la place et que vous l'avez attribuée au aws-node
Kubernetes compte de service, nous vous recommandons alors 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 AmazonEKSNodeRole
avec le nom de votre rôle de nœud.
-
IPv4
aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy
-
IPv6
Remplacez
111122223333
avec votre identifiant de compte etAmazonEKS_CNI_IPv6_Policy
avec le nom de votreIPv6
police.aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy
Création d'une IAM politique pour les clusters qui utilisent la IPv6
famille
Si vous avez créé un cluster qui utilise la IPv6
famille et que le cluster possède une version 1.10.1
ou une version ultérieure du Amazon VPC CNI plugin for Kubernetes module complémentaire configuré, vous devez alors créer une IAM politique que vous pouvez attribuer à un IAM rôle. Si vous avez un cluster existant que vous n'avez pas configuré avec la IPv6
famille lorsque vous l'avez crééIPv6
, vous devez créer un nouveau cluster pour pouvoir l'utiliser. Pour plus d'informations sur l'utilisation de IPv6
avec votre cluster, veuillez consulter En savoir plus sur IPv6 les adresses des clusters, pods, 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 IAM politique.
aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json