Utiliser la sécurité AWS pour les développeurs
Rahul Singh
Technical Product Manager
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::reports/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "true"
},
"IpAddress": {
"aws:SourceIp": "203.0.113.0/24"
}
}
}

{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::reports/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "true"
},
"IpAddress": {
"aws:SourceIp": "203.0.113.0/24"
}
}
}

La question
La réponse


Axée sur l'identité


Axée sur l'identité
Axée sur la ressource
{"Effect": "Allow", "Action": "s3:*", "Resource": "*"}
{"Effect": "Deny", "Action": "s3:DeleteObject", "Resource": "*"}
{"Effect": "Allow", "Action": "s3:*", "Resource": "*"}
{"Effect": "Deny", "Action": "s3:DeleteObject", "Resource": "*"}
Requête : s3:DeleteObject donne : refusé.
Un refus explicite l'emporte sur tout allow, même très large


{"Effect": "Allow", "Action": "s3:*",
"Resource": "*"}
{"Effect": "Deny", "Action": "s3:DeleteObject",
"Resource": "*"}
s3:GetObject → allow : l'allow large le couvres3:DeleteObject → refus explicite : une déclaration dit nonkms:Decrypt, dynamodb:GetItem → refus implicite : cette stratégie ne mentionne pas ces servicesMême erreur, deux causes
Refus explicite
Refus implicite

Utiliser la sécurité AWS pour les développeurs