Ich habe einen Bucket mit mehreren öffentlich herunterladbaren Dateien. Ich möchte eine Bucket-Richtlinie festlegen, nach der diese Dateien nur von meinen IAM-Benutzern heruntergeladen werden können. Die Richtlinie, die ich bisher habe, ist folgende:
{
"Version": "2008-10-17",
"Id": "Policy1424952346041",
"Statement": [
{
"Sid": "Stmt1424958477350",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::777777777777:root"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::test/*"
},
{
"Sid": "Stmt1424958477351",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::777777777777:root"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::test/*"
}
]
}
Es wird jedoch allen verweigert, einschließlich den IAM-Benutzern. Kann mir bitte jemand sagen, was hier falsch ist?
Antwort1
Je nachdem, wie viele IAM-Benutzer Sie im Konto haben, können Sie die Konten in beiden Anweisungen wie folgt angeben (versuchen Sie es testweise mit einem oder zwei, um zu sehen, ob es funktioniert). Ich hatte in der Vergangenheit Probleme damit, arn:aws:iam::XXXXXXXXXXXX:root so zu konfigurieren, dass es tatsächlich alle IAM-Konten abdeckt. Sie können auch versuchen, nur die IAM-Benutzer anzugeben und den Root-Eintrag zu entfernen.
{
"Version": "2008-10-17",
"Id": "Policy1424952346041",
"Statement": [
{
"Sid": "Stmt1424958477350",
"Effect": "Deny",
"NotPrincipal": {
"AWS": [
"arn:aws:iam::777777777777:root",
"arn:aws:iam::777777777777:user/user1",
"arn:aws:iam::777777777777:user/user2" ]
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::test/*"
},
{
"Sid": "Stmt1424958477351",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::777777777777:root",
"arn:aws:iam::777777777777:user/user1",
"arn:aws:iam::777777777777:user/user2" ]
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::test/*"
}
]
}