Загрузка I4m с объектами PHP в S3. Я хочу принимать только файлы PDF и отказываться от файлов с другими расширениями.
Итак, я написал эту политику ведра:
{
"Version": "2012-10-17",
"Id": "Policy1464968545158",
"Statement": [
{
"Sid": "Stmt1464968483619",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::MYBUCKET/*.pdf"
}
]
}
Но это не работает, моя корзина по-прежнему принимает файлы с любыми расширениями.
Что я сделал не так ?
Спасибо
Ваша политика позволяет помещать объект в файлы, соответствующие *.pdf
. Однако это не накладывает никаких ограничений на putObject. Если вы получите эти разрешения другими способами, вы все равно сможете загружать другие файлы. Например. политика под управлением AWS arn:aws:iam::aws:policy/AmazonS3FullAccess
в настоящее время выглядит так:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
Если вы присоедините это к своему пользователю AWS IAM или роли IAM, вы сможете поместить все объекты в корзину с этой политикой.
Элемент NotResource
может быть здесь полезен, см. Вот. Рабочая политика может выглядеть так:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Deny",
"Action": "s3:putObject",
"NotResource": [
"arn:aws:s3:::MYBUCKET/*.pdf"
]
}
}
Это запретит putObjects для всех, если они не работают. *.pdf
.