Comment masquer mes variables d'environnement Lambda à un utilisateur IAM ?

Date de la dernière mise à jour : 20/02/2020

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 procéder ?

Solution

Remarque : cette solution empêche les identités IAM de voir les variables d'environnement d'une fonction Lambda uniquement lorsque vous utilisez la console Lambda ou l'API Lambda. La solution 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, clés ou autres informations sensibles dans vos variables d'environnement Lambda, utilisez une Customer Master Key (CMK) AWS Key Management Service (AWS KMS) pour chiffrer les variables d'environnement. Pour plus d'informations, consultez Protection des variables d'environnement.

Modifiez la politique de la clé CMK pour refuser l'accès aux identités IAM qui n'ont pas besoin d'accès. Vous pouvez utiliser la politique de clé suivante à titre d'exemple.

Remarque : Remplacez arn:aws:iam::1234567890:User1DeniedAccess et arn:aws:iam::1234567890:User2DeniedAccess par les Amazon Resource Names (ARN) des identités IAM auxquelles vous souhaitez refuser l'accès. Ajoutez d'autres ARN IAM à la politique de clé en fonction de vos besoins.

{
    "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": "*"
        }
    ]
}

Lorsque les identités IAM auxquelles l'accès est refusé essaient d'afficher les variables d'environnement de votre fonction Lambda dans la console Lambda, l'erreur suivante s'affiche :

"Lambda was unable to decrypt your environment variables because the KMS access was denied. Please check your KMS permissions. KMS Exception: AccessDeniedException KMS Message: The ciphertext refers to a customer master key that does not exist, does not exist in this region, or you are not allowed to access."

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

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?