Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Mise en réseau
Vous configurez l'accès réseau pour vos AWS Lambda micromachines virtuelles en associant les ressources du connecteur réseau à votre micromachine virtuelle au moment de l'exécution. Les connecteurs réseau sont spécifiés lorsque vous appelez run-microvm et ne peuvent pas être modifiés lorsqu'une microVM est en cours d'exécution.
Vue d’ensemble
Chaque microVM peut avoir des configurations réseau d'entrée (entrant) et de sortie (sortant) indépendantes :
-
Les connecteurs réseau d'entrée permettent la connectivité entrante. Les clients se connectent à un point de terminaison HTTPS géré par des services et Lambda redirige le trafic vers les ports que vous configurez dans la microVM. Les connecteurs d'entrée sont AWS gérés : vous les référencez par ARN lorsque vous exécutez une microVM.
-
Les connecteurs réseau de sortie activent le trafic sortant. Par défaut, les micromachines virtuelles disposent d'un accès public à Internet. Vous pouvez créer un connecteur de sortie VPC géré par le client pour acheminer le trafic sortant via votre VPC à la place.
Un seul connecteur peut être réutilisé sur de nombreuses micromachines virtuelles. Il s'agit du modèle d'utilisation prévu.
Connectivité entrante
Chaque microVM Lambda est accessible via une URL de point de terminaison HTTPS unique, attribuée lorsque vous appelez. run-microvm Les clients envoient des demandes à ce point de terminaison via HTTPS. Lambda achemine chaque demande vers un port de votre microVM, où votre application la reçoit.
Par défaut, les demandes reçues au point de terminaison sont acheminées vers le port 8080 de la microVM. Pour accéder à un autre port, voirRoutage des ports.
Les protocoles suivants sont pris en charge sur le terminal entrant :
-
HTTP/1.1
-
HTTP/2
-
WebSockets
-
gRPC
-
Server-Sent Événements (SSE)
Note
Le trafic entre votre client et le point de terminaison MicroVM est toujours chiffré avec le protocole TLS. Votre application peut traiter des demandes via HTTP ou HTTPS en interne.
Routage des ports
Lambda sélectionne le port cible dans votre microVM selon l'ordre de priorité suivant :
-
X-aws-proxy-porten-tête — Pour les requêtes HTTP standard, incluez cet en-tête avec le numéro de port cible. -
WebSocket sous-protocole : si votre WebSocket client ne peut pas définir d'en-têtes personnalisés, spécifiez le port cible sous la forme d'un sous-protocole nommé
lambda-microvms.port., où seNNtrouve le numéro de port. Vous fournissez des sous-protocoles lorsque vous ouvrez la WebSocket connexion. Pour obtenir un exemple, consultez Protocoles. -
Par défaut (8080) — Si aucun des deux n'est spécifié, demande la route vers le port 8080.
Important
Le port cible doit se situer dans les limites allowedPorts définies dans le jeton d'authentification. Les requêtes adressées à des ports non autorisés reçoivent une réponse 403 Forbidden.
Authentification
Toutes les demandes adressées à un point de terminaison microVM nécessitent un jeton d'authentification valide dans l'X-aws-proxy-authen-tête. Vous générez des jetons en utilisantcreate-microvm-auth-token. Chaque jeton est une chaîne JWE (JSON Web Encryption) cryptée dont la portée est la suivante :
-
Une microVM spécifique (identifiée par un identifiant).
-
Ensemble de ports autorisés (port unique, plage ou tous les ports).
-
Un délai d'expiration (configuré lors de la création du jeton).
L'exemple suivant crée un jeton et l'utilise pour envoyer une demande authentifiée :
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'
Pour une présentation complète de la création de jetons et de la connexion à une microVM, y compris WebSocket les connexions, consultez. Connexion à une microVM
Réponses d'erreur
Les codes d'état HTTP suivants sont renvoyés par le point de terminaison MicroVM lorsqu'il ne peut pas traiter ou transmettre une demande à votre application. Ces réponses proviennent du terminal et non de votre application.
| Code | Statut | Cause et résolution |
|---|---|---|
| 400 | Demande erronée | Requête mal formée, en-tête de port ou WebSocket sous-protocole non valide. Vérifiez le format. |
| 403 | Accès interdit | Token manquant, expiré ou non valide ; ou le port demandé n'est pas dans celui du jetonallowedPorts. Générez un nouveau jeton ou utilisez un port autorisé. |
| 429 | Nombre de demandes trop élevé | Limite de débit dépassée (au niveau du compte ou par microVM). Réessayez avec un backoff exponentiel. |
| 500 | Erreur de serveur interne | Une erreur interne s’est produite. Réitérez la demande. |
| 502 | Passerelle erronée | L'application ne répond pas ou la reprise automatique n'a pas abouti dans le nombre maximum de tentatives. Consultez Auto-resume. |
En-têtes de demandes
L'espace de noms d'X-aws-proxy-*en-tête est réservé par Lambda pour les métadonnées de demande, telles que le jeton d'authentification (X-aws-proxy-auth) et le port cible (X-aws-proxy-port). Lambda supprime les X-aws-proxy-* en-têtes avant de transmettre la demande à votre application.
Request/response bande passante
Chaque microVM Lambda possède une request/response bande passante qui évolue de manière linéaire en fonction de sa taille. Cette bande passante s'applique à tout le trafic via le point de terminaison MicroVM, à la fois aux demandes entrantes et aux réponses sortantes.
| Taille de la microVM (valeur de référence) | Bande passante maximale |
|---|---|
| 0,5 Go, 0,25 vCPU | 1 MB/s (8 Mbit/s) |
| 1 Go, 0,5 vCPU | 2 MB/s (16 Mbit/s) |
| 2 Go, 1 processeur virtuel | 4 MB/s (32 Mbit/s) |
| 4 Go, 2 processeurs virtuels | 8 MB/s (64 Mbit/s) |
| 8 Go, 4 processeurs virtuels | 16 MB/s (128 Mbit/s) |
Si vous constatez une augmentation de la latence des demandes en raison de la saturation du réseau, réduisez la simultanéité de vos demandes ou la taille de la charge utile, ou sélectionnez une taille de microVM plus importante pour augmenter la bande passante disponible.
HTTP/2 soutien
Lambda MicroVMS prend en charge HTTP/2 le terminal entrant. Lambda négocie le protocole via ALPN (Application-Layer Protocol Negotiation) lors de la prise de contact TLS, en préférant HTTP/2 et en revenant à. HTTP/1.1 Un HTTP/2-capable client l'utilise automatiquement.
À utiliser HTTP/2 entre le terminal et votre application dans la microVM :
-
Votre application utilise le protocole TLS : Lambda négocie HTTP/2 avec votre application par le biais d'ALPN, puis revient à la procédure HTTP/1.1 si elle n' HTTP/2 est pas prise en charge.
-
Votre application diffuse du HTTP en texte brut : incluez l'
X-aws-proxy-force-h2: trueen-tête dans votre demande à utiliser HTTP/2 lors de la connexion à votre application.
Connectivité sortante
Par défaut, les microVM Lambda disposent d'un accès Internet public sur le chemin de sortie. Pour connecter des micromachines virtuelles aux ressources de vos VPC privés, telles que RDS ElastiCache, des API internes et des systèmes locaux via Direct Connect ou VPN, créez un connecteur réseau Lambda avec votre configuration VPC.
Lorsque vous utilisez la sortie d'un VPC, le trafic sortant est soumis aux règles des groupes de sécurité et aux ACL réseau qui régissent le trafic dans votre VPC.
Utilisation de connecteurs réseau de sortie
Les connecteurs réseau de sortie acheminent le trafic sortant de votre microVM via votre VPC. Vous créez un connecteur une fois, puis vous le référencez par ARN lorsque vous démarrez MicroVMS via la run-microvm commande.
Conditions préalables
Avant de créer un connecteur réseau, vous avez besoin d'un rôle IAM qui permet à Lambda de créer des interfaces réseau élastiques (ENI) dans votre VPC. Ce rôle requiert les autorisations suivantes :
{ "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" } } } ] }
Création d'un connecteur réseau
Créez un connecteur en spécifiant vos sous-réseaux VPC, vos groupes de sécurité et votre protocole réseau (IPv4ouDualStack) :
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
États du connecteur réseau
Un connecteur doit être en ACTIVE état pour que vous puissiez y faire référencerun-microvm.
| State | Description |
|---|---|
PENDING |
Le connecteur est en cours de création (les ENI sous-jacents sont en cours de provisionnement). |
ACTIVE |
Le connecteur est prêt à être utilisé. |
INACTIVE |
Le connecteur est temporairement inactif. |
FAILED |
Le provisionnement ou la mise à jour ont échoué. Vérifiez StateReason. |
DELETING |
Le connecteur est en cours de suppression ; les ENI sont en cours de nettoyage. |
DELETE_FAILED |
La suppression a échoué. |
Exécution d'une microVM avec un connecteur réseau
Référez-vous à l'ARN du connecteur lors de l'exécution d'une 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}'
Note
Avant de mettre à jour ou de supprimer un connecteur, assurez-vous que toutes les micromachines virtuelles qui l'utilisent sont arrêtées. La modification d'un connecteur en cours d'utilisation peut entraîner des problèmes de connectivité réseau lors de l'exécution de MicroVMS.
Utilisation de microVM Lambda avec des points de terminaison VPC d'interface (AWS PrivateLink)
Vous pouvez l'utiliser AWS PrivateLink pour une connectivité privée sur le AWS réseau entre vos ressources VPC et Lambda MicroVMS, sans passer par l'Internet public. MicroVMS prend en charge deux points de terminaison VPC, en fonction de la destination du trafic souhaitée :
-
API de gestion MicroVM (création d'images, exécution, suspension, arrêt) : utilise le point de terminaison Lambda VPC existant ().
com.amazonaws.region.lambda -
Connectivité aux micromachines virtuelles (trafic HTTPS vers vos applications en cours d'exécution) : utilise un point de terminaison distinct (
com.amazonaws.).region.lambda-microvm
Point de terminaison VPC pour les API de gestion MicroVM
Lambda MicroVMS partage le même service de point de terminaison VPC que Lambda (). com.amazonaws. Pour obtenir des instructions complètes, consultez Création d'un point de terminaison d'interface pour Lambda.region.lambda
Politique relative aux terminaux pour les API de gestion MicroVM
Pour contrôler qui peut utiliser le point de terminaison de votre interface et quelles actions d'API Lambda MicroVMS il peut effectuer, attachez une politique de point de terminaison. La politique spécifie le principal qui peut effectuer des actions, les actions qu'il peut effectuer et les ressources sur lesquelles il peut agir. Les actions Lambda MicroVMS utilisent le préfixe d'action lambda: IAM.
Pour plus d’informations, consultez Contrôle de l’accès aux services avec points de terminaison d’un VPC dans le Guide de l’utilisateur Amazon VPC.
L'exemple de politique suivant permet MyUser à l'utilisateur de répertorier et d'obtenir des images microVM via le point de terminaison :
{ "Statement": [ { "Principal": { "AWS": "arn:aws:iam::111122223333:user/MyUser" }, "Effect": "Allow", "Action": [ "lambda:ListMicrovmImages", "lambda:GetMicrovmImage" ], "Resource": "*" } ] }
Point de terminaison VPC pour la connectivité microVM
Pour préserver la confidentialité du trafic HTTPS vers vos micromachines virtuelles en cours d'exécution, créez un point de terminaison d'interface pour le com.amazonaws. service. Ce point de terminaison gère les connexions aux URL des points de terminaison MicroVM (par exemple,region.lambda-microvmabc123def456.lambda-microvm.us-east-1.on.aws).
Pour en savoir plus sur les propriétés des points de terminaison d'interface, consultez le guide des points de terminaison d'interface dans la documentation Amazon VPC.
Création du point de terminaison
Pour créer un point de terminaison d'interface pour la connectivité microVM (console)
-
Ouvrez la page Points de terminaison
de la console Amazon VPC. -
Choisissez Créer un point de terminaison.
-
Pour Catégorie de service, assurez-vous que Services AWS est sélectionné.
-
Pour Service Name (Nom du service), choisissez
com.amazonaws.. Vérifiez que le type est Interface.region.lambda-microvm -
Choisissez un VPC et des sous-réseaux
-
Pour activer le DNS privé pour le point de terminaison de l'interface, cochez la case Activer le nom DNS (recommandé). Cela garantit que les demandes utilisant le nom d'hôte du point de terminaison microVM public sont automatiquement résolues vers le point de terminaison de votre interface, sans qu'aucune modification côté client ne soit requise.
-
Pour Groupes de sécurité, choisissez un ou plusieurs groupes de sécurité. Le groupe de sécurité doit autoriser le trafic TCP sortant sur le port 443 vers les interfaces réseau des terminaux.
-
Choisissez Créer un point de terminaison.
Pour utiliser l'option DNS privé, vous devez définir les enableDnsSupport attributs enableDnsHostnames et de votre VPC. Pour plus d'informations, consultez Affichage et mise à jour de la prise en charge de DNS pour votre VPC dans le Guide de l'utilisateur Amazon VPC.
Pour créer un point de terminaison d'interface pour la connectivité microVM (AWS CLI)
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
Pour vérifier que le terminal est disponible et que le DNS privé est actif, procédez comme suit :
aws ec2 describe-vpc-endpoints \ --vpc-endpoint-idsvpce-1a2b3c4d5e6f7g8h9\ --query 'VpcEndpoints[0].{State:State,PrivateDns:PrivateDnsEnabled,Dns:DnsEntries[*].DnsName}'
Comportement du DNS privé
Lorsque le DNS privé est activé : le point de terminaison gère la résolution DNS pour *.lambda-microvm. l'intérieur de votre VPC. Les noms d'hôte de vos terminaux MicroVM existants (par exempleregion.on.awsabc123def456.lambda-microvm.us-east-1.on.aws) sont les adresses IP privées des interfaces réseau des terminaux. Aucun changement de client n'est requis.
Lorsque le DNS privé est désactivé, Amazon VPC génère un nom DNS spécifique au point de terminaison pour votre terminal dans le formulaire. Pour acheminer le trafic via ce point de terminaison tout en atteignant la microVM correcte, vous devez conserver le nom d'hôte microVM d'origine à deux endroits :vpce-id-hash.lambda-microvm.region.vpce.amazonaws.com
-
Indication du nom du serveur TLS (SNI) : l'établissement de liaison TLS utilise cette valeur pour identifier la microVM à laquelle la connexion est destinée.
-
En-tête HTTP Host : le proxy utilise cette valeur pour acheminer la demande vers la microVM appropriée.
Si l'une des valeurs est définie sur le nom d'hôte du point de terminaison du VPC au lieu du nom d'hôte de la microVM, la connexion ne peut pas être acheminée vers la microVM appropriée.
Exemple : connexion via un nom DNS spécifique au point de terminaison
L'exemple suivant utilise curl --connect-toindicateur pour rediriger la connexion TCP vers votre point de terminaison VPC tout en conservant le nom d'hôte de la microVM dans l'URL, le SNI et l'en-tête 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/"
L'--connect-toindicateur indique à curl d'ouvrir la connexion TCP à l'adresse du point de terminaison du VPC, tandis que l'URL, le SNI TLS et l'en-tête Host restent définis sur le nom d'hôte de votre microVM.
Pour plus d’informations, consultez Accès à un service via un point de terminaison d’interface dans le Guide de l’utilisateur Amazon VPC.
Politique relative aux terminaux pour la connectivité des microVM
Vous pouvez associer une politique de point de terminaison pour contrôler quelles micromachines virtuelles sont accessibles via le point de terminaison lambda-microvm VPC. Une politique relative aux terminaux sur le lambda-microvm service vous permet de définir les connexions à des comptes ou à des organisations spécifiques. Par défaut, le point de terminaison autorise les connexions à des micromachines virtuelles sur n'importe quel AWS compte. (Remarque : le client établissant la connexion doit toujours détenir un jeton d'authentification MicroVM valide pour obtenir l'accès).
Par défaut, un point de terminaison VPC dispose d'une politique d'accès complet qui autorise tout le trafic. Lorsque vous remplacez la politique par défaut par une stratégie personnalisée, Lambda MicroVMS évalue cette politique par rapport à l'lambda:ConnectMicrovmaction effectuée sur chaque connexion établie via le point de terminaison. Si la politique n'autorise pas la connexion à des micromachines virtuelles, la connexion est rejetée avec une réponse HTTP 403 Interdit. Une politique qui n'autorise pas à lambda:ConnectMicrovm refuser toutes les connexions via le terminal.
Note
L'lambda:ConnectMicrovmaction autorise une connexion à un point de terminaison microVM via le point de terminaison de l'interface. Il ne s'agit pas d'une opération d'API Lambda et ne peut pas être utilisée dans les politiques IAM basées sur l'identité ou les ressources. Elle n'est valide que dans une politique de point de terminaison VPC.
Directeur et ressource
Les connexions à un point de terminaison MicroVM sont authentifiées avec un jeton d'authentification MicroVM plutôt qu' AWS avec Signature Version 4. Pour cette raison, aucun principal IAM n'est associé à la connexion. Au lieu de cela, Lambda MicroVMS évalue la politique des terminaux à l'aide d'un principal anonyme. Autrement dit :
-
Principaldoit avoir pour valeur"*". Une politique qui désigne un principal spécifique ne correspond à rien et refuse toute connexion. -
Les clés de condition qui dépendent de l'identité du demandeur (telles que
aws:PrincipalArnaws:PrincipalOrgID, etaws:userid) ne sont pas renseignées et ne correspondront pas. -
Resourcedoit également l'être"*". Lambda MicroVMS n'étend pas l'évaluation de la politique des terminaux aux ARN des ressources microVM individuelles. Pour limiter les micromachines virtuelles que le terminal peut atteindre, utilisez la clé deaws:ResourceAccountcondition plutôt que l'Resourceélément.
Clés de condition prises en charge
| Clé de condition | Description |
|---|---|
aws:ResourceAccount |
Le AWS compte propriétaire de la microVM à laquelle vous êtes connectée. |
aws:ResourceOrgID |
L'ID AWS d'organisation de l'organisation du compte propriétaire de la microVM. |
aws:SourceVpce |
L'ID du point de terminaison de l'interface par lequel la connexion est passée. |
aws:SourceVpc |
L'ID du VPC d'où provient la connexion. |
aws:VpcSourceIp |
Adresse IP privée du client qui a établi la connexion. |
Exemple : autorisez les connexions uniquement aux micromachines virtuelles de votre propre compte
La politique de point de terminaison suivante autorise les connexions via le point de terminaison uniquement aux micromachines virtuelles appartenant au compte 111122223333. Les connexions à des micromachines virtuelles appartenant à un autre compte sont refusées.
{ "Statement": [ { "Principal": "*", "Effect": "Allow", "Action": "lambda:ConnectMicrovm", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } } ] }