Comment puis-je masquer les variables d'environnement et le texte non chiffré de ma fonction Lambda à un utilisateur IAM ?

Date de la dernière mise à jour : 07/07/2021

Je souhaite empêcher les utilisateurs AWS Identity and Access Management (IAM) ayant accès à ma fonction AWS Lambda de voir les variables d'environnement et le texte non chiffré. Comment puis-je procéder ?

Résolution

Remarque : la solution suivante empêche les identités IAM de voir les variables d'environnement d'une fonction Lambda uniquement dans la console Lambda et l'API Lambda. Elle n'empêche pas ces identités IAM d'accéder aux variables d'environnement déchiffrées à l'aide du code de la fonction, ni de générer les valeurs des variables d'environnement dans Amazon CloudWatch Logs.

Pour empêcher les identités IAM d'accéder aux mots de passe, aux clés ou à d'autres informations sensibles dans vos variables d'environnement Lambda, procédez comme suit :

Utilisez une clé gérée par le client AWS Key Management Service (AWS KMS) pour chiffrer les variables d'environnement. Pour configurer une clé KMS, suivez les instructions de la section Sécurisation des variables d'environnement.

Important : assurez-vous de modifier la politique de clé pour la clé KMS afin qu'elle refuse l'accès aux identités IAM n'ayant pas besoin d'accès.

Exemple de politique de clé KMS qui refuse à des utilisateurs IAM spécifiques l'autorisation de voir les variables d'environnement Lambda

Remarque : remplacez arn:aws:iam::1234567890:User1DeniedAccess et arn:aws:iam::1234567890:User2DeniedAccess par les Amazon Resource Names (ARN) des identités IAM à qui vous souhaitez refuser l'accès. Vous pouvez ajouter d'autres ARN IAM à la politique de clé si nécessaire.

{
    "Id": "MyCustomKey",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Deny IAM users permission to see Lambda environment variables",
            "Effect": "Deny",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::1234567890:User1DeniedAccess",
                    "arn:aws:iam::1234567890:User2DeniedAccess"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }
    ]
}

Vous recevez un message d'erreur que l'utilisateur IAM refusé voit s'il tente de consulter les variables d'environnement de la fonction similaires aux suivantes :

"Lambda was unable to decrypt your environment variables because the KMS access was denied. Please check your KMS permissions. KMS Exception: AccessDeniedException"

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?