Comment puis-je utiliser les limites d'autorisations pour limiter la portée des utilisateurs et des rôles IAM tout en empêchant l'élévation de privilèges ?

Dernière mise à jour : 22-08-2022

Comment puis-je créer une politique de limites d'autorisations pour restreindre l'accès administrateur à AWS Identity and Access Management (IAM) et empêcher l'augmentation de privilèges ?

Résolution

Utilisez l'exemple de stratégie IAM suivant pour fournir ces restrictions :

  • Tout mandataire IAM créé par les administrateurs IAM peut avoir un accès complet aux ressources AWS. L'accès complet aux ressources AWS dépend des politiques basées sur l'identité, car les limites d'autorisations ne fournissent pas d'autorisations par elles-mêmes.
  • La politique empêche les principaux IAM d'accéder aux services connexes Facturation et gestion des coûts AWS.
  • Les principaux IAM ne peuvent pas modifier les limites d'autorisations pour permettre à leurs propres autorisations d'accéder aux services restreints.
  • Les administrateurs IAM ne peuvent pas créer de mandataires IAM disposant de plus de privilèges qu'ils n'en ont déjà.
  • Les mandataires IAM créés par les administrateurs IAM ne peuvent pas créer de mandataires IAM disposant de plus d'autorisations que les administrateurs IAM.

Enregistrez cette stratégie en tant que stratégie gérée nommée ScopePermissions. Remplacez YourAccount_ID par l'ID de votre compte.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowAdminAccess",
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*"
    },
    {
      "Sid": "DenyAccessToCostAndBilling",
      "Effect": "Deny",
      "Action": [
        "account:*",
        "aws-portal:*",
        "savingsplans:*",
        "cur:*",
        "ce:*"
    ],
    "Resource": "*"
   },
   {
     "Sid": "DenyPermBoundaryIAMPolicyAlteration",
     "Effect": "Deny",
     "Action": [
       "iam:DeletePolicy",
       "iam:DeletePolicyVersion",
       "iam:CreatePolicyVersion",
       "iam:SetDefaultPolicyVersion"
   ],
   "Resource": [
     "arn:aws:iam::YourAccount_ID:policy/ScopePermissions"
   ]
  },
  {
    "Sid": "DenyRemovalOfPermBoundaryFromAnyUserOrRole",
    "Effect": "Deny",
    "Action": [
      "iam:DeleteUserPermissionsBoundary",
      "iam:DeleteRolePermissionsBoundary"
   ],
   "Resource": [
     "arn:aws:iam::YourAccount_ID:user/*",
     "arn:aws:iam::YourAccount_ID:role/*"
   ],
   "Condition": {
     "StringEquals": {
       "iam:PermissionsBoundary": "arn:aws:iam::YourAccount_ID:policy/ScopePermissions"
     }
    }
   },
   {
     "Sid": "DenyAccessIfRequiredPermBoundaryIsNotBeingApplied",
     "Effect": "Deny",
     "Action": [
     "iam:PutUserPermissionsBoundary",
     "iam:PutRolePermissionsBoundary"
   ],
   "Resource": [
     "arn:aws:iam::YourAccount_ID:user/*",
     "arn:aws:iam::YourAccount_ID:role/*"
   ],
   "Condition": {
     "StringNotEquals": {
       "iam:PermissionsBoundary": "arn:aws:iam::YourAccount_ID:policy/ScopePermissions"
     }
    }
  },
  {
    "Sid": "DenyUserAndRoleCreationWithOutPermBoundary",
    "Effect": "Deny",
    "Action": [
      "iam:CreateUser",
      "iam:CreateRole"
  ],
  "Resource": [
    "arn:aws:iam::YourAccount_ID:user/*",
    "arn:aws:iam::YourAccount_ID:role/*"
  ],
  "Condition": {
    "StringNotEquals": {
      "iam:PermissionsBoundary": "arn:aws:iam::YourAccount_ID:policy/ScopePermissions"
    }
   }
 },
 {
   "Sid": "DenyIAMActions",
   "Effect": "Deny",
   "Action": "iam:PassRole",
   "Resource": "arn:aws:iam::YourAccount_ID:role/*"
  }
 ]
}

Pour tester cette stratégie :

1.    Créez l'utilisateur IAM Bob.

2.    Associez la stratégie AdministratorAccess directement à Bob et associez ScopePermissions en tant que limite d'autorisations.

3.    Connectez-vous à AWS Management Console en tant que Bob. Ensuite, essayez de :

  • Accéder au service Facturation et gestion des coûts AWS Explorateur de coûts.
  • Supprimer la limite d'autorisations de Bob.
  • Créez de nouveaux utilisateurs et rôles IAM sans limites d'autorisations.
  • Créez un utilisateur IAM nommé Alice disposant de limites d'autorisations appliquées, puis associez à Alice la stratégie AdministratorAccess en tant que stratégie basée sur l'identité.

4.    Connectez-vous à la Console de gestion AWS sous le nom Alice et essayez de :

  • Accéder au service Facturation et gestion des coûts AWS, Explorateur de coûts.
  • Supprimer la limite d'autorisations d'Alice.
  • Créez de nouveaux utilisateurs et rôles IAM sans limites d'autorisations.

La limite d'autorisations permet de s'assurer que :

  • Bob ne peut pas créer de nouveaux utilisateurs sans associer la limite d'autorisations ScopePermissions.
  • Les utilisateurs et rôles IAM créés par Bob disposent des mêmes autorisations que Bob.
  • Bob et Alice ne peuvent pas modifier la stratégie IAM qui approvisionne la limite d'autorisations, comme la suppression de la version par défaut de la stratégie.
  • Bob et Alice ne peuvent ni modifier ni supprimer les limites d'autorisations appliquées à la stratégie ou à d'autres utilisateurs.
  • La limite d'autorisations refuse l'accès aux services restreints.
  • Alice possède les mêmes autorisations que Bob, ce qui empêche l'escalade des privilèges. Si Alice crée un nouvel utilisateur IAM, le nouvel utilisateur ne dispose pas de plus d'autorisations que Bob. Cette limite d'autorisations garantit qu'aucun mandataires IAM n'est créé sans la limite d'autorisations, ce qui empêche l'escalade des privilèges.

Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?