Я пытаюсь добавить политику сегмента S3 в свой файл serverless.yml, который предоставит пользователю IAM, который я создал, разрешения на ведро.
Я начал с простого добавления политики в корзину в другом stage (dev) прямо в консоли, и теперь я пытаюсь воспроизвести политику без сервера на другом этапе (тест).
Однако, хотя я следую aws документации Кажется, я не совсем понимаю. Вот политика в моем файле serverless.yml. Чтобы уменьшить вероятность ошибки, я копирую свой Принципал и Ресурс напрямую.
S3CredentialsBucket:
Type: 'AWS::S3::Bucket'
BucketPolicy:
Type: "AWS::S3::BucketPolicy"
Properties:
Bucket: !Ref S3CredentialsBucket
PolicyDocument:
Id: ProdAnsiblePolicy
Version: "2012-10-17"
Statement:
-
Effect: Allow
Principal: 'arn:aws:iam::***********:user/prodAnsible'
Action: 's3:*'
Resource: 'arn:aws:s3:::test-mr-2-current-tenant-configurations'
Вот посмотрите на политику, которую я добавил в корзину прямо в консоли, которая работает - это означает, что пользователь может помещать объекты в ведро.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "statement1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::***********:user/prodAnsible"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::dev-2-current-tenant-configurations"
},
{
"Sid": "statement2",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::***********:user/prodAnsible"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::dev-2-current-tenant-configurations/*"
}
]
}
В настоящее время я получаю следующую ошибку при попытке развертывания: "An error occurred: BucketPolicy - Invalid policy syntax."
. Любая помощь будет принята с благодарностью!
Наконец, посмотрите на бессерверный файл cloudformation-template-update-stack. json.
"S3TenantConfigBucket": {
"Type": "AWS::S3::Bucket"
},
"BucketPolicy": {
"Type": "AWS::S3::BucketPolicy",
"Properties": {
"Bucket": {
"Ref": "S3TenantConfigBucket"
},
"PolicyDocument": {
"Id": "ProdAnsiblePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::249161078948:user/prodAnsible"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::test-mr-2-current-tenant-configurations/*"
}
]
}
}
}
}
Также стоит отметить, как ведро создано:
events:
- s3:
bucket: ${self:custom.s3_bucket}
event: s3:ObjectCreated:*
Это управляемый событиями подход согласно бессерверной документации Заранее спасибо!