Wie verberge ich die Umgebungsvariablen und den unverschlüsselten Text meiner Lambda-Funktion vor einem IAM-Benutzer?

Lesedauer: 2 Minute
0

Ich möchte verhindern, dass Benutzer von AWS Identity and Access Management (IAM) mit Zugriff auf meine AWS Lambda-Funktion Umgebungsvariablen und unverschlüsselten Text sehen. Wie mache ich das?

Lösung

Hinweis: Die folgende Lösung verhindert, dass IAM-Identitäten die Umgebungsvariablen einer Lambda-Funktion nur in der Lambda-Konsole und der Lambda-API sehen. Es verhindert nicht, dass IAM-Identitäten mithilfe des Funktionscodes auf entschlüsselte Umgebungsvariablen zugreifen oder die Werte der Umgebungsvariablen an Amazon CloudWatch Logs ausgeben.

Gehen Sie wie folgt vor, um zu verhindern, dass IAM-Identitäten auf Passwörter, Schlüssel oder andere vertrauliche Informationen in Ihren Lambda-Umgebungsvariablen zugreifen:

Verwenden Sie einen vom Kunden verwalteten Schlüssel von AWS Key Management Service (AWS KMS), um die Umgebungsvariablen zu verschlüsseln. Um einen KMS-Schlüssel einzurichten, folgen Sie den Anweisungen unter Umgebungsvariablen sichern.

Wichtig: Stellen Sie sicher, dass Sie die Schlüsselrichtlinie bearbeiten für den KMS-Schlüssel so bearbeiten, dass die Richtlinie den Zugriff auf die IAM-Identitäten verweigert, die keinen Zugriff benötigen.

Beispiel für eine KMS-Schlüsselrichtlinie, die bestimmten IAM-Benutzern die Berechtigung verweigert, Lambda-Umgebungsvariablen einzusehen

Hinweis: Ersetzen Sie arn:aws:iam::1234567890:User1DeniedAccess und arn:aws:iam::1234567890:User2DeniedAccess durch die Amazon Resource Names (ARNs) der IAM-Identitäten, denen Sie den Zugriff verweigern möchten. Sie können der Schlüsselrichtlinie nach Bedarf weitere IAM-ARNs hinzufügen.

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

Sie erhalten eine Fehlermeldung, die dem verweigerten IAM-Benutzer angezeigt wird, wenn er versucht, die Umgebungsvariablen der Funktion einzusehen, die der folgenden ähnelt:

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

Ähnliche Informationen

Schlüssel erstellen

AWS Lambda-Berechtigungen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren