Contrôlez l'utilisation des modèles de EC2 lancement Amazon dans les groupes Auto Scaling - Amazon EC2 Auto Scaling

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'AmazonEC2. 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 IAM politiques personnalisées pour donner aux utilisateurs des autorisations précises leur permettant 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 purpose=testing. Elle donne ensuite l'autorisation d'exécuter toutes les actions de type 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.

IAMles identités (utilisateurs ou rôles) soumises à cette politique sont autorisées à créer ou à mettre à jour un groupe Auto Scaling à l'aide d'un modèle de lancement, car elles sont également autorisées à utiliser l'ec2:RunInstancesaction.

{ "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 :

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 présentent des déclarations de politique que vous pouvez utiliser pour contrôler l'accès des IAM utilisateurs à l'aide de modèles de lancement.

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 les ressources 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'RunInstancesappel.

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 purpose=testing. Il permet également aux utilisateurs d'accéder aux ressources spécifiées dans un modèle de lancement : types d'instancesAMIs, volumes, paires de clés, interfaces réseau et groupes de sécurité.

{ "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 IAM des autorisations dans le guide de EC2 l'utilisateur Amazon.

Demander un modèle de lancement et un numéro de version

Vous pouvez également utiliser IAM des autorisations pour faire en sorte 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écessiteIMDSv2. 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:RunInstancesaction à 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

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 déclaration exige que les utilisateurs lancent des instances dans un sous-réseau spécifique (subnet-1a2b3c4d), en utilisant un groupe de sécurité spécifique (sg-903004f88example) et en utilisant un () spécifique AMI (ami-04d5cc9b88example). 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.

  • La seconde instruction permet aux utilisateurs de lancer des instances uniquement à l’aide des types d’instance t2.micro et t2.small, ce que vous pourriez faire pour contrôler les coûts.

    Notez toutefois qu'il n'existe actuellement aucun moyen efficace d'empêcher complètement les utilisateurs autorisés à lancer des instances à l'aide d'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.

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'Actionélément d'une déclaration de IAM politique.

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 StartInstanceRefreshAPIs, 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 qui utilise le modèle de lancement peut éventuellement le mettre à jour pour transmettre un IAM rôle à une instance même s'il n'en a pas l'iam:PassRoleautorisation.

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 UpdateAutoScalingGroupAPIs. Pour un exemple montrant comment ajouter cette clé de condition à une IAM politique, consultezDemander 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:ModifyLaunchTemplatepermettant à 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.

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 IAM des autorisations dans le guide de EC2 l'utilisateur Amazon.

Pour plus d'informations sur les autorisations au niveau des ressources que vous pouvez utiliser pour contrôler l'accès à l'RunInstancesappel, consultez la section Actions, ressources et clés de condition pour Amazon EC2 dans la référence d'autorisation de service.