View a markdown version of this page

Sécurité et autorisations - AWS Lambda

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:us-east-1:aws:network-connector:aws-network-connector:SHELL_INGRESS). Si la microVM n'a pas été lancée avec ce connecteur, elle create-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:*" } ] }