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.
Sécurité et autorisations
Cette section décrit les rôles IAM, les jetons d'authentification et les contrôles d'accès pour les AWS Lambda micromachines virtuelles.
Rôles IAM
Créer un rôle
Ce rôle est utilisé lors de la création de l'image. Les autorisations suivantes sont requises pour récupérer les artefacts sources et générer des journaux : s3:GetObjectlogs:CreateLogGroup,logs:CreateLogStream, etlogs:PutLogEvents. Ajoutez également ecr:GetAuthorizationToken si vous faites référence à des images ECR privées.
Le rôle de génération est facultatif. Si vous ne fournissez pas de rôle de génération, Lambda ne peut pas écrire de journaux de génération dans CloudWatch.
Rôle d'exécution
Ce rôle est utilisé lors de l'exécution de MicroVM pour fournir des autorisations d'accès permettant d'écrire des journaux CloudWatch et d'utiliser d'autres AWS services.
Le rôle d'exécution est facultatif. Si vous ne fournissez pas de rôle d'exécution, Lambda n'émet pas de journaux d'exécution vers d'autres services CloudWatch et votre microVM ne peut pas accéder à d'autres AWS services.
Les hooks Lifecycle s'exécutent sous le rôle associé à leur phase. Build-time hooks (/readyet/validate) s'exécutent sous le rôle build. Les hooks d'exécution (/run/resume,/suspend, et/terminate) s'exécutent sous le rôle d'exécution.
Politiques d’approbation
Les deux rôles nécessitent une politique de confiance qui permet au principal du service Lambda lambda.amazonaws.com d'exécuter sts:AssumeRole etsts:TagSession.
Jetons d'authentification
Les jetons contrôlent l'accès entrant aux micromachines virtuelles en cours d'exécution. Ils sont délimités par port ; chaque jeton spécifie les ports auxquels il autorise l'accès.
# 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}]'
Jetons d'accès Shell
L'accès au shell utilise une API de jeton distincte. La microVM cible doit avoir été exécutée avec le connecteur SHELL_INGRESS réseau (arn:aws:lambda:). Si la microVM n'a pas été lancée avec ce connecteur, elle us-east-1:aws:network-connector:aws-network-connector:SHELL_INGRESScreate-microvm-shell-auth-token échoue avec le message suivant : ValidationException
aws lambda-microvms create-microvm-shell-auth-token \ --microvm-identifier <id> \ --expiration-in-minutes 30
Pour une présentation complète de la connexion à un shell MicroVM, consultez. Accès au shell
Balisage de ressources
Les images Lambda MicroVM prennent en charge les balises de AWS ressources pour l'organisation et la répartition des coûts. Ajoutez des balises lors de la création d'une image à l'aide du --tags paramètre ou explicitement après la création. Vous pouvez également répertorier et supprimer des balises, comme illustré ci-dessous : Vous pouvez également faire référence à des balises dans les conditions de politique IAM afin de contrôler l'accès aux ressources 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"]'
Référence des autorisations IAM
Lambda MicroVMS définit les actions IAM suivantes. Utilisez-les dans les politiques IAM pour contrôler l'accès aux opérations de microVM.
| Action | Description |
|---|---|
lambda:CreateMicrovmImage |
Créez une nouvelle image MicroVM. |
lambda:UpdateMicrovmImage |
Mettez à jour une image microVM existante. |
lambda:DeleteMicrovmImage |
Supprimez une image MicroVM. |
lambda:GetMicrovmImage |
Obtenez les détails de l'image MicroVM. |
lambda:ListMicrovmImages |
Répertoriez les images MicroVM du compte. |
lambda:RunMicrovm |
Exécutez une nouvelle microVM. |
lambda:GetMicrovm |
Obtenez l'état et les détails de la microVM. |
lambda:ListMicrovms |
Répertoriez les micromachines virtuelles du compte. |
lambda:SuspendMicrovm |
Suspendez une microVM en cours d'exécution. |
lambda:ResumeMicrovm |
Reprenez une microVM suspendue. |
lambda:TerminateMicrovm |
Mettez fin à une microVM. |
lambda:CreateMicrovmAuthToken |
Générez un jeton d'authentification pour une microVM. |
lambda:CreateMicrovmShellAuthToken |
Générez un jeton d'accès au shell. |
Formats ARN des ressources
# MicroVM image arn:aws:lambda:<region>:<account>:microvm-image:<image-name> # Network connector arn:aws:lambda:<region>:<account>:network-connector:<connector-id>
Exemple : Least-privilege politique pour un opérateur
{ "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:*" } ] }