View a markdown version of this page

Sicurezza e autorizzazioni - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Sicurezza e autorizzazioni

Questa sezione descrive i ruoli IAM, i token di autenticazione e i controlli di accesso per AWS Lambda MicroVMS.

Ruoli IAM

Ruolo di creazione

Questo ruolo viene utilizzato durante la creazione dell'immagine. Richiede le seguenti autorizzazioni per recuperare gli artefatti di origine e generare i log:s3:GetObject,, logs:CreateLogGroup e. logs:CreateLogStream logs:PutLogEvents Aggiungete anche ecr:GetAuthorizationToken se fate riferimento a immagini ECR private.

Il ruolo di compilazione è facoltativo. Se non fornisci un ruolo di compilazione, Lambda non può scrivere i log di compilazione in CloudWatch.

Ruolo di esecuzione

Questo ruolo viene utilizzato nel runtime di MicroVM per fornire le autorizzazioni di accesso per scrivere i log CloudWatch e utilizzare altri servizi. AWS

Il ruolo di esecuzione è facoltativo. Se non fornisci un ruolo di esecuzione, Lambda non emette log di runtime CloudWatch e la tua MicroVM non può accedere ad altri servizi. AWS

Gli hook del ciclo di vita vengono eseguiti nel ruolo associato alla loro fase. Build-time gli hook (/readye/validate) vengono eseguiti nel ruolo di compilazione. Gli hook di runtime (/run, /resume/suspend, e/terminate) vengono eseguiti sotto il ruolo di esecuzione.

Policy di trust

Entrambi i ruoli richiedono una politica di fiducia che consenta al responsabile del servizio Lambda lambda.amazonaws.com di eseguire sts:AssumeRole e. sts:TagSession

Token di autenticazione

I token controllano l'accesso in entrata a MicroVMS in esecuzione. Sono basati sull'ambito delle porte; ogni token specifica a quali porte concede l'accesso.

# Token granting access to all ports aws lambda-microvms create-microvm-auth-token \ --microvm-identifier <id> \ --expiration-in-minutes 30 \ --allowed-ports '[{"allPorts":{}}]' # Token granting access to port 8080 only aws lambda-microvms create-microvm-auth-token \ --microvm-identifier <id> \ --expiration-in-minutes 30 \ --allowed-ports '[{"port":8080}]'

Token di accesso alla shell

L'accesso alla shell utilizza un'API token separata. La microVM di destinazione deve essere stata eseguita con il connettore di SHELL_INGRESS rete ()arn:aws:lambda:us-east-1:aws:network-connector:aws-network-connector:SHELL_INGRESS. Se la MicroVM non è stata avviata con questo connettore, create-microvm-shell-auth-token si verifica un errore con: ValidationException

aws lambda-microvms create-microvm-shell-auth-token \ --microvm-identifier <id> \ --expiration-in-minutes 30

Per una procedura dettagliata sulla connessione a una shell MicroVM, consulta. Accesso alla shell

Applicazione di tag alle risorse

Le immagini Lambda MicroVM supportano i tag AWS delle risorse per l'organizzazione e l'allocazione dei costi. Aggiungi tag durante la creazione di un'immagine utilizzando il --tags parametro o in modo esplicito dopo la creazione. Puoi anche elencare ed eliminare i tag, come illustrato di seguito: puoi anche fare riferimento ai tag nelle condizioni delle policy IAM per controllare l'accesso alle risorse MicroVM.

# Add tags when creating an image aws lambda-microvms create-microvm-image \ --name my-app-image \ --code-artifact '{"uri":"s3://my-bucket/app.zip"}' \ --base-image-arn arn:aws:lambda:us-east-1:aws:microvm-image:al2023-1 \ --build-role-arn arn:aws:iam::123456789012:role/MicrovmBuildRole \ --tags '{"Environment":"production","Team":"platform"}' # List tags on a resource aws lambda-microvms list-tags \ --resource arn:aws:lambda:us-east-1:123456789012:microvm-image:my-app-image # Add tags to an existing resource aws lambda-microvms tag-resource \ --resource arn:aws:lambda:us-east-1:123456789012:microvm-image:my-app-image \ --tags '{"CostCenter":"12345","Project":"sandbox-platform"}' # Remove tags by key aws lambda-microvms untag-resource \ --resource arn:aws:lambda:us-east-1:123456789012:microvm-image:my-app-image \ --tag-keys '["CostCenter","Project"]'

Riferimento alle autorizzazioni IAM

Lambda MicroVMS definisce le seguenti azioni IAM. Utilizzale nelle policy IAM per controllare l'accesso alle operazioni di MicroVM.

Azione Description
lambda:CreateMicrovmImage Crea una nuova immagine MicroVM.
lambda:UpdateMicrovmImage Aggiorna un'immagine MicroVM esistente.
lambda:DeleteMicrovmImage Elimina un'immagine MicroVM.
lambda:GetMicrovmImage Ottieni i dettagli dell'immagine MicroVM.
lambda:ListMicrovmImages Elenca le immagini MicroVM nell'account.
lambda:RunMicrovm Esegui una nuova MicroVM.
lambda:GetMicrovm Ottieni lo stato e i dettagli della microVM.
lambda:ListMicrovms Elenca le MicroVMS nell'account.
lambda:SuspendMicrovm Sospendi una MicroVM in esecuzione.
lambda:ResumeMicrovm Riprendi una MicroVM sospesa.
lambda:TerminateMicrovm Terminare una MicroVM.
lambda:CreateMicrovmAuthToken Genera un token di autenticazione per una MicroVM.
lambda:CreateMicrovmShellAuthToken Genera un token di accesso alla shell.

Formati ARN delle risorse

# MicroVM image arn:aws:lambda:<region>:<account>:microvm-image:<image-name> # Network connector arn:aws:lambda:<region>:<account>:network-connector:<connector-id>

Esempio: Least-privilege politica per un operatore

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:ListMicrovms", "lambda:ListMicrovmImages" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "lambda:RunMicrovm", "lambda:GetMicrovm", "lambda:SuspendMicrovm", "lambda:ResumeMicrovm", "lambda:TerminateMicrovm", "lambda:CreateMicrovmAuthToken", "lambda:GetMicrovmImage" ], "Resource": "arn:aws:lambda:*:123456789012:microvm-image:*" } ] }