Comment puis-je utiliser les identifications de stratégie IAM pour restreindre la manière dont une instance EC2 ou un volume EBS peuvent être créés et accessibles ?
Je souhaite autoriser l'accès aux identités AWS Identity and Access Management (IAM) pour lancer de nouvelles instances Amazon Elastic Compute Cloud (Amazon EC2). Je souhaite également autoriser les identités IAM à accéder à de nouveaux volumes Amazon Elastic Block Store (Amazon EBS) lorsqu'ils appliquent des identifications spécifiques.
Brève description
Spécifiez des identifications pour les instances EC2 et les volumes Amazon EBS dans le cadre de l'appel d'API qui crée les ressources. Appliquez des conditions à la stratégie IAM pour obliger les utilisateurs IAM à identifier des ressources spécifiques.
Les exemples de stratégies suivants n'autorisent pas les utilisateurs à créer des groupes de sécurité ou des paires de clés. Les utilisateurs doivent donc sélectionner les groupes de sécurité et les paires de clés existants.
Les exemples de stratégies IAM suivants permettent aux utilisateurs de lancer des instances présentant les configurations suivantes :
- Clés et valeurs d’identification correspondantes
- Au moins une étiquette et une valeur correspondantes
- Au moins une clé d’identification correspondante
- Seule la liste d’identifications spécifiée
Les exemples de stratégies IAM permettent également aux utilisateurs de gérer des instances et des volumes dont les clés d’identification et les valeurs sont identiques.
Remarque : Pour utiliser les exemples de stratégies, remplacez les exemples de valeurs par les vôtres.
Résolution
Restreindre la création d'instances EC2 et de volumes EBS en fonction des identifications
Les exemples de stratégies suivants permettent à un utilisateur de lancer une instance et de créer un volume en fonction d’identifications.
Lancer des instances EC2 incluant des clés d’identification et des valeurs correspondantes
Dans l'exemple de stratégie suivant, la condition RequestTag contrôle l'application des identifications. Si l'utilisateur applique une identification qui n'est pas incluse dans la stratégie, l'action est refusée. Pour appliquer la sensibilité à la casse, utilisez la condition aws:TagKeys :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowToDescribeAll", "Effect": "Allow", "Action": [ "ec2:Describe*" ], "Resource": "*" }, { "Sid": "AllowRunInstances", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:*::image/*", "arn:aws:ec2:*::snapshot/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:key-pair/*" ] }, { "Sid": "AllowRunInstancesWithRestrictions", "Effect": "Allow", "Action": [ "ec2:CreateVolume", "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:*:*:volume/*", "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:RequestTag/key1": "value1", "aws:RequestTag/key2": "value2" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "key1", "key2" ] } } }, { "Sid": "AllowCreateTagsOnlyLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:volume/*", "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": [ "RunInstances", "CreateVolume" ] } } } ] }
Important : Pour lancer correctement des instances EC2, la stratégie précédente doit inclure des clés et des valeurs d’identification correspondantes. Si les paires clé/valeur ne correspondent pas, vous recevez l'erreur Échec du lancement ou un message similaire d'échec de l'API.
Exemples de résultats
Clé/Valeur | Résultat |
key1/value1 et key2/value2 | allow |
key1/value1 | deny |
key1/value2 | deny |
pas de clés ni de valeurs | deny |
Lancer des instances EC2 qui ont au moins une clé d’identification correspondante
Dans l'exemple de stratégie suivant, remplacez le bloc de condition AllowRunInstancesWithRestrictions lorsqu'au moins une clé d’identification est nommée key1. Aucune valeur spécifique n'est requise pour l’identification key1 et vous pouvez ajouter des identifications dans la requête RunInstances :
"Condition": { "StringEquals": { "aws:RequestTag/key1": "value1" }, "ForAnyValue:StringEquals": { "aws:TagKeys": [ "key1" ] } }
Exemples de résultats
Clé/Valeur | Résultat |
key1/value1 et key2/value2 | allow |
key1/value1 | allow |
key1/value2 | allow |
pas de clés ni de valeurs | deny |
Lancer des instances EC2 contenant uniquement la liste d’identifications spécifiée
Dans l'exemple de stratégie suivant, remplacez le bloc de condition AllowRunInstancesWithRestrictions lorsque les clés d’identification key1 et key2 sont fournies dans la requête. Aucune valeur spécifique n'est requise pour l'une ou l'autre des clés d’identification, et vous ne pouvez pas ajouter d’identifications dans la requête RunInstances :
"Condition": { "StringLike": { "aws:RequestTag/key1": "*", "aws:RequestTag/key2": "*" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "key1", "key2" ] } }
Remarque : Dans la stratégie précédente, la condition StringLike est requise afin que les valeurs puissent inclure des caractères génériques correspondant à plusieurs caractères (*).
Exemples de résultats
Clé/Valeur | Résultat |
key1/AnyValue et key2/AnyValue | Allow |
key1/AnyValue | Deny |
key2/AnyValue | Deny |
Pas de clés ni de valeurs | Deny |
Key1/AnyValue, Key2/AnyValue, Key3/AnyValue | Deny |
Restreindre la gestion des instances EC2 et des volumes EBS en fonction des clés et des valeurs des identifications
Les exemples de stratégies suivants limitent la gestion des instances et des volumes par les utilisateurs en fonction des clés et des valeurs des identifications.
Gérer les instances EC2 dont les clés d’identification et les valeurs sont identiques
L'exemple de stratégie suivant restreint l'accès à une identité IAM pour démarrer, arrêter ou redémarrer uniquement les instances EC2. L'instance doit avoir une identification de clé Propriétaire avec une valeur d’identification Bob :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:RebootInstances" ], "Resource": [ "arn:aws:ec2:*:111122223333:instance/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/Owner": "Bob" } } } ] }
Remarque : Remplacez Propriétaire par votre clé d’identification, Bob par le nom de votre utilisateur IAM et l'ARN de la ressource par l'ARN de votre ressource.
Pour plus d'informations, consultez la section Puis-je restreindre l'accès d'IAM Identity à des ressources Amazon EC2 spécifiques ?
Gérer les volumes EBS incluant des clés d’identification et des valeurs correspondantes
L'exemple de stratégie suivant permet à l'identité IAM de détacher ou de supprimer un volume EBS. Pour l'action d’API DeleteVolume, le volume doit avoir une clé d’identification Propriétaire avec une valeur d’identification Mary. Pour l'action d'API DetachVolume, l'instance et le volume doivent avoir la même clé d’identification Propriétaire avec la valeur d’identification Mary :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "ec2:DetachVolume", "ec2:DeleteVolume" ], "Resource": [ "arn:aws:ec2:*:111122223333:volume/*", "arn:aws:ec2:*:111122223333:instance/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Owner": "Mary" } } } ] }
Remarque : Remplacez Propriétaire par votre clé d’identification, Mary par le nom de votre utilisateur IAM et l'ARN de la ressource par l'ARN de votre ressource.
Informations connexes
Exemples de stratégies IAM basées sur l'identité
Contenus pertinents
- demandé il y a 5 moislg...
- demandé il y a 2 moislg...
- demandé il y a 6 jourslg...
- demandé il y a 4 moislg...
- Réponse acceptéedemandé il y a un moislg...
- AWS OFFICIELA mis à jour il y a 2 mois
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a un an