Passer au contenu

Comment puis-je restreindre l'accès des identités IAM à des ressources Amazon EC2 spécifiques ?

Lecture de 4 minute(s)
0

Je souhaite restreindre l'accès des identités Gestion des identités et des accès AWS (AWS IAM) à une ressource Amazon Elastic Compute Cloud (Amazon EC2) spécifique.

Brève description

Amazon EC2 prend partiellement en charge les autorisations ou les conditions au niveau des ressources. Vous pouvez utiliser des autorisations au niveau des ressources pour contrôler la manière dont les identités IAM sont autorisées à accéder à des ressources Amazon EC2 spécifiques.

Il est également possible d'utiliser l'ABAC (autorisation basée sur les identifications) pour contrôler l'accès aux ressources AWS. Pour de plus amples informations, consultez la section Didacticiel IAM : définition des autorisations d’accès aux ressources AWS en fonction des identifications.

Résolution

Utilisez les exemples de politiques IAM suivants pour restreindre l'accès aux instances Amazon EC2 pour votre cas d'utilisation. Puis, associez la politique à l'identité IAM à laquelle vous souhaitez restreindre l'accès.

Restreindre l'accès uniquement aux instances de démarrage, d'arrêt ou de redémarrage

Vous trouverez ci-dessous un exemple de politique qui limite l'accès d'une identité IAM uniquement aux instances EC2 de démarrage, d'arrêt ou de redémarrage:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:AccountId:instance/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Owner": "Bob"
                }
            }
        }
    ]
}

Remarque : remplacez Propriétaire par votre clé d’identification, Bob par votre valeur d’identification et AccountId par vos identifiants de compte AWS.

Afin de restreindre d'autres ressources Amazon EC2 par région AWS, assurez-vous que les actions prennent en charge les autorisations et les conditions au niveau des ressources.

Restreindre le lancement des instances EC2 par identification

L'exemple de politique suivant utilise la clé d’identification Propriétaire pour restreindre l'accès à une identité IAM afin de lancer uniquement des instances EC2 :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:AccountId:instance/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "aws:RequestTag/Owner": "*"
                }
            }
        },
        {
            "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/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*"
            ]
        },
        {
            "Sid": "AllowToDescribeAll",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowCreateTagsOnLaunching",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": [
                "arn:aws:ec2:*:AccountId:*/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": [
                        "RunInstances"
                    ]
                }
            }
        }
    ]
}

Remarque : remplacez Propriétaire par votre clé d’identification et AccountId par vos identifiants de compte.

Restreindre le lancement d'instances EC2 par type d'instance

L'exemple de politique suivant limite l'accès d'une identité IAM au lancement d'instances EC2 avec le type d'instance t3.* :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:AccountId:instance/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "ec2:InstanceType": "t3.*"
                }
            }
        },
        {
            "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/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*"
            ]
        },
        {
            "Sid": "AllowToDescribeAll",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowCreateTagsOnLaunching",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": [
                "arn:aws:ec2:*:AccountId:*/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": [
                        "RunInstances"
                    ]
                }
            }
        }
    ]
}

Remarque : remplacez le type d'instance t3.* par votre type d'instance, par exemple t3.nano. remplacez également AccountId par les identifiants de votre compte.

Pour plus d'informations, consultez la section Conventions de dénomination des types d'instances Amazon EC2.

Informations connexes

Comment puis-je créer une politique IAM pour contrôler l’accès aux ressources Amazon EC2 par le biais d’identifications ?

Comment utiliser les identifications de politique IAM pour restreindre la manière dont une instance EC2 ou un volume EBS peuvent être créés et accessibles ?

Politiques basées sur l'identité sur Amazon EC2

AWS OFFICIELA mis à jour il y a un an