Exemples de politiques Amazon EC2 Auto Scaling basées sur l'identité - 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.

Exemples de politiques Amazon EC2 Auto Scaling basées sur l'identité

Par défaut, un nouvel utilisateur n' Compte AWS est pas autorisé à faire quoi que ce soit. Un administrateur IAM doit créer et assigner des politiques IAM qui accordent à une identité IAM (utilisateur ou rôle, par exemple) l'autorisation d'effectuer des actions d'API dans Amazon EC2 Auto Scaling.

Pour savoir comment créer une stratégie IAM à partir de ces exemples de documents de stratégie JSON, consultez Création de stratégies dans l'onglet JSON dans le Guide de l'utilisateur IAM.

Un exemple de politique d’autorisation est exposé ci-dessous.

{ "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*", "Resource": "*" }] }

Cet exemple de politique accorde les autorisations de créer, mettre à jour et supprimer des groupes Auto Scaling, mais uniquement si le groupe utilise la balise purpose=testing. 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. Pour lancer des instances avec un modèle de lancement, l’utilisateur doit également disposer de l’autorisation ec2:RunInstances. Pour plus d’informations, consultez Contrôlez l'utilisation du modèle de lancement Amazon EC2 dans les groupes Auto Scaling.

Note

Vous pouvez créer vos propres politiques IAM personnalisées pour autoriser ou refuser les autorisations à des identités IAM (utilisateurs ou rôles) d'exécuter des actions Amazon EC2 Auto Scaling. Vous pouvez attacher ces politiques personnalisées aux identités IAM qui nécessitent les autorisations spécifiées. Les exemples suivants présentent des autorisations pour quelques cas d’utilisation courants.

Certaines actions d'API Amazon EC2 Auto Scaling vous permettent d'inclure des groupes Auto Scaling spécifiques dans votre politique qui peuvent être créés ou modifiés par l'action. Vous pouvez restreindre les ressources cibles pour ces actions en spécifiant des ARN de groupe Auto Scaling individuels. Toutefois, nous vous recommandons d'utiliser des politiques basées sur des balises qui autorisent (ou refusent) les actions sur les groupes Auto Scaling avec une balise spécifique.

Contrôler la taille des groupes Auto Scaling qui peuvent être créés

La politique suivante accorde les autorisations de créer et de mettre à jour tous les groupes Auto Scaling avec la balise environment=development, à condition que le demandeur ne spécifie pas une taille minimale inférieure à 1 ou une taille maximale supérieure à 10. Dans la mesure du possible, utilisez des balises pour contrôler l’accès aux groupes Auto Scaling de votre compte.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "development" }, "NumericGreaterThanEqualsIfExists": { "autoscaling:MinSize": 1 }, "NumericLessThanEqualsIfExists": { "autoscaling:MaxSize": 10 } } }] }

Par ailleurs, si vous n’utilisez pas de balises pour contrôler l’accès aux groupes Auto Scaling, vous pouvez utiliser les ARN pour identifier les groupes Auto Scaling auxquels la Politique IAM s’applique.

Un groupe Auto Scaling comprend l'ARN suivant.

"Resource": "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/my-asg"

Vous pouvez également spécifier plusieurs ARN en les intégrant à une liste. Pour en savoir plus sur la spécification des ARN des ressources Amazon EC2 Auto Scaling dans l’élément Resource, consultez Ressources relatives aux politiques pour Amazon EC2 Auto Scaling.

Contrôler les clés de balise et les valeurs de balise pouvant être utilisées

Vous pouvez également utiliser des conditions dans vos politiques IAM pour contrôler les clés de balise et les valeurs de balise qui peuvent être appliquées aux groupes Auto Scaling. Pour accorder les autorisations de créer ou baliser un groupe Auto Scaling uniquement si le demandeur spécifie des balises spécifiques, utilisez la clé de condition aws:RequestTag. Pour autoriser uniquement des clés de balise spécifiques, utilisez la clé de condition aws:TagKeys avec le modificateur ForAllValues.

La politique suivante exige que le demandeur spécifie une balise avec la clé environment dans la demande. La valeur "?*" impose qu'une valeur existe pour la clé de balise. Pour utiliser un caractère générique, vous devez utiliser l'opérateur de condition StringLike.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/environment": "?*" } } }] }

La politique suivante spécifie que le demandeur peut uniquement marquer les groupes Auto Scaling avec les balises purpose=webserver et cost-center=cc123, et autorise uniquement les balises purpose et cost-center (aucune autre balise ne peut être spécifiée).

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/purpose": "webserver", "aws:RequestTag/cost-center": "cc123" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["purpose", "cost-center"] } } }] }

La politique suivante exige que le demandeur spécifie au moins une balise dans la demande, et autorise uniquement les clés cost-center et owner.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["cost-center", "owner"] } } }] }
Note

Pour les conditions, la clé de condition n’est pas sensible à la casse et la valeur de la condition est sensible à la casse. Par conséquent pour forcer la sensibilité à la casse d’une clé de balise, utilisez la clé de condition aws:TagKeys, où la clé de balise est indiquée comme une valeur dans la condition.

