【发布时间】:2018-03-25 04:57:00
【问题描述】:
我创建了一个带有 cloudformation 的存储桶:
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
BucketName:
Type: String
Description: "Choose a name for the S3 Bucket"
Default: "myrandomnameforbucket"
S3Bucket:
Type: "AWS::S3::Bucket"
Properties:
AccessControl: "Private"
BucketName: !Ref BucketName
现在我正在编写一个 bucketPolicy,但我遇到了一些问题。我想要达到的目标:
- 用户 A (UserA) 可以上传到 S3
- 用户 A (UserA) 无法从 S3 中删除
- 所有用户(在我的环境中,不公开)都可以从 S3 读取
- 所有用户(在我的环境中,nob public)都可以从 S3 中删除
我怎样才能做到这一点? 目前我拒绝从 userA 删除并允许从 userA 上传。
- Effect: Deny
Principal:
AWS:
!GetAtt UserA.Arn
Action: "s3:DeleteObject"
Resource:
Fn::Join: ["", ["arn:aws:s3:::", Ref: "S3Bucket", "/*"]]
- Effect: Allow
Principal:
AWS:
!GetAtt UserA.Arn
Action: "s3:PutObject"
Resource:
Fn::Join: ["", ["arn:aws:s3:::", Ref: "S3Bucket", "/*"]]
- Effect: Allow
Principal: "?" # * is public?
Action: s3:GetObject
Resource:
Fn::Join: ["", ["arn:aws:s3:::", Ref: "S3Bucket", "/*"]]
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-cloudformation