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 microVM.
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 nécessaires 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 build est facultatif. Si vous ne fournissez pas de rôle de build, Lambda ne peut pas y écrire de journaux de build. 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 CloudWatch et votre microVM ne peut pas accéder à d'autres services. AWS
Les hooks du cycle de vie s'exécutent sous le rôle associé à leur phase. Build-time les 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 et. sts:TagSession
Jetons d'authentification
Les jetons contrôlent l'accès entrant aux microVM en cours d'exécution. Ils sont limités par port ; chaque jeton indique les ports auxquels il accorde 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 jetons distincte. La microVM cible doit avoir été exécutée avec le connecteur SHELL_INGRESS réseau (arn:aws:lambda:). Si le microVM n'a pas été lancé avec ce connecteur, il us-east-1:aws:network-connector:aws-network-connector:SHELL_INGRESScreate-microvm-shell-auth-token échoue avec un 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, voir. Accès au shell
Balisage de ressources
Les ressources Lambda MicroVM (images, 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 pour 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 dans le compte. |
lambda:RunMicrovm |
Exécutez une nouvelle microVM. |
lambda:GetMicrovm |
Obtenez l'état et les détails de MicroVM. |
lambda:ListMicrovms |
Répertoriez les microVM dans le 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 d'ARN des ressources
# 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>
Exemple : Least-privilege politique pour un opérateur
{ "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:*" } ] }