Utiliser AWS les secrets et le fournisseur de configuration CSI avec des rôles IAM pour les comptes de service (IRSA) - AWS Systems Manager

• Le AWS Systems Manager CloudWatch tableau de bord ne sera plus disponible après le 30 avril 2026. Les clients peuvent continuer à utiliser CloudWatch la console Amazon pour consulter, créer et gérer leurs CloudWatch tableaux de bord Amazon, comme ils le font aujourd'hui. Pour plus d'informations, consultez la documentation Amazon CloudWatch Dashboard.

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 des rôles IAM pour les comptes de service (IRSA)

Conditions préalables

  • Cluster Amazon EKS (version 1.17 ou ultérieure).

  • Accès à un AWS CLI cluster Amazon EKS via kubectl

Configurer le contrôle d'accès

L’ASCP récupère l’identité du pod Amazon EKS et l’échange pour un rôle IAM. Vous définissez des autorisations dans une politique IAM pour ce rôle IAM. Lorsque l’ASCP assume le rôle IAM, il a accès aux paramètres que vous avez autorisés. Les autres conteneurs ne peuvent pas accéder aux paramètres sauf si vous les associez également au rôle IAM.

Autoriser votre pod Amazon EKS à accéder aux paramètres de Parameter Store
  1. Créez une politique d’autorisation qui accorde les autorisations ssm:GetParameters et ssm:DescribeParameters aux paramètres auxquels le pod a besoin pour accéder.

  2. Créez un fournisseur OpenID Connect (OIDC) IAM pour le cluster si vous n'en avez pas déjà un. Pour plus d’informations, consultez Créer un fournisseur IAM OIDC pour votre cluster dans le Guide de l’utilisateur Amazon EKS.

  3. Créez un Rôle IAM pour le compte de service et attachez la politique. Pour plus d’informations, veuillez consulter Créer un rôle IAM pour un compte de service dans le Guide de l’utilisateur Amazon EKS.

  4. 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 Gestion des identités et des accès AWS .

Identifier les paramètres à monter

Pour déterminer quels paramètres l’ASCP monte dans Amazon EKS en tant que fichiers du système de fichiers, vous devez créer un fichier YAML SecretProviderClass. SecretProviderClass répertorie les paramètres à monter et le nom de fichier sous lequel les monter. La SecretProviderClass doit se trouver dans le même espace de noms que le pod Amazon EKS auquel il fait référence.

Monter les paramètres sous forme de fichiers

Les instructions suivantes montrent comment monter des paramètres sous forme de fichiers à l'aide d'exemples de fichiers YAML .yaml et ExampleSecretProviderClass.yaml. ExampleDeployment

Monter les paramètres dans Amazon EKS
  1. Appliquez la SecretProviderClass au pod :

    kubectl apply -f ExampleSecretProviderClass.yaml
  2. Déployez votre pod :

    kubectl apply -f ExampleDeployment.yaml
  3. L’ASCP monte les fichiers.

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
  1. 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 name-space.

    kubectl get pods
  2. Pour décrire le Pod, dans la commande suivante, pod-id utilisez 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 nameSpace.

    kubectl 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 pod-id utiliser l'ID du module csi-secrets-store-provider-aws.

    kubectl -n kube-system get pods kubectl -n kube-system logs Pod/pod-id
  • Vérifiez que le CRD SecretProviderClass est installé :
    kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io

    Cette commande doit renvoyer des informations sur la définition de ressource personnalisée SecretProviderClass.

  • Vérifiez que l' SecretProviderClass objet a été créé.
    kubectl get secretproviderclass SecretProviderClassName -o yaml