#amazon-s3 #yaml #amazon-cloudformation #amazon-iam #serverless-framework
#amazon-s3 #yaml #amazon-cloudformation #amazon-iam #serverless-framework
Вопрос:
Я использую Serverless Framework и создаю стек с дополнительными сегментами S3, в одном из которых должна быть политика корзины, для которой роль IamRoleLambdaExecution, созданная в Serveless Framework, добавлена в основной раздел политики этой корзины; как мне это сделать?
Политика корзины в стеке как есть:
S3BucketManifestPolicy:
Type: 'AWS::S3::BucketPolicy'
Properties:
Bucket: my-quicksight-manifest
PolicyDocument:
Statement:
- Action:
- 's3:*'
Effect: Allow
Resource:
- !Join ['', ['arn:aws:s3:::', !Ref 'mymanifestqs', /*]]
Principal:
AWS: arn:aws:iam::xxxxxxxxxx:user/serverless-admin
Service:
- s3.amazonaws.com
- cloudformation.amazonaws.com
- lambda.amazonaws.com
- quicksight.amazonaws.com
В основном разделе у меня уже есть пользователь serverless-admin и некоторые службы, но не было ясно, как добавить этот конкретный ресурс в этот раздел, который явно не создан в стеке, но, похоже, является частью функций Serverless Framework при развертывании стека. Ссылка на IamRoleLambdaExecution здесь
Я немного новичок в CloudFormation в целом, и я думаю, что я правильно добавил эти дополнительные элементы в основной раздел, но там я тоже могу ошибаться.
Любые сведения о том, как правильно ссылаться на роль IamRoleLambdaExecution в этом основном разделе, или любые другие советы, будут с благодарностью приняты! Спасибо.
Редактировать
Я думаю, что нашел то, что искал, и внес изменения в Основной раздел. К сожалению, я все еще испытываю проблемы со стеком и контролем доступа, но, похоже, это не связано с этим конкретным синтаксисом. Обновленный стек теперь выглядит следующим образом:
S3BucketManifestPolicy:
Type: 'AWS::S3::BucketPolicy'
Properties:
Bucket: profico-quicksight-manifest
PolicyDocument:
Statement:
- Action:
- 's3:*'
Effect: Allow
Resource:
- !Join ['', ['arn:aws:s3:::', !Ref 'proficiomanifestqs', /*]]
Principal:
AWS:
- 'arn:aws:iam::877539445438:user/serverless-admin'
- Fn::GetAtt: [ IamRoleLambdaExecution, Arn ] <-added here
Service:
- s3.amazonaws.com
- cloudformation.amazonaws.com
- lambda.amazonaws.com
- quicksight.amazonaws.com
Комментарии:
1. Я не мог понять вашу проблему. Пожалуйста, дайте мне знать, какие ресурсы создаются Serverless и почему вы пытаетесь добавить роль выполнения Lambda в политику корзины S3 @SkyB
2. Привет, спасибо. Я думаю, что я на пути к решению. Я хотел явно добавить это IamRoleLambdaExecution в политику корзины одного из моих корзин, но не был уверен, как это сделать. НО, я думаю, мне удалось успешно выполнить это (см. Редактирование и обновленная политика корзины).