Come faccio a nascondere le variabili di ambiente e il testo non crittografato della mia funzione Lambda a un utente IAM?

2 minuti di lettura
0

Voglio impedire agli utenti di AWS Identity and Access Management (AWS IAM), che possono accedere alla mia funzione AWS Lambda, di visualizzare variabili di ambiente e testo non crittografato. Come posso farlo?

Soluzione

Nota: La soluzione seguente impedisce alle identità IAM di visualizzare le variabili di ambiente di una funzione Lambda solo nella console Lambda e nell'API Lambda. Non impedisce alle identità IAM di accedere a variabili di ambiente decrittografate utilizzando il codice della funzione o di inviare i valori delle variabili di ambiente nei File di log Amazon CloudWatch.

Per impedire alle identità IAM di accedere a password, chiavi o altre informazioni sensibili nelle variabili di ambiente Lambda, procedi come segue:

Usa una chiave gestita dal cliente del Servizio di gestione delle chiavi AWS (AWS KMS) per crittografare le variabili di ambiente. Per configurare una chiave KMS, segui le istruzioni in Protezione delle variabili di ambiente.

Importante: Assicurati di modificare la policy della chiave per la chiave KMS in modo che la policy neghi l'accesso alle identità IAM che non necessitano di accesso.

Esempio di policy della chiave KMS che nega a specifici utenti IAM l'autorizzazione a visualizzare le variabili di ambiente Lambda

Nota: Sostituisci arn:aws:iam::1234567890:User1DeniedAccess e arn:aws:iam::1234567890:User2DeniedAccess con i nomi della risorsa Amazon (ARN) delle identità IAM a cui vuoi negare l'accesso. Se necessario, puoi aggiungere altri ARN IAM alla policy della chiave.

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

Ricevi un messaggio di errore che viene visualizzato dall'utente IAM negato se tenta di visualizzare le variabili di ambiente della funzione in modo simile ai seguenti:

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

Informazioni correlate

Creazione di chiavi

Autorizzazioni AWS Lambda

AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa