Amazon web services S3完全访问的Cloudformation AWS::IAM::Policy的正确语法是什么
在CloudFormation脚本中,我创建了一个IAM::策略,该策略将应用于Kinesis消防软管。它具有以下PolicyDocument语句Amazon web services S3完全访问的Cloudformation AWS::IAM::Policy的正确语法是什么,amazon-web-services,amazon-s3,amazon-cloudformation,Amazon Web Services,Amazon S3,Amazon Cloudformation,在CloudFormation脚本中,我创建了一个IAM::策略,该策略将应用于Kinesis消防软管。它具有以下PolicyDocument语句 Statement: - Effect: Allow Action: - 's3:AbortMultipartUpload' - 's3:GetBucketLocation' - 's3:GetObject' - 's3:ListBucket' - 's3:ListBucketM
Statement:
- Effect: Allow
Action:
- 's3:AbortMultipartUpload'
- 's3:GetBucketLocation'
- 's3:GetObject'
- 's3:ListBucket'
- 's3:ListBucketMultipartUploads'
- 's3:PutObject'
Resource: arn:aws:s3:::mybucketname
这来自AWS文档
当我用测试数据测试它时,它不允许任何数据通过。如果我编辑策略并添加S3FullAccess,它将开始允许测试数据通过S3存储桶。我也试过了
资源:arn:aws:s3::mybucketname/*
得到同样的结果
如果我将CloudFormation脚本更改为
Statement:
- Effect: Allow
Action: 's3:*'
Resource: '*'
它允许测试数据通过
第一条语句有什么问题?这些操作在bucket级别运行,需要arn:aws:s3::mybucketname: s3:GetBucketLocation s3:ListBucket s3:ListBucketMultiportupLoads
这些操作在对象级别运行,需要arn:aws:s3::mybucketname/*资源或特定前缀,如arn:aws:s3::mybucketname/invoices/*: s3:中止多部件上载 s3:GetObject s3:PutObject 通过查看以下位置的“资源类型”列,可以确定某个操作是在Bucket级别还是在对象级别操作: 您可以单独列出这些操作,也可以将它们与以下内容结合使用:
Action:
- 's3:AbortMultipartUpload'
- 's3:GetBucketLocation'
- 's3:GetObject'
- 's3:ListBucket'
- 's3:ListBucketMultipartUploads'
- 's3:PutObject'
Resource:
- arn:aws:s3:::mybucketname
- arn:aws:s3:::mybucketname/*
看看你能不能试试。它是一个在线云信息模板生成器