如何解决如何使用 lambda 函数和 Cloudformation 访问 S3 端点
快速概览,我正在构建一个 cloudformation 模板,其中包含:
专有网络
IGW
公共子网
私有子网
NATGateway
路由表
S3 存储桶
lambda 函数
其中一个 lambda 函数是从 API 中提取数据并将其发送到 S3 存储桶。我的问题是如何授予此 lambda 函数执行其工作的权限,而不授予它访问 IAM 中的 S3 的权限。但是,改为编写一个仅允许该 lambda 函数访问 S3 的存储桶策略?
S3:
Type: AWS::S3::Bucket
Properties:
BucketName: "some-random-bucket"
S3BucketPolicy:
Type: AWS::S3::BucketPolicy
DependsOn: S3
Properties:
Bucket: !Ref S3
PolicyDocument:
Version: 2012-10-17
Statement:
Action:
- 's3:PutObject'
Effect: Allow
Resource: "arn:aws:s3:::some-random-bucket/*"
Principal: 'arn:aws:lambda:REGION:ACCOUNT-NUMBER:function:lambda_function_1'
我创建的 S3 Endpoint 如下:
S3Endpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal: "*"
Action: "s3:PutObject"
Resource:
Fn::ImportValue: !Sub S3Id
ServiceName: !Sub 'com.amazonaws.${AWS::Region}.s3'
VpcId: !Ref VPC
我已尝试更改 S3BucketPolicy 和 S3Endpoint 中的主体。但是,我似乎无法获得发送到 S3 的正确权限。
我也将 S3BucketPolicy 中的主体更改为“*”
这允许我的 lambda 函数写入 S3。但是,我只想限制对 lambda 函数的访问
所以 '*' 最终在这里对我不起作用。
如果我能对此有所了解,将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。