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