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.
Création du rôle IAM du pilote CSI Amazon EBS
Le plug-in Amazon EBS CSI nécessite des autorisations IAM pour passer des appels aux AWS API en votre nom. Pour plus d'informations, consultez Configuration de l'autorisation du pilote
Note
Les Pods auront accès aux autorisations attribuées au rôle IAM, sauf si vous bloquez l'accès à IMDS. Pour plus d’informations, consultez Bonnes pratiques de sécurité pour Amazon EKS.
Prérequis
-
Un cluster existant.
-
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.
La procédure suivante vous montre comment créer un rôle IAM et y associer la politique gérée par AWS . Pour ce faire, vous pouvez utiliser eksctl
, la AWS Management Console ou la AWS CLI.
Note
Les étapes spécifiques de cette procédure sont destinées à l'utilisation du pilote en tant que module complémentaire d'Amazon EKS. Différentes étapes sont nécessaires pour utiliser le pilote en tant que module complémentaire autogéré. Pour plus d'informations, consultez Configuration des autorisations de pilote
- eksctl
-
Pour créer votre rôle IAM de plugin CSI d'Amazon EBS avec
eksctl
-
Créez un rôle IAM et associez une politique. AWS gère une politique AWS gérée ou vous pouvez créer votre propre politique personnalisée. Vous pouvez créer un rôle IAM et associer la politique AWS gérée à l'aide de la commande suivante. Remplacez
par le nom de votre cluster. La commande déploie une AWS CloudFormation pile qui crée un rôle IAM et y attache la politique IAM. Si votre cluster se trouve dans AWS GovCloud (USA Est) ou AWS GovCloud (USA Ouest) Régions AWS, remplacez-le parmy-cluster
arn:aws:
.arn:aws-us-gov:
eksctl create iamserviceaccount \ --name ebs-csi-controller-sa \ --namespace kube-system \ --cluster
my-cluster
\ --role-nameAmazonEKS_EBS_CSI_DriverRole
\ --role-only \ --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \ --approve -
Si vous utilisez une clé KMS
personnalisée pour le chiffrement de vos volumes Amazon EBS, personnalisez le rôle IAM en fonction des besoins. Par exemple, procédez comme suit : -
Copiez et collez le code suivant dans un nouveau fichier
. Remplacezkms-key-for-encryption-on-ebs
.json
par l'ARN de clé KMS personnalisé.custom-key-arn
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["
custom-key-arn
"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": ["custom-key-arn
"] } ] } -
Créez la politique. Vous pouvez remplacer
par un autre nom. Cependant, si vous le remplacez, assurez-vous de le remplacer également dans les étapes suivantes.KMS_Key_For_Encryption_On_EBS_Policy
aws iam create-policy \ --policy-name
KMS_Key_For_Encryption_On_EBS_Policy
\ --policy-document file://kms-key-for-encryption-on-ebs
.json -
Attachez la politique IAM au rôle à l'aide de la commande suivante. Remplacez
par votre ID de compte. Si votre cluster se trouve dans AWS GovCloud (USA Est) ou AWS GovCloud (USA Ouest) Régions AWS, remplacez-le par111122223333
arn:aws:
.arn:aws-us-gov:
aws iam attach-role-policy \ --policy-arn arn:aws:iam::
111122223333
:policy/KMS_Key_For_Encryption_On_EBS_Policy
\ --role-nameAmazonEKS_EBS_CSI_DriverRole
-
-
- AWS Management Console
-
Pour créer votre rôle IAM dans le plugin Amazon EBS CSI avec le AWS Management Console
Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/
. -
Dans le panneau de navigation de gauche, choisissez Rôles.
-
Sur la page Rôles, choisissez Créer un rôle.
-
Sur la page Select trusted entity (Sélectionnez une entité de confiance), procédez comme suit :
Dans la section Trusted entity type (Type d'entité de confiance), sélectionnez Web identity (Identité web).
-
Pour Fournisseur d'identité, choisissez l'URL du fournisseur OpenID Connect pour votre cluster (comme indiqué sous Présentation dans Amazon EKS).
-
Pour Audience, choisissez
sts.amazonaws.com
. Choisissez Suivant.
-
Sur la page Add permissions (Ajouter des autorisations), procédez comme suit :
-
Dans la zone Filter policies (Politiques de filtre), saisissez
AmazonEBSCSIDriverPolicy
. -
Cochez la case à gauche du
AmazonEBSCSIDriverPolicy
renvoyé dans la recherche. Choisissez Suivant.
-
-
Sur la page Name, review, and create (Nommer, vérifier et créer), procédez comme suit :
-
Pour Role name (Nom de rôle), saisissez un nom unique pour votre rôle, par exemple,
.AmazonEKS_EBS_CSI_DriverRole
Sous Ajouter des balises (Facultatif), ajoutez des métadonnées au rôle en attachant les identifications sous forme de paires clé-valeur. Pour plus d'informations sur l'utilisation des balises dans IAM, consultez la rubrique Balisage des ressources IAM dans le Guide de l'utilisateur IAM.
-
Sélectionnez Créer un rôle.
-
Une fois le rôle créé, choisissez le rôle dans la console pour l'ouvrir et le modifier.
Sélectionnez l'onglet Trust relationships (Relations d'approbation), puis Edit trust policy (Modifier la politique d'approbation).
-
Trouvez la ligne qui ressemble à la ligne suivante :
"oidc.eks.
region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
:aud": "sts.amazonaws.com"Ajoutez une virgule à la fin de la ligne précédente, puis ajoutez la ligne suivante après la ligne précédente.
Remplacez-le par Région AWS celui dans lequel se trouve votre cluster. Remplacezregion-code
avec l'ID du fournisseur OIDC de votre cluster.EXAMPLED539D4633E53DE1B71EXAMPLE
"oidc.eks.
region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa" Sélectionnez Update Trust Policy (Mettre à jour la politique d'approbation) pour terminer.
-
Si vous utilisez une clé KMS
personnalisée pour le chiffrement de vos volumes Amazon EBS, personnalisez le rôle IAM en fonction des besoins. Par exemple, procédez comme suit : -
Dans le panneau de navigation de gauche, choisissez Politiques.
-
Sur la page Politiques, choisissez Créer une politique.
-
Sur la page Créer une politique, choisissez l'onglet JSON.
-
Copiez et collez le code suivant dans l'éditeur, en remplaçant
par l'ARN de clé KMS personnalisée.custom-key-arn
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["
custom-key-arn
"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": ["custom-key-arn
"] } ] } -
Choisissez Suivant : Balises.
-
Sur la page Ajouter des balises (facultatif), choisissez Suivant : Vérifier.
-
Dans Nom, attribuez un nom unique à votre politique (par exemple
).KMS_Key_For_Encryption_On_EBS_Policy
-
Choisissez Créer une politique.
-
Dans le panneau de navigation de gauche, choisissez Rôles.
-
Choisissez le fichier
AmazoneKS_EBS_CSI_ DriverRole
dans la console pour l'ouvrir afin de le modifier. -
Dans la liste déroulante Ajouter des autorisations, choisissez Associer des politiques.
-
Dans la zone Filter policies (Politiques de filtre), saisissez
.KMS_Key_For_Encryption_On_EBS_Policy
-
Cochez la case à gauche du
renvoyé dans la recherche.KMS_Key_For_Encryption_On_EBS_Policy
-
Choisissez Attach Policies (Attacher des politiques).
-
- AWS CLI
-
Pour créer votre rôle IAM dans le plugin Amazon EBS CSI avec le AWS CLI
-
Affichez l'URL du fournisseur OIDC de votre cluster. Remplacez
par le nom de votre cluster. Si la sortie de la commande estmy-cluster
None
, consultez Prérequis.aws eks describe-cluster --name
my-cluster
--query "cluster.identity.oidc.issuer" --output textL'exemple qui suit illustre un résultat.
https://oidc.eks.
region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
-
Créez le rôle IAM et attachez-y l'action
AssumeRoleWithWebIdentity
.-
Copiez le contenu suivant dans un fichier nommé
. Remplacezaws-ebs-csi-driver-trust-policy
.json
par votre ID de compte. Remplacez111122223333
etEXAMPLED539D4633E53DE1B71EXAMPLE
par les valeurs renvoyées par l'étape précédente. Si votre cluster se trouve dans AWS GovCloud (USA Est) ou AWS GovCloud (USA Ouest) Régions AWS, remplacez-le parregion-code
arn:aws:
.arn:aws-us-gov:
{ "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:ebs-csi-controller-sa" } } } ] } -
Créez le rôle. Vous pouvez remplacer
par un autre nom. Si vous le remplacez, assurez-vous de le remplacer dans les étapes suivantes.AmazonEKS_EBS_CSI_DriverRole
aws iam create-role \ --role-name
AmazonEKS_EBS_CSI_DriverRole
\ --assume-role-policy-document file://"aws-ebs-csi-driver-trust-policy
.json"
-
-
Joignez une politique. AWS gère une politique AWS gérée ou vous pouvez créer votre propre politique personnalisée. Attachez la politique AWS gérée au rôle à l'aide de la commande suivante. Si votre cluster se trouve dans AWS GovCloud (USA Est) ou AWS GovCloud (USA Ouest) Régions AWS, remplacez-le par
arn:aws:
.arn:aws-us-gov:
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \ --role-name
AmazonEKS_EBS_CSI_DriverRole
-
Si vous utilisez une clé KMS
personnalisée pour le chiffrement de vos volumes Amazon EBS, personnalisez le rôle IAM en fonction des besoins. Par exemple, procédez comme suit : -
Copiez et collez le code suivant dans un nouveau fichier
. Remplacezkms-key-for-encryption-on-ebs
.json
par l'ARN de clé KMS personnalisé.custom-key-arn
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["
custom-key-arn
"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": ["custom-key-arn
"] } ] } -
Créez la politique. Vous pouvez remplacer
par un autre nom. Cependant, si vous le remplacez, assurez-vous de le remplacer également dans les étapes suivantes.KMS_Key_For_Encryption_On_EBS_Policy
aws iam create-policy \ --policy-name
KMS_Key_For_Encryption_On_EBS_Policy
\ --policy-document file://kms-key-for-encryption-on-ebs
.json -
Attachez la politique IAM au rôle à l'aide de la commande suivante. Remplacez
par votre ID de compte. Si votre cluster se trouve dans AWS GovCloud (USA Est) ou AWS GovCloud (USA Ouest) Régions AWS, remplacez-le par111122223333
arn:aws:
.arn:aws-us-gov:
aws iam attach-role-policy \ --policy-arn arn:aws:iam::
111122223333
:policy/KMS_Key_For_Encryption_On_EBS_Policy
\ --role-nameAmazonEKS_EBS_CSI_DriverRole
-
-
Maintenant que vous avez créé le rôle IAM du pilote CSI Amazon EBS, vous pouvez passer à Ajout du module complémentaire du pilote CSI Amazon EBS. Lorsque le plug-in est déployé dans cette procédure, il crée et est configuré pour utiliser un compte de service nommé ebs-csi-controller-sa
. Le compte de service est lié à un clusterrole
Kubernetes, qui se voit attribuer les autorisations Kubernetes requises.