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.
Contrôlez l'utilisation des modèles de EC2 lancement Amazon dans les groupes Auto Scaling
Amazon EC2 Auto Scaling prend en charge l'utilisation de modèles de EC2 lancement Amazon avec vos groupes Auto Scaling. Nous vous recommandons d'autoriser les utilisateurs à créer des groupes Auto Scaling à partir de modèles de lancement, car cela leur permet d'utiliser les dernières fonctionnalités d'Amazon EC2 Auto Scaling et d'Amazon EC2. Par exemple, les utilisateurs doivent spécifier un modèle de lancement pour utiliser une politique d'instances mixtes.
Vous pouvez utiliser cette AmazonEC2FullAccess
politique pour donner aux utilisateurs un accès complet aux ressources Amazon EC2 Auto Scaling, aux modèles de lancement et EC2 aux autres ressources de leur compte. Vous pouvez également créer vos propres politiques IAM personnalisées pour accorder aux utilisateurs des autorisations précises d'utiliser des modèles de lancement, comme décrit dans cette rubrique.
Exemple de politique que vous pouvez personnaliser pour votre propre usage
Voici un exemple de politique d'autorisations de base que vous pouvez adapter à votre propre usage. La politique accorde les autorisations de créer, mettre à jour et supprimer tous les groupes Auto Scaling, mais uniquement si le groupe utilise la balise
. Elle donne ensuite l'autorisation d'exécuter toutes les actions de type purpose=testing
Describe
. Comme les actions Describe
ne prennent pas en charge les autorisations au niveau des ressources, vous devez les spécifier dans une instruction distincte sans condition.
Les identités IAM (utilisateurs ou rôles) disposant de cette politique sont autorisées à créer ou mettre à jour un groupe Auto Scaling à l'aide d'un modèle de lancement, car ils ont également l'autorisation d'utiliser l'action ec2:RunInstances
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/
purpose
": "testing
" } } }, { "Effect": "Allow", "Action": [ "autoscaling:Describe*", "ec2:RunInstances" ], "Resource": "*" } ] }
Les utilisateurs qui créent ou mettent à jour des groupes Auto Scaling peuvent avoir besoin de certaines autorisations connexes, telles que :
-
ec2 : CreateTags — Pour ajouter des balises aux instances et aux volumes lors de leur création, l'utilisateur doit avoir l'
ec2:CreateTags
autorisation requise dans une politique IAM. Pour de plus amples informations, veuillez consulter Autorisations requises pour baliser des instances et des volumes. -
iam : PassRole — Pour lancer des EC2 instances à partir d'un modèle de lancement contenant un profil d'instance (un conteneur pour un rôle IAM), l'utilisateur doit également disposer de l'
iam:PassRole
autorisation prévue dans une politique IAM. Pour plus d’informations, et un exemple de politique IAM, consultez Rôle IAM pour les applications qui s'exécutent sur des instances Amazon EC2. -
ssm : GetParameters — Pour lancer des EC2 instances à partir d'un modèle de lancement utilisant un AWS Systems Manager paramètre, l'utilisateur doit également disposer de l'
ssm:GetParameters
autorisation dans une politique IAM. Pour de plus amples informations, veuillez consulter Utiliser des AWS Systems Manager paramètres au lieu de l'AMI IDs dans les modèles de lancement.
Ces autorisations relatives aux actions à effectuer lors du lancement d’instances sont vérifiées lorsque l’utilisateur interagit avec un groupe Auto Scaling. Pour de plus amples informations, veuillez consulter Validation des autorisations pour ec2:RunInstances et iam:PassRole.
Les exemples suivants illustrent des déclarations de politique que vous pouvez utiliser pour contrôler l’accès dont les utilisateurs IAM disposent pour utiliser des modèles de lancement.
Rubriques
Demander des modèles de lancement dotés d'une balise spécifique
Lorsque vous ec2:RunInstances
accordez des autorisations, vous pouvez spécifier que les utilisateurs ne peuvent utiliser que des modèles de lancement dotés de balises spécifiques ou spécifiques IDs pour limiter les autorisations lors du lancement d'instances avec un modèle de lancement. Vous pouvez également contrôler l’AMI et les autres ressources auxquelles toute personne utilisant des modèles de lancement peut faire référence et utiliser lors du lancement d’instances en spécifiant des autorisations supplémentaires au niveau des ressources pour l’appel à RunInstances
.
L’exemple suivant restreint les autorisations pour l’action ec2:RunInstances
avec les modèles de lancement qui se trouvent dans la région spécifiée et qui disposent de la balise
. Il permet également aux utilisateurs d'accéder aux ressources spécifiées dans un modèle de lancement : types d'instances AMIs, volumes, paires de clés, interfaces réseau et groupes de sécurité. purpose=testing
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:
region
:account-id
:launch-template/*", "Condition": { "StringEquals": { "aws:ResourceTag/purpose
": "testing
" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region
::image/ami-*", "arn:aws:ec2:region
:account-id
:instance/*", "arn:aws:ec2:region
:account-id
:subnet/*", "arn:aws:ec2:region
:account-id
:volume/*", "arn:aws:ec2:region
:account-id
:key-pair/*", "arn:aws:ec2:region
:account-id
:network-interface/*", "arn:aws:ec2:region
:account-id
:security-group/*" ] } ] }
Pour plus d'informations sur l'utilisation de politiques basées sur des balises avec les modèles de lancement, consultez la section Contrôler l'accès aux modèles de lancement avec des autorisations IAM dans le guide de EC2 l'utilisateur Amazon.
Demander un modèle de lancement et un numéro de version
Vous pouvez également utiliser les autorisations IAM pour imposer qu’un modèle de lancement et le numéro de version du modèle de lancement soient spécifiés lors de la création ou de la mise à jour de groupes Auto Scaling.
Dans l’exemple suivant, les utilisateurs peuvent créer et mettre à jour des groupes Auto Scaling uniquement si un modèle de lancement et le numéro de version du modèle de lancement sont spécifiés. Si les utilisateurs disposant de cette politique omettent le numéro de version du modèle de lancement pour spécifier $Latest
ou $Default
, ou s’ils essaient d’utiliser une configuration du lancement à la place, l’action échoue.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Bool": { "autoscaling:LaunchTemplateVersionSpecified": "true" } } }, { "Effect": "Deny", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Null": { "autoscaling:LaunchConfigurationName": "false" } } } ] }
Exiger l'utilisation du service de métadonnées d'instance version 2 (IMDSv2)
Pour plus de sécurité, vous pouvez définir les autorisations de vos utilisateurs pour exiger l'utilisation d'un modèle de lancement qui nécessite IMDSv2. Pour plus d'informations, consultez Configuration du service de métadonnées d'instance dans le guide de EC2 l'utilisateur Amazon.
L'exemple suivant indique que les utilisateurs ne peuvent pas appeler l'ec2:RunInstances
action à moins que l'instance ne soit également activée pour exiger l'utilisation de IMDSv2 (indiquée par"ec2:MetadataHttpTokens":"required"
).
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireImdsV2", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:MetadataHttpTokens": "required" } } } ] }
Astuce
Pour forcer le lancement des instances Auto Scaling de remplacement qui utilisent un nouveau modèle de lancement ou une nouvelle version d’un modèle de lancement avec les options de métadonnées d’instance configurées, vous pouvez démarrer une actualisation d’instance. Pour de plus amples informations, veuillez consulter Mise à jour des instances Auto Scaling.
Restreindre l'accès aux EC2 ressources Amazon
Les exemples suivants montrent comment utiliser les autorisations au niveau des ressources et les ressources étiquetées pour restreindre l'accès aux ressources Amazon EC2 .
Exemple 1 : Restreindre les lancements d' EC2 instances Amazon à des ressources et à des types d'instances spécifiques
L'exemple suivant contrôle la configuration des instances qu'un utilisateur peut lancer en restreignant l'accès aux EC2 ressources Amazon. Pour spécifier des autorisations au niveau des ressources pour les ressources spécifiées dans un modèle de lancement, vous devez inclure les ressources dans l’instruction d’action RunInstances
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:
region
:account-id
:launch-template/*", "arn:aws:ec2:region
::image/ami-04d5cc9b88example
", "arn:aws:ec2:region
:account-id
:subnet/subnet-1a2b3c4d
", "arn:aws:ec2:region
:account-id
:volume/*", "arn:aws:ec2:region
:account-id
:key-pair/*", "arn:aws:ec2:region
:account-id
:network-interface/*", "arn:aws:ec2:region
:account-id
:security-group/sg-903004f88example
" ] }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region
:account-id
:instance/*", "Condition": { "StringEquals": { "ec2:InstanceType": ["t2.micro", "t2.small"] } } } ] }
Cet exemple contient deux instructions :
-
La première instruction exige que les utilisateurs lancent des instances dans un sous-réseau spécifique (
), en utilisant un groupe de sécurité spécifique (subnet-1a2b3c4d
) et une AMI spécifique (sg-903004f88example
). Cela permet également aux utilisateurs d’accéder aux ressources spécifiées dans un modèle de lancement : interfaces réseau, paires de clés, et volumes.ami-04d5cc9b88example
-
La seconde instruction permet aux utilisateurs de lancer des instances uniquement à l’aide des types d’instance
ett2.micro
, ce que vous pourriez faire pour contrôler les coûts.t2.small
Notez toutefois qu'il n'existe actuellement aucun moyen efficace d'empêcher complètement les utilisateurs autorisés à lancer des instances avec un modèle de lancement de lancer d'autres types d'instances. Cela est dû au fait qu'un type d'instance spécifié dans un modèle de lancement peut être remplacé pour utiliser des types d'instance définis à l'aide d'une sélection de type d'instance basée sur les attributs.
Pour obtenir la liste complète des autorisations au niveau des ressources que vous pouvez utiliser pour contrôler la configuration des instances qu'un utilisateur peut lancer, consultez la section Actions, ressources et clés de condition pour Amazon EC2 dans le Service Authorization Reference.
Exemple 2 : exiger des balises et restreindre l'accès aux ressources pour les lancements d' EC2 instances Amazon
L'exemple de politique suivant montre comment vous pouvez utiliser les conditions de votre politique basée sur l'identité pour contrôler l'accès aux EC2 ressources Amazon en fonction de balises.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "InstanceTags", "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:
us-east-1
:555555555555
:instance/*" ], "Condition": { "StringEquals": { "aws:RequestTag/owner": "dev" } } }, { "Sid": "InstanceBoundaries" "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:us-east-1
::image/*", "arn:aws:ec2:us-east-1
:555555555555
:subnet/*", "arn:aws:ec2:us-east-1
:555555555555
:network-interface/*" ], }, { "Sid": "InstanceResourceTags", "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:us-east-1
:555555555555
:key-pair/*", "arn:aws:ec2:us-east-1
:555555555555
:security-group/*", "arn:aws:ec2:us-east-1
:555555555555
:launch-template/*" "arn:aws:ec2:us-east-1
:555555555555
:volume/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/purpose": "testing" } } } ] }
Dans cet exemple, il existe trois déclarations :
-
La première instruction permet aux utilisateurs de lancer des instances dans la région spécifiée uniquement si une balise avec
owner=dev
est utilisée dans la demande. -
La deuxième instruction permet aux utilisateurs d'accéder à l'AMI, au sous-réseau et à l'interface réseau dans la région spécifiée.
-
La troisième déclaration permet aux utilisateurs de lancer des instances dans la région spécifiée avec une paire de clés, un groupe de sécurité, un modèle de lancement et un volume existants dotés de la balise
purpose=testing
.
Pour plus d'informations, consultez la section Contrôle de l'accès aux AWS ressources à l'aide de balises dans le guide de l'utilisateur IAM.
Autorisations requises pour baliser des instances et des volumes
L'exemple suivant permet aux utilisateurs de baliser les instances et les volumes lors de leur création. Cette politique est nécessaire si des balises sont spécifiées dans le modèle de lancement. Pour plus d'informations, consultez la section Accorder l'autorisation de baliser les ressources lors de leur création dans le guide de EC2 l'utilisateur Amazon.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:
region
:account-id
:*/*", "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }
Autorisations de modèle de lancement supplémentaires
Vous devez accorder aux utilisateurs de votre console des autorisations pour les actions ec2:DescribeLaunchTemplates
et ec2:DescribeLaunchTemplateVersions
. Sans ces autorisations, les données du modèle de lancement ne peuvent pas se charger dans l'assistant de groupe Auto Scaling, et les utilisateurs ne peuvent pas utiliser l'assistant pour lancer des instances via un modèle de lancement. Vous pouvez spécifier ces actions supplémentaires dans l’élément Action
d’une instruction de politique IAM.
Validation des autorisations pour ec2:RunInstances
et iam:PassRole
Les utilisateurs peuvent spécifier la version du modèle de lancement utilisée par leur groupe Auto Scaling. En fonction de leurs autorisations, il peut s’agir d’une version numérotée spécifique ou de la version $Latest
ou $Default
du modèle de lancement. Si c’est le dernier cas, faites particulièrement attention. Cela peut annuler les autorisations pour ec2:RunInstances
et iam:PassRole
que vous aviez l’intention de restreindre.
Cette section explique le scénario d’utilisation de la dernière version ou de la version par défaut du modèle de lancement avec un groupe Auto Scaling.
Lorsqu'un utilisateur appelle le ou CreateAutoScalingGroup
UpdateAutoScalingGroup
StartInstanceRefresh
APIs, Amazon EC2 Auto Scaling vérifie ses autorisations par rapport à la version du modèle de lancement qui est la version la plus récente ou la version par défaut à ce moment-là avant de traiter la demande. Cela valide les autorisations pour les actions à effectuer lors du lancement d’instances, telles que les actions ec2:RunInstances
et iam:PassRole
. Pour ce faire, nous lançons un appel Amazon EC2 RunInstancesDry Run pour valider si l'utilisateur dispose des autorisations requises pour effectuer l'action, sans réellement faire la demande. Lorsqu'une réponse est renvoyée, elle est lue par Amazon EC2 Auto Scaling. Si les autorisations de l'utilisateur ne permettent pas une action donnée, Amazon EC2 Auto Scaling échoue à la demande et renvoie une erreur à l'utilisateur contenant des informations sur l'autorisation manquante.
Une fois la vérification initiale et la demande terminées, chaque fois que les instances sont lancées, Amazon EC2 Auto Scaling les lance avec la version la plus récente ou la version par défaut, même si elle a changé, en utilisant les autorisations de son rôle lié au service. Cela signifie qu’un utilisateur utilisant le modèle de lancement peut potentiellement le mettre à jour pour transmettre un rôle IAM à une instance même s’il n’en dispose pas de l’autorisation iam:PassRole
.
Utilisez la clé de condition autoscaling:LaunchTemplateVersionSpecified
si vous souhaitez limiter le nombre de personnes ayant accès à la configuration des groupes pour utiliser la version $Latest
ou $Default
. Cela garantit que le groupe Auto Scaling n'accepte une version numérotée spécifique que lorsqu'un utilisateur appelle le CreateAutoScalingGroup
et UpdateAutoScalingGroup
APIs. Pour un exemple indiquant comment ajouter cette clé de condition à une politique IAM, consultez Demander un modèle de lancement et un numéro de version.
Pour les groupes Auto Scaling configurés pour utiliser la version du modèle de lancement $Latest
ou $Default
, envisagez de limiter le nombre de personnes autorisées à créer et à gérer les versions du modèle de lancement, y compris l’action ec2:ModifyLaunchTemplate
permettant à un utilisateur de spécifier la version du modèle de lancement par défaut. Pour plus d'informations, consultez la section Contrôler les autorisations de gestion des versions dans le guide de EC2 l'utilisateur Amazon.
Ressources connexes
Pour en savoir plus sur les autorisations permettant de consulter, de créer et de supprimer des modèles de lancement et des versions de modèles de lancement, consultez la section Contrôler l'accès aux modèles de lancement avec des autorisations IAM dans le guide de l' EC2 utilisateur Amazon.
Pour plus d'informations sur les autorisations au niveau des ressources que vous pouvez utiliser pour contrôler l'accès à l'RunInstances
appel, consultez la section Actions, ressources et clés de condition pour Amazon EC2 dans la référence d'autorisation de service.