L'accès à une instance Amazon EC2 peut être contrôlée en ajoutant une balise à l'instance et e attachant une stratégie à un utilisateur ou à un groupe qui accorde le contrôle en fonction d'une instruction conditionnelle qui recherche la balise d'instance. Cela fonctionne suffisamment bien pour les plus petits déploiements de 5 à 10 instances, mais des options les plus efficaces sont disponibles pour accorder un accès utilisateur à une instance lors d'une utilisation avec des déploiements plus volumineux d'utilisateurs et d'instances.

L'application de stratégies à des groupes ou à des utilisateurs IAM pour accorder à des utilisateurs un contrôle d'instances EC2 balisées n'est pas une solution optimale lors de l'utilisation d'un grand nombre d'utilisateurs et d'instances EC2.

Lors de l'utilisation de grandes infrastructures EC2, l'utilisation de stratégies IAM qui associent instructions conditionnelles et variables de stratégie peut réduire la charge administrative en affectant avec précision un contrôle d'instances EC2 aux utilisateurs. Les étapes suivantes décrivent un exemple de stratégie IAM qui utilise des instructions conditionnelles avec des variables de stratégie pour accorder aux utilisateurs IAM un contrôle d'instances EC2 qui ont été balisées avec leur nom utilisateur.

  1. Créer une stratégie d'administration EC2 de base
    Cette stratégie accorde un contrôle complet de toutes les instances EC2 dans le compte :
    {
          "Version":"2012-10-17",
               "Statement" :
         [
              {
                    "Effect":"Allow",
                    "Action" : "ec2:*",
                    "Resource" : "*"
               }
          ]
    }
  2. Modifiez la stratégie avec une instruction conditionnelle qui permet d'accéder à des ressources EC2 en associant des valeurs de balises ec2:ResourceTag/UserName et de variables de stratégie aws:username.
    Cette modification ajoute une instruction conditionnelle qui limite le contrôle complet de ressources EC2 aux utilisateurs IAM avec un nom utilisateur qui correspond à la valeur de balise assignée à la ressource EC2. Cela permet à toute action EC2 qui prend en charge cette condition d'aboutir lorsque la condition est remplie. Toute action EC2 qui ne prend pas en charge cette condition ou qui ne remplit pas la condition se voit refuser l'accès par défaut.

    Remarque
    « Contrôle complet » étend à toutes les actions dans l'espace de noms EC2 à l'exception des actions API Amazon EC2 qui ne prennent pas actuellement en charge les autorisations au niveau des ressources. Pour plus d'informations, consultez Unsupported Resource-Level autorisations dans la référence API Amazon EC2.
    {
          "Version":"2012-10-17",
               "Statement" :
          [
               {
                    "Effect":"Allow",
                    "Action" : "ec2:*",
                    "Resource" : "*",
                    "Condition" : {
                         "StringEquals" : {
                              "ec2:ResourceTag/UserName" : "${aws:username}"
                         }
                    }

               }
          ]
    }
  3. Ajoutez une section à la stratégie pour autoriser l'accès de l'utilisateur aux actions ec2:Describe* pour des ressources EC2. Les utilisateurs doivent être capables de décrire des ressources EC2 afin d'interagir avec elles.
    L'accès à des actions ec2:Describe* n'est pas pris en charge en utilisant des instructions conditionnelles. Cet accès doit donc être accordé dans une section distincte.
    {
          "Version":"2012-10-17",
               "Statement" :
          [
               {
                    "Effect":"Allow",
                    "Action" : "ec2:*",
                    "Resource" : "*",
                    "Condition" : {
                         "StringEquals" : {
                              "ec2:ResourceTag/UserName" : "${aws:username}"
                         }
                    }
               },
               {
                    "Effect":"Allow",
                    "Action" : "ec2:Describe*",
                    "Resource" : "*"
               }

          ]
    }
  4. Ajoutez une section à la stratégie qui refuse l'accès aux actions ec2:CreateTags et ec2:DeleteTags pour empêcher les utilisateurs de créer ou de supprimer des balises. Le refus explicite de l'accès aux actions ec2:CreateTags et ec2:DeleteTags empêche l'utilisateur de prendre le contrôle d'une ressource EC2 en ajoutant simplement une balise à la ressource.
    Il est recommandé d'ajouter une section pour refuser explicitement l'accès utilisateur aux actions ec2:CreateTags et ec2:DeleteTags car l'accès à ces actions pourrait être explicitement accordé à un utilisateur via une autre stratégie liée à un utilisateur ou à un groupe. Lorsque des stratégies IAM sont évaluées, les autorisations les plus restrictives s'appliquent et l'effet « Refuser » devient alors prioritaire sur l'effet « Autoriser ».
    {
         "Version":"2012-10-17",
              "Statement" :
         [
              {
                   "Effect":"Allow",
                   "Action" : "ec2:*",
                   "Resource" : "*",
                   "Condition" : {
                        "StringEquals" : {
                             "ec2:ResourceTag/UserName" : "${aws:username}"
                        }
                   }
              },
              {
                   "Effect":"Allow",
                   "Action" : "ec2:Describe*",
                   "Resource" : "*"
              },
              {
                   "Effect": "Deny",
                   "Action" :
                        [
                             "ec2:CreateTags",
                             "ec2:DeleteTags"
                        ],
                   "Resource" : "*"
              }

         ]
    }

Amazon EC2, contrôler l'accès utilisateur, stratégies IAM, instruction conditionnelle, variables de stratégie, balises de ressources EC2


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.