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à.
Rete
È possibile configurare l'accesso alla rete per la AWS Lambda microVM associando le risorse di Network Connector alla microVM in fase di esecuzione. I connettori di rete vengono specificati al momento della chiamata run-microvm e non possono essere modificati mentre una MicroVM è in esecuzione.
Panoramica di
Ogni microVM può avere configurazioni di rete in ingresso (in entrata) e in uscita (in uscita) indipendenti:
-
I connettori di rete in ingresso consentono la connettività in ingresso. I client si connettono a un endpoint HTTPS gestito dal servizio e Lambda inoltra il traffico alle porte configurate all'interno della MicroVM. I connettori di ingresso sono AWS gestiti: si fa riferimento ad essi tramite ARN quando si esegue una microVM.
-
I connettori di rete in uscita consentono il traffico in uscita. Per impostazione predefinita, le microVM dispongono di un accesso pubblico a Internet. Puoi invece creare un connettore di uscita VPC gestito dal cliente per indirizzare il traffico in uscita attraverso il tuo VPC.
Un singolo connettore può essere riutilizzato su più microVM: questo è il modello di utilizzo previsto.
Connettività in entrata
Ogni Lambda MicroVM è raggiungibile tramite un URL di endpoint HTTPS univoco, assegnato al momento della chiamata. run-microvm I client inviano richieste a questo endpoint tramite HTTPS. Lambda indirizza ogni richiesta a una porta all'interno della microVM, dove l'applicazione la riceve.
Per impostazione predefinita, le richieste ricevute all'endpoint vengono indirizzate alla porta 8080 all'interno della microVM. Per il routing verso una porta diversa, vedere. Routing delle porte
I seguenti protocolli sono supportati sull'endpoint in entrata:
-
HTTP/1.1
-
HTTP/2
-
WebSockets
-
gRPC
-
Server-Sent Eventi (SSE)
Nota
Il traffico tra il client e l'endpoint MicroVM è sempre crittografato con TLS. L'applicazione può gestire internamente le richieste tramite HTTP o HTTPS.
Routing delle porte
Lambda seleziona la porta di destinazione all'interno della microVM utilizzando il seguente ordine di priorità:
-
X-aws-proxy-portheader: per le richieste HTTP standard, includi questa intestazione con il numero di porta di destinazione. -
WebSocket sottoprotocollo: se il WebSocket client non è in grado di impostare intestazioni personalizzate, specifica la porta di destinazione come sottoprotocollo denominato
lambda-microvms.port., dov'èNNil numero di porta. Fornisci dei sottoprotocolli quando apri la connessione. WebSocket Per un esempio, consulta Protocolli. -
Predefinito (8080): se non viene specificato nessuno dei due, richiede l'instradamento verso la porta 8080.
Importante
La porta di destinazione deve rientrare in quella allowedPorts definita nel token di autenticazione. Le richieste verso porte non autorizzate ricevono una risposta 403 Forbidden.
Autenticazione
Tutte le richieste a un endpoint MicroVM richiedono un token di autenticazione valido nell'intestazione. X-aws-proxy-auth I token vengono generati utilizzando. create-microvm-auth-token Ogni token è una stringa JWE (JSON Web Encryption) crittografata con l'ambito di:
-
Una microVM specifica (identificata da un ID).
-
Un set di porte consentite (porta singola, intervallo o tutte le porte).
-
Un'ora di scadenza (configurata al momento della creazione del token).
L'esempio seguente crea un token e lo utilizza per inviare una richiesta autenticata:
aws lambda-microvms create-microvm-auth-token \ --microvm-identifiermicrovm-id\ --expiration-in-minutes 30 \ --allowed-ports '[{"port":8080}]'
curl 'https://microvm-endpoint' \ -H 'X-aws-proxy-auth:TOKEN' \ -H 'X-aws-proxy-port: 8080'
Per una procedura dettagliata sulla creazione di token e sulla connessione a una MicroVM, comprese le connessioni, consulta. WebSocket Connessione a una microVM
Risposte agli errori
I seguenti codici di stato HTTP vengono restituiti dall'endpoint MicroVM quando non è in grado di elaborare o consegnare una richiesta all'applicazione. Queste risposte provengono dall'endpoint, non dall'applicazione.
| Codice | Stato | Causa e risoluzione |
|---|---|---|
| 400 | Richiesta non valida | Richiesta non valida o intestazione di porta o sottoprotocollo non validi. WebSocket Verifica il formato. |
| 403 | Accesso negato | Token mancante, scaduto o non valido; oppure la porta richiesta non è inclusa in quella del token. allowedPorts Genera un nuovo token o utilizza una porta consentita. |
| 429 | Troppe richieste | Limite di velocità superato (a livello di account o per microVM). Riprova con un backoff esponenziale. |
| 500 | Errore interno del server | Si è verificato un errore interno. Riprova la richiesta . |
| 502 | Gateway non valido | L'applicazione non risponde o il ripristino automatico non è riuscito entro il numero massimo di tentativi di ripetizione. Consulta Auto-resume. |
Intestazioni della richiesta
Lo spazio dei nomi dell'X-aws-proxy-*intestazione è riservato da Lambda per i metadati della richiesta, come il token di autenticazione () e la porta di destinazione (). X-aws-proxy-auth X-aws-proxy-port Lambda rimuove le X-aws-proxy-* intestazioni prima di inoltrare la richiesta all'applicazione.
Request/response larghezza di banda
Ogni Lambda MicroVM ha una request/response larghezza di banda che si ridimensiona linearmente in base alle sue dimensioni. Questa larghezza di banda si applica a tutto il traffico attraverso l'endpoint MicroVM, sia alle richieste in entrata che alle risposte in uscita.
| Dimensioni della microVM (linea di base) | Larghezza di banda massima |
|---|---|
| 0,5 GB, 0,25 vCPU | MB/s (18 Mbps) |
| 1 GB, 0,5 vCPU | 2 MB/s (16 Mbps) |
| 2 GB, 1 vCPU | 4 MB/s (32 Mbps) |
| 4 GB, 2 vCPU | 8 MB/s (64 Mbps) |
| 8 GB, 4 vCPU | 16 MB/s (128 Mbps) |
Se riscontri una maggiore latenza delle richieste a causa della saturazione della rete, riduci la concorrenza delle richieste o le dimensioni del payload oppure seleziona una microVM di dimensioni maggiori per aumentare la larghezza di banda disponibile.
HTTP/2 supporto
Supporto per Lambda MicroVMS HTTP/2 sull'endpoint in ingresso. Lambda negozia il protocollo tramite ALPN (Protocol Negotiation) durante l'Application-Layer handshake TLS, preferendo e ricorrendo a. HTTP/2 HTTP/1.1 Un client lo utilizza automaticamente. HTTP/2-capable
Da utilizzare HTTP/2 tra l'endpoint e l'applicazione all'interno della MicroVM:
-
La tua applicazione funziona con TLS: Lambda negozia HTTP/2 con la tua applicazione tramite ALPN, ricorrendo a se non è supportata. HTTP/1.1 HTTP/2
-
L'applicazione utilizza il protocollo HTTP in chiaro: includi l'
X-aws-proxy-force-h2: trueintestazione nella richiesta da utilizzare HTTP/2 per la connessione all'applicazione.
Connettività in uscita
Per impostazione predefinita, le microVM Lambda dispongono di un accesso pubblico a Internet sul percorso di uscita. Per connettere le microVM alle risorse dei tuoi VPC privati, come RDS, ElastiCache API interne e sistemi locali tramite Direct Connect o VPN, crea un Lambda Network Connector con la tua configurazione VPC.
Quando si utilizza il VPC in uscita, il traffico in uscita è soggetto alle regole del gruppo di sicurezza e agli ACL di rete che regolano il traffico nel VPC.
Utilizzo dei connettori di rete in uscita
I connettori di rete in uscita indirizzano il traffico in uscita dalla tua MicroVM al tuo VPC. Si crea un connettore una volta, quindi si fa riferimento ad esso tramite ARN all'avvio di MicroVMS tramite il comando. run-microvm
Prerequisiti
Prima di creare un connettore di rete, è necessario un ruolo IAM che consenta a Lambda di creare interfacce di rete elastiche (ENI) nel tuo VPC. Il ruolo richiede le seguenti autorizzazioni:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateENI", "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "TagENI", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" } } } ] }
Creazione di un connettore di rete
Crea un connettore specificando le sottoreti VPC, i gruppi di sicurezza e il protocollo di rete (oppure): IPv4 DualStack
aws lambda-core create-network-connector \ --name my-connector \ --configuration '{ "VpcEgressConfiguration": { "SubnetIds": ["subnet-xxx"], "SecurityGroupIds": ["sg-xxx"], "NetworkProtocol": "IPv4", "AssociatedComputeResourceTypes": ["MicroVm"] } }' \ --operator-role arn:aws:iam::123456789012:role/NetworkConnectorOperatorRole
Stati del connettore di rete
Un connettore deve essere nello ACTIVE stato prima di potervi fare riferimentorun-microvm.
| Stato | Description |
|---|---|
PENDING |
Il connettore è in fase di creazione (viene eseguito il provisioning degli ENI sottostanti). |
ACTIVE |
Il connettore è pronto per l'uso. |
INACTIVE |
Il connettore è temporaneamente inattivo. |
FAILED |
Il provisioning o l'aggiornamento non sono riusciti. Controlla StateReason. |
DELETING |
Il connettore è in fase di eliminazione; gli ENI sono in fase di pulizia. |
DELETE_FAILED |
Eliminazione non riuscita. |
Esecuzione di una microVM con un connettore di rete
Fai riferimento al connettore ARN quando esegui una microVM:
aws lambda-microvms run-microvm \ --image-identifier arn:aws:lambda:us-east-1:123456789012:microvm-image:my-microvm-image \ --egress-network-connectorsconnector-arn\ --idle-policy '{"maxIdleDurationSeconds":900,"suspendedDurationSeconds":1800,"autoResumeEnabled":false}'
Nota
Prima di aggiornare o eliminare un connettore, assicurati che tutte le MicroVM che lo utilizzano siano terminate. La modifica di un connettore in uso attivo può causare problemi di connettività di rete per l'esecuzione di MicroVMS.
Utilizzo di Lambda MicroVMS con endpoint VPC di interfaccia (AWS PrivateLink)
Puoi utilizzarlo AWS PrivateLink per la connettività privata sulla AWS rete tra le tue risorse VPC e Lambda MicroVMS, senza attraversare la rete Internet pubblica. MicroVMS supporta due endpoint VPC, a seconda della destinazione del traffico desiderata:
-
API di gestione MicroVM (creazione di immagini, esecuzione, sospensione, interruzione): utilizza l'endpoint Lambda VPC esistente ().
com.amazonaws.region.lambda -
Connettività a MicroVMS (traffico HTTPS verso le applicazioni in esecuzione): utilizza un endpoint separato ().
com.amazonaws.region.lambda-microvm
Endpoint VPC per le API di gestione delle microVM
Lambda MicroVMS condivide lo stesso servizio di endpoint VPC di Lambda (). com.amazonaws. Per istruzioni complete, consulta Creazione di un endpoint di interfaccia per Lambda. region.lambda
Politica degli endpoint per le API di gestione MicroVM
Per controllare chi può utilizzare l'endpoint dell'interfaccia e quali azioni dell'API Lambda MicroVMS può eseguire, allega una policy sugli endpoint. La policy specifica il principale che può eseguire le azioni, le azioni che può eseguire e le risorse su cui può agire. Le azioni Lambda MicroVMS utilizzano il prefisso di azione IAMlambda:.
Per ulteriori informazioni, consulta Controllo degli accessi ai servizi con endpoint VPC nella Guida per l’utente di Amazon VPC.
La seguente policy di esempio consente all'utente di MyUser elencare e ottenere immagini MicroVM tramite l'endpoint:
{ "Statement": [ { "Principal": { "AWS": "arn:aws:iam::111122223333:user/MyUser" }, "Effect": "Allow", "Action": [ "lambda:ListMicrovmImages", "lambda:GetMicrovmImage" ], "Resource": "*" } ] }
Endpoint VPC per la connettività MicroVM
Per mantenere privato il traffico HTTPS verso le microVMS in esecuzione, crea un endpoint di interfaccia per il servizio. com.amazonaws. Questo endpoint gestisce le connessioni agli URL degli endpoint MicroVM (ad esempio). region.lambda-microvmabc123def456.lambda-microvm.us-east-1.on.aws
Per ulteriori informazioni sulle proprietà degli endpoint di interfaccia, consulta la guida agli endpoint di interfaccia nella documentazione di Amazon VPC.
Creazione dell'endpoint
Per creare un endpoint di interfaccia per la connettività MicroVM (console)
-
Aprire la pagina Endpoint
della console Amazon VPC. -
Seleziona Crea endpoint.
-
In Categoria del servizio, assicurati che sia selezionato Servizi di AWS .
-
Per Service Name (Nome del servizio), selezionare
com.amazonaws.. Verifica che il tipo sia Interfaccia.region.lambda-microvm -
Creazione di un VPC e delle sottoreti
-
Per abilitare il DNS privato per l'endpoint dell'interfaccia, seleziona la casella di controllo Abilita nome DNS (scelta consigliata). Ciò garantisce che le richieste che utilizzano il nome host pubblico dell'endpoint MicroVM si risolvano automaticamente nell'endpoint dell'interfaccia, senza che siano necessarie modifiche sul lato client.
-
Per gruppo di sicurezza, scegliere uno o più gruppi di sicurezza. Il gruppo di sicurezza deve consentire il traffico TCP in uscita sulla porta 443 verso le interfacce di rete degli endpoint.
-
Seleziona Crea endpoint.
Per utilizzare l'opzione DNS privato, devi impostare gli attributi e del enableDnsHostnames tuo VPC. enableDnsSupport Per ulteriori informazioni, consulta Visualizzazione e aggiornamento del supporto DNS per il VPC nella Guida per l'utente di Amazon VPC.
Per creare un endpoint di interfaccia per la connettività MicroVM (CLI)AWS
aws ec2 create-vpc-endpoint \ --vpc-idvpc-ec43eb89\ --vpc-endpoint-type Interface \ --service-name com.amazonaws.us-east-1.lambda-microvm \ --subnet-idsubnet-abababab\ --security-group-idsg-1a2b3c4d\ --private-dns-enabled
Per verificare che l'endpoint sia disponibile e che il DNS privato sia attivo:
aws ec2 describe-vpc-endpoints \ --vpc-endpoint-idsvpce-1a2b3c4d5e6f7g8h9\ --query 'VpcEndpoints[0].{State:State,PrivateDns:PrivateDnsEnabled,Dns:DnsEntries[*].DnsName}'
Comportamento DNS privato
Quando il DNS privato è abilitato: l'endpoint gestisce la risoluzione DNS all'interno del tuo VPC. *.lambda-microvm. I nomi host degli endpoint MicroVM esistenti (ad esempioregion.on.awsabc123def456.lambda-microvm.us-east-1.on.aws) vengono risolti negli indirizzi IP privati delle interfacce di rete degli endpoint. Non è richiesta alcuna modifica del client.
Quando il DNS privato è disabilitato, Amazon VPC genera un nome DNS specifico per l'endpoint nel modulo. Per indirizzare il traffico attraverso questo endpoint continuando a raggiungere la microVM corretta, devi conservare il nome host MicroVM originale in due posizioni:vpce-id-hash.lambda-microvm.region.vpce.amazonaws.com
-
Indicazione del nome del server TLS (SNI): l'handshake TLS utilizza questo valore per identificare a quale microVM è destinata la connessione.
-
Intestazione HTTP Host: il proxy utilizza questo valore per indirizzare la richiesta alla MicroVM corretta.
Se uno dei valori è impostato sul nome host dell'endpoint VPC anziché sul nome host MicroVM, la connessione non può essere indirizzata alla MicroVM corretta.
Esempio: connessione tramite un nome DNS specifico dell'endpoint
L'esempio seguente utilizza curl --connect-to flag per reindirizzare la connessione TCP all'endpoint VPC mantenendo il nome host MicroVM nell'URL, nell'SNI e nell'intestazione Host:
ENDPOINT_HOST=abc123def456.lambda-microvm.us-east-1.on.aws VPCE_HOST=vpce-0a1b2c3d4e5f67890-a1b2c3d4.lambda-microvm.us-east-1.vpce.amazonaws.com curl --connect-to "$ENDPOINT_HOST:443:$VPCE_HOST:443" \ -H "x-aws-proxy-auth: $MICROVM_AUTH_TOKEN" \ -H "x-aws-proxy-port: 8080" \ "https://$ENDPOINT_HOST/"
Il --connect-to flag indica a curl di aprire la connessione TCP all'indirizzo dell'endpoint VPC, mentre l'URL, l'SNI TLS e l'intestazione Host rimangono impostati sul nome host MicroVM.
Per ulteriori informazioni, consultare Accesso a un servizio tramite un endpoint di interfaccia in Guida per l'utente di Amazon VPC.
Politica degli endpoint per la connettività MicroVM
È possibile allegare una policy sugli endpoint per controllare quali microVM sono raggiungibili tramite l'endpoint VPC. lambda-microvm Una policy sugli endpoint sul lambda-microvm servizio consente di definire l'ambito delle connessioni a account o organizzazioni specifici. Per impostazione predefinita, l'endpoint consente le connessioni a MicroVMS in qualsiasi account. AWS (Nota: il client che stabilisce la connessione deve ancora possedere un token di autenticazione MicroVM valido per ottenere l'accesso).
Per impostazione predefinita, un endpoint VPC ha una politica di accesso completo che consente tutto il traffico. Quando si sostituisce la policy predefinita con una policy personalizzata, Lambda MicroVMS valuta tale policy rispetto all'lambda:ConnectMicrovmazione su ogni connessione effettuata tramite l'endpoint. Se la policy non consente la connessione a MicroVMS, la connessione viene rifiutata con una risposta HTTP 403 Forbidden. Una policy che non concede lambda:ConnectMicrovm nega tutte le connessioni tramite l'endpoint.
Nota
L'lambda:ConnectMicrovmazione autorizza una connessione a un endpoint MicroVM tramite l'endpoint dell'interfaccia. Non è un'operazione API Lambda e non può essere utilizzata nelle policy IAM basate sull'identità o sulle risorse: è valida solo in una policy sugli endpoint VPC.
Principal e risorsa
Le connessioni a un endpoint MicroVM sono autenticate con un token di autenticazione MicroVM anziché con Signature Version 4. AWS Per questo motivo, nessun principale IAM è associato alla connessione. Invece, Lambda MicroVMS valuta la policy degli endpoint con un principale anonimo. Ciò significa che:
-
Principaldeve essere"*". Una policy che nomina un principale specifico non corrisponde a nulla e nega ogni connessione. -
Le chiavi di condizione che dipendono dall'identità del richiedente (ad esempio
aws:PrincipalArn,aws:PrincipalOrgID, eaws:userid) non vengono compilate e non corrisponderanno. -
Resourcedeve anche esserlo."*"Lambda MicroVMS non prevede la valutazione delle policy degli endpoint per gli ARN delle singole risorse MicroVM. Per limitare le microVM che l'endpoint può raggiungere, utilizza la chiave di condizione anziché l'elemento.aws:ResourceAccountResource
Chiavi di condizione supportate
| Chiave di condizione | Description |
|---|---|
aws:ResourceAccount |
L' AWS account proprietario della microVM a cui si sta connettendo. |
aws:ResourceOrgID |
L'ID dell' AWS organizzazione dell'account proprietario della MicroVM. |
aws:SourceVpce |
L'ID dell'endpoint di interfaccia attraverso il quale è passata la connessione. |
aws:SourceVpc |
L'ID del VPC da cui proviene la connessione. |
aws:VpcSourceIp |
L'indirizzo IP privato del client che ha effettuato la connessione. |
Esempio: consenti le connessioni solo a MicroVMS nel tuo account
La seguente politica sugli endpoint consente le connessioni tramite l'endpoint solo a MicroVMS di proprietà dell'account 111122223333. Le connessioni a MicroVMS di proprietà di qualsiasi altro account vengono negate.
{ "Statement": [ { "Principal": "*", "Effect": "Allow", "Action": "lambda:ConnectMicrovm", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } } ] }