Je souhaite résoudre les erreurs d'accès refusé ou non autorisées lorsque j'accède à mon service AWS.
Brève description
La Gestion des identités et des accès AWS (AWS IAM) renvoie les erreurs d'accès refusées ou non autorisées lorsque votre politique ne répond pas à des conditions spécifiques.
Pour résoudre le problème, identifiez l'utilisateur IAM ou le rôle IAM spécifique à l'origine du problème. Passez en revue les limites d'autorisations associées à cette entité. Une limite d'autorisations vous permet d'utiliser une politique gérée pour définir des autorisations maximales pour une entité IAM. Cette fonctionnalité contrôle les autorisations maximales qu'une politique basée sur l'identité peut accorder à un utilisateur ou à un rôle IAM. Lorsque vous définissez une limite d'autorisations pour une entité, celle-ci ne peut effectuer que les actions autorisées par les deux politiques.
Remarque : Une entité ne peut effectuer que des actions autorisées à la fois par la politique basée sur l'identité et par les limites d'autorisations.
Résolution
Si les limites d'autorisations ne permettent pas de résoudre l'erreur, consultez les politiques de contrôle des services (SCP) de votre compte AWS. Vérifiez ensuite si des politiques basées sur les ressources contiennent des refus pour l'entité IAM.
Vérifiez si une action est autorisée dans votre politique IAM, mais pas dans la limite des autorisations
L'exemple suivant montre une action autorisée dans une politique IAM, mais pas dans la limite des autorisations. Dans cet exemple, la politique USER_IAM_POLICY est associée à un utilisateur IAM :
IAM policy:(USER_IAM_POLICY)
“Effect”: “Allow”,
“Action”: [
“ec2:*”,
“s3:*”
],
Cette politique donne à l'utilisateur un accès complet aux services Amazon Elastic Compute Cloud (Amazon EC2) et Amazon Simple Storage Service (Amazon S3). L'utilisateur dispose également d'une limite d'autorisations nommée USER_PB_POLICY.
Permissions Boundary:(USER_PB_POLICY)
“Effect”: “Allow”,
“Action”: [
“cloudwatch:*”,
“s3:*”
],
La limite des autorisations définit les autorisations maximales que l'utilisateur peut exécuter. Dans cet exemple, cette limite d'autorisation permet un accès complet aux services Amazon CloudWatch et Amazon S3. Toutefois, étant donné qu'Amazon S3 est le seul service autorisé à la fois dans la politique IAM et dans la limite des autorisations, l'utilisateur n'a accès qu'à S3. Si l'utilisateur essaie d'accéder à Amazon EC2, il reçoit un message d'erreur d'accès refusé.
Pour résoudre cette erreur, modifiez la limite des autorisations et autorisez l'accès à Amazon EC2 :
“Effect”: “Allow”,
“Action”: [
“cloudwatch:*”,
“s3:*”,
“ec2:*”
],
Incluez toutes les actions requises dans la limite des autorisations à l'aide de la console IAM
Pour modifier la limite des autorisations afin d'inclure toutes les actions requises par un utilisateur, procédez comme suit :
- Ouvrez la console IAM.
- Dans le volet de navigation, choisissez Rôles/Utilisateurs.
- Choisissez l'entité IAM que vous souhaitez modifier.
- Dans la section Limites des autorisations, vérifiez vos paramètres. Si une limite des autorisations est définie, cela signifie qu'une limite des autorisations est en place. Le nom de la politique gérée qui est utilisée comme limite des autorisations sur votre entité IAM est répertorié dans cette section.
- Développez la politique JSON et vérifiez si l'action requise est autorisée dans la limite des autorisations. Si la limite des autorisations ne permet pas votre action, modifiez la politique JSON pour autoriser toutes les actions requises par votre entité IAM.
Pour plus d'informations sur la procédure de modification des politiques, consultez la section Modification des politiques IAM.
Utilisez la clé de condition iam:PermissionsBoundary dans vos politiques IAM
Ajoutez la clé de condition iam:PermissionsBoundary à vos politiques IAM. Cette clé de condition vérifie qu'une politique spécifique est attachée en tant que limite d'autorisations sur une entité IAM.
L'exemple suivant montre une politique IAM nommée RestrictedRegionPermissionsBoundary:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EC2RestrictRegion",
"Effect": “Allow”,
"Action": "ec2:*”
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": [
"us-east-1"
]
}
}
}
Créez une politique et associez-la à un administrateur délégué chargé de créer des utilisateurs. Lorsque vous associez l'exemple de politique suivant à l'administrateur, celui-ci ne peut créer un utilisateur IAM que s'il associe la politique RestrictedRegionPermissionsBoundary à cet utilisateur. Si l'administrateur essaie de créer un utilisateur IAM sans associer la politique, il reçoit un message d'erreur d'accès refusé.
{
"Sid": "CreateUser",
"Effect": "Allow",
"Action": [
"iam:CreateUser"
],
"Resource": "arn:aws:iam::444455556666:user/test1*",
"Condition": {
"StringEquals": {
"iam:PermissionsBoundary": "arn:aws:iam::444455556666:policy/RestrictedRegionPermissionsBoundary"
}
}
Pour définir la politique IAM RestrictedRegionPermissionsBoundary comme limite d'autorisations lorsque vous créez un nouvel utilisateur, procédez comme suit :
- Ouvrez la console IAM.
- Dans le volet de navigation, choisissez Utilisateurs, puis ** Ajouter des utilisateurs**.
- Saisissez le nom d'utilisateur que vous souhaitez modifier, choisissez le type d'accès AWS, puis cliquez sur Suivant.
- Développez la section Définir les limites des autorisations et choisissez Utiliser une limite des autorisations pour contrôler les autorisations de rôle maximales.
- Dans le champ de recherche, saisissez RestrictedRegionPermissionsBoundary, puis cliquez sur le bouton radio correspondant à votre politique.
- Choisissez Next:Tags.
- Vérifiez vos paramètres et créez un utilisateur.
Informations connexes
Évaluation des autorisations effectives avec des limites
AWSSupport-TroubleshootIAMAccessDeniedEvents