AWS Systems ManagerChange Managern'est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez AWS Systems ManagerChange Managerla section Modification de la disponibilité.
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.
Utiliser AWS les secrets et le fournisseur de configuration CSI avec Pod Identity pour Amazon EKS
L'intégration du fournisseur de AWS secrets et de configuration à l'agent Pod Identity pour Amazon Elastic Kubernetes Service améliore la sécurité, simplifie la configuration et améliore les performances des applications exécutées sur Amazon EKS. Pod Identity simplifie l'authentification AWS Identity and Access Management (IAM) pour Amazon EKS lors de la récupération de paramètres AWS Systems Manager Parameter Store ou de secrets depuis Secrets Manager.
L’identité du pod Amazon EKS rationalise le processus de configuration des autorisations IAM pour les applications Kubernetes en permettant de configurer les autorisations directement via les interfaces Amazon EKS, en réduisant le nombre d’étapes et en éliminant le besoin de basculer entre les services Amazon EKS et IAM. L’identité du pod permet d’utiliser un seul rôle IAM sur plusieurs clusters sans mettre à jour les politiques de confiance et prend en charge les balises de session de rôle pour un contrôle d’accès plus granulaire. Cette approche simplifie non seulement la gestion des politiques en permettant la réutilisation des politiques d'autorisation entre les rôles, mais elle améliore également la sécurité en autorisant l'accès aux AWS ressources en fonction des balises correspondantes.
Comment ça marche
-
L’identité du pod attribue un rôle IAM au pod.
-
ASCP utilise ce rôle pour s'authentifier auprès de. Services AWS
-
Si l’autorisation est obtenue, l’ASCP récupère les paramètres demandés et les met à la disposition du pod.
Pour plus d’informations, consultez Comprendre le l’identité du pod Amazon EKS dans le Guide de l’utilisateur Amazon EKS.
Prérequis
Important
L’identité du pod n’est prise en charge que pour Amazon EKS dans le cloud. Il n'est pas pris en charge pour Amazon EKS Anywhere Red Hat OpenShift Service on AWS
-
Cluster Amazon EKS (version 1.24 ou ultérieure).
-
Accès à un AWS CLI cluster Amazon EKS via
kubectl -
(Facultatif) Accès à deux Comptes AWS pour un accès entre comptes
Installer l’agent d’identité du pod Amazon EKS
Pour utiliser l’identité du pod avec votre cluster, vous devez installer le module complémentaire Agent d’identité du pod Amazon EKS.
Installer l’agent d’identité du pod
-
Installez le module complémentaire Agent d’identité du pod sur votre cluster.
Remplacez le
default placeholder textpar vos propres valeurs :eksctl create addon \ --name eks-pod-identity-agent \ --clusterclusterName\ --regionregion
Configurer l’ASCP avec l’identité du pod
-
Créez une politique d’autorisation qui accorde les autorisations
ssm:GetParametersetssm:DescribeParametersaux paramètres auxquels le pod a besoin pour accéder. -
Créez un rôle IAM qui peut être assumé par le principal de service Amazon EKS pour l’identité du pod :
Attachez la politique gérée IAM au rôle.
Remplacez le
default placeholder textpar vos propres valeurs :aws iam attach-role-policy \ --role-nameMY_ROLE\ --policy-arnPOLICY_ARN -
Créez une association d’identité du pod. Par exemple, consultez Créer une association d’identité du pod dans le Guide de l’utilisateur Amazon EKS.
-
Créez la
SecretProviderClassqui spécifie les paramètres ou les secrets à monter dans le pod :kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleSecretProviderClass-PodIdentity.yamlLa principale différence dans
SecretProviderClassentre IRSA et l’identité du pod réside dans le paramètre facultatifusePodIdentity. Il s’agit d’un champ facultatif qui détermine l’approche d’authentification. Lorsqu’il n’est pas spécifié, les rôles IAM pour les comptes de service (IRSA) sont utilisés par défaut.-
Pour utiliser l’identité du pod EKS, utilisez l’une des valeurs suivantes :
"true", "True", "TRUE", "t", "T". -
Pour utiliser IRSA de manière explicite, définissez l’une des valeurs suivantes :
"false", "False", "FALSE", "f", or "F".
-
-
Déployez le pod qui monte les paramètres ou les secrets sous
/mnt/secrets-store:kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleDeployment-PodIdentity.yaml -
Si vous utilisez un cluster Amazon EKS privé, assurez-vous que le VPC dans lequel se trouve le cluster possède un AWS STS point de terminaison. Pour en savoir plus sur la création d’un point de terminaison, consultez Points de terminaison de VPC d’interface dans le Guide de l’utilisateur AWS Identity and Access Management .
Vérifier le montage du secret
Pour vérifier que le paramètre ou secret est correctement monté, exécutez la commande suivante.
Remplacez le default placeholder text par vos propres valeurs :
kubectl exec -it $(kubectl get pods | awk '/pod-identity-deployment/{print $1}' | head -1) -- cat /mnt/secrets-store/MyParameter
Pour configurer l’identité du pod Amazon EKS afin d’accéder aux paramètres dans Parameter Store
-
Créez une politique d’autorisation qui accorde les autorisations
ssm:GetParametersetssm:DescribeParametersaux paramètres auxquels le pod a besoin pour accéder. -
Créez un paramètre dans Parameter Store, si vous n’en avez pas déjà un. Pour plus d'informations, consultez Création de paramètres Parameter Store dans Systems Manager.
Dépannage
Vous pouvez afficher la plupart des erreurs en décrivant le déploiement du pod.
Pour afficher les messages d'erreur pour votre conteneur
-
Obtenez une liste de noms de pod à l’aide de la commande suivante. Si vous n'utilisez pas l'espace de noms par défaut, utilisez
-n.namespacekubectl get pods -
Pour décrire le Pod, dans la commande suivante,
pod-idutilisez l'ID du Pod indiqué dans les Pods que vous avez trouvés à l'étape précédente. Si vous n'utilisez pas l'espace de noms par défaut, utilisez-n.NAMESPACEkubectl describe pod/pod-id
Pour voir les erreurs pour l'ASCP
-
Pour obtenir plus d'informations dans les journaux du fournisseur, utilisez la commande suivante pour
PODIDutiliser l'ID du module csi-secrets-store-provider-aws.kubectl -n kube-system get pods kubectl -n kube-system logs pod/pod-id