Contrôler les groupes Auto Scaling pouvant être supprimés

La politique suivante autorise la suppression d’un groupe Auto Scaling uniquement si le groupe comporte la balise environment=development.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } }] }

Sinon, si vous n’utilisez pas de clés de condition pour contrôler l’accès aux groupes Auto Scaling, vous pouvez spécifier les ARN des ressources dans l’élément Resource pour contrôler l’accès à la place.

La politique suivante autorise les utilisateurs à utiliser l’action API DeleteAutoScalingGroup, mais uniquement pour les groupes Auto Scaling dont le nom commence par devteam-.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/devteam-*" }] }

Vous pouvez également spécifier plusieurs ARN en les intégrant à une liste. L'inclusion de l'UUID permet de s'assurer que l'accès est accordé au groupe Auto Scaling spécifique. L'UUID d'un nouveau groupe est différent de celui d'un groupe supprimé avec le même nom.

"Resource": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-1", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-2", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-3" ]

Contrôler les politiques de mise à l’échelle pouvant être supprimées

La politique suivante accorde les autorisations d'utiliser l'action DeletePolicy pour supprimer une politique de mise à l'échelle. Cependant, elle refuse également l'action si le groupe Auto Scaling cible dispose de la balise environment=production. Dans la mesure du possible, utilisez des balises pour contrôler l’accès aux groupes Auto Scaling de votre compte.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeletePolicy", "Resource": "*" }, { "Effect": "Deny", "Action": "autoscaling:DeletePolicy", "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "production" } } }] }

Contrôler l’accès aux actions d’actualisation des instances

La politique suivante autorise le démarrage, la restauration et l’annulation d’une actualisation d’instance uniquement si le groupe Auto Scaling concerné comporte la balise environment=testing. 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.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:StartInstanceRefresh", "autoscaling:CancelInstanceRefresh", "autoscaling:RollbackInstanceRefresh" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "testing" } } }, { "Effect": "Allow", "Action": "autoscaling:DescribeInstanceRefreshes", "Resource": "*" }] }

Pour spécifier la configuration souhaitée dans l’appel StartInstanceRefresh, les utilisateurs peuvent avoir besoin de certaines autorisations associées, telles que :

Créer un rôle lié à un service

Amazon EC2 Auto Scaling a besoin d'autorisations pour créer un rôle lié à un service la première fois qu'un de vos utilisateurs appelle des actions d'API Amazon Compte AWS EC2 Auto Scaling. Si le rôle lié à un service n'existe pas déjà, Amazon EC2 Auto Scaling le crée dans votre compte. Le rôle lié à un service donne des autorisations à Amazon EC2 Auto Scaling afin qu'il puisse Services AWS appeler d'autres personnes en votre nom.

Pour que cette création de rôle automatique aboutisse, les utilisateurs doivent disposer des autorisations nécessaires pour l'action iam:CreateServiceLinkedRole.

"Action": "iam:CreateServiceLinkedRole"

L'exemple suivant illustre une politique d'autorisations qui permet à un utilisateur de créer un rôle lié au service Amazon EC2 Auto Scaling pour Amazon EC2 Auto Scaling.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling", "Condition": { "StringLike": { "iam:AWSServiceName":"autoscaling.amazonaws.com" } } }] }

Contrôler quel rôle lié à un service peut être transmis (en utilisant) PassRole

Les utilisateurs qui créent ou mettent à jour des groupes Auto Scaling et qui spécifient un rôle lié à un service avec suffixe personnalisé dans la demande ont besoin de l'autorisation iam:PassRole.

Vous pouvez utiliser cette iam:PassRole autorisation pour protéger la sécurité des clés gérées par vos AWS KMS clients si vous autorisez différents rôles liés au service à accéder à différentes clés. En fonction des besoins de votre organisation, vous pouvez avoir une clé pour l'équipe de développement, une autre pour l'équipe assurance qualité et encore une autre pour l'équipe financière. Créez d'abord un rôle lié à un service ayant accès à la clé requise, par exemple un rôle lié à un service nommé. AWSServiceRoleForAutoScaling_devteamkeyaccess Attachez ensuite la politique à une identité IAM, telle qu'un utilisateur ou un rôle.

La politique suivante accorde les autorisations de transmettre le rôle AWSServiceRoleForAutoScaling_devteamkeyaccessà un groupe Auto Scaling dont le nom commence par devteam-. Si l'identité IAM qui crée le groupe Auto Scaling essaie de spécifier un rôle lié à un service différent, elle reçoit une erreur. S'ils choisissent de ne pas spécifier de rôle lié à un service, le AWSServiceRoleForAutoScalingrôle par défaut est utilisé à la place.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_devteamkeyaccess", "Condition": { "StringEquals": { "iam:PassedToService": [ "autoscaling.amazonaws.com" ] }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/devteam-*" ] } } }] }

Pour plus d'informations sur les rôles liés à un service avec suffixe personnalisé, consultez Rôles liés à un service pour Amazon EC2 Auto Scaling.