У меня есть корзина с несколькими общедоступными файлами. Я хочу установить политику корзины, после которой эти файлы должны быть загружены только моими пользователями IAM. На данный момент у меня есть такая политика:
{
"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/*"
}
]
}
Однако это отрицает всех, включая пользователей IAM. Кто-нибудь может указать, что здесь не так?
В зависимости от того, сколько пользователей IAM у вас в учетной записи, вы можете указать учетные записи в обоих утверждениях следующим образом (попробуйте один или два, чтобы проверить, работает ли он). В прошлом у меня были проблемы с получением arn: aws: iam :: XXXXXXXXXXXX: root, чтобы фактически охватить все учетные записи IAM. Вы также можете попробовать просто указать пользователей IAM и удалить корневую запись.
{
"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/*"
}
]
}