Доступ к политикам корзины s3 запрещен
Я пытаюсь загрузить объект на S3 из aws-sdk-js
, но не могу понять политику для моего случая. Я хочу разрешить только одному пользователю иметь доступ к загрузке и общедоступный доступ для чтения.
Вот мои правила S3 Bucket
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::some-bucket/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1111111111111:user/some-bucket-user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::some-bucket/*"
}
]
}
И мои политики IAM:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Action":"s3:*",
"Resource":["arn:aws:s3:::some-bucket/*"]
}
]
}
Может кто-нибудь указать, что я здесь делаю неправильно?
2 ответа
Мой плохой, я не инициализировал AWS.S3
правильно, и он использовал пользователей / роли экземпляра ec2, а не тот, который я назначал.
Для этого вам не нужно иметь дело с политиками ведра вообще. Политики Bucket используются для предоставления доступа к базе данных S3 службам, а не пользователям.
Чтобы разрешить пользователю доступ к вашей базе данных S3, добавьте его в список "Разрешения / контроль доступа" (это рядом с "политикой сегмента") с требуемыми разрешениями.
Если это абсолютно необходимо сделать с помощью политики сегментов, эта ссылка охватывает все: http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-bucket-user-policy-specifying-principal-intro.html