【发布时间】:2021-07-11 13:20:09
【问题描述】:
我正在尝试为我的 Lambda 函数提供 S3FullAccessPolicy 策略。请注意,目标存储桶未在 template.yaml 中配置 - 它已经存在。考虑到this documentation 的语法示例,我有三个选择:
1.AWS托管策略命名:
Policies:
- S3FullAccessPolicy
2.AWS SAM策略模板(SQSPollerPolicy)定义:
Policies:
- S3FullAccessPolicy:
BucketName: abc-bucket-name
3.或内联策略文档:
Policies:
- Statement:
...
在尝试 #1 时,我收到一条错误消息,提示我需要提供一个 arn。如果是这种情况,我将在哪里提供?错误:
1 validation error detected: Value 'S3FullAccessPolicy' at 'policyArn' failed to satisfy constraint:
Member must have length greater than or equal to 20
对于 #2,我提供了存储桶名称,但它表示策略“无效”。我尝试添加引号并用 arn 替换名称 - 但没有运气。
还有 #3 - 我可以找到策略 here 的代码,但这是在 yaml 中,所以我想知道这是否是我应该使用的代码。
我在这里缺少什么?我愿意使用这些选项中的任何一个,但现在我是 0/3。
完整的 Lambda 函数:
testFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambda/testFunction/
Handler: app.lambda_handler
Runtime: python3.8
Timeout: 900
Policies:
- S3FullAccessPolicy
【问题讨论】:
-
对于#2,究竟是什么错误?使用#3有什么问题?
标签: amazon-web-services amazon-s3 lambda amazon-cloudformation aws-sam