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