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

Costruisci un ruolo

Questo ruolo viene utilizzato durante la creazione dell'immagine. Richiede le seguenti autorizzazioni per recuperare gli artefatti di origine e generare registri:s3:GetObject,, e. logs:CreateLogGroup logs:CreateLogStream logs:PutLogEvents Aggiungi anche ecr:GetAuthorizationToken se fai 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 su. CloudWatch

Ruolo di esecuzione

Questo ruolo viene utilizzato in fase di esecuzione di MicroVM per fornire le autorizzazioni di accesso per scrivere 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 nell'ambito del ruolo associato alla loro fase. Build-time gli hook (/readye/validate) vengono eseguiti con il ruolo build. Gli hook di runtime (/run, /resume/suspend, e/terminate) vengono eseguiti con il ruolo di esecuzione.

Policy di trust

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

Token di autenticazione

I token controllano l'accesso in entrata alle microVM 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 fallisce con un: 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, vedi. Accesso alla shell

Applicazione di tag alle risorse

Le risorse Lambda MicroVM (immagini, microVM) supportano i tag delle risorse per l'organizzazione e l'allocazione dei AWS costi. Aggiungi tag quando crei un'immagine utilizzando il parametro o esplicitamente dopo la --tags 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 microVM.

Azione Description
lambda:CreateMicrovmImage Crea una nuova immagine MicroVM.
lambda:UpdateMicrovmImage Aggiorna un'immagine MicroVM esistente.
lambda:DeleteMicrovmImage Eliminare 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 di MicroVM.
lambda:ListMicrovms Elenca MicroVMS nell'account.
lambda:SuspendMicrovm Sospendere una microVM in esecuzione.
lambda:ResumeMicrovm Riprendi una microVM sospesa.
lambda:TerminateMicrovm Termina 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> # MicroVM instance arn:aws:lambda:<region>:<account>:microvm:<microvm-id> # 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:RunMicrovm", "lambda:GetMicrovm", "lambda:ListMicrovms", "lambda:SuspendMicrovm", "lambda:ResumeMicrovm", "lambda:TerminateMicrovm", "lambda:CreateMicrovmAuthToken" ], "Resource": "arn:aws:lambda:*:123456789012:microvm:*" }, { "Effect": "Allow", "Action": ["lambda:GetMicrovmImage", "lambda:ListMicrovmImages"], "Resource": "arn:aws:lambda:*:123456789012:microvm-image:*" } ] }