gpt4 book ai didi

amazon-web-services - 用于 S3 完全访问的 Cloudformation AWS::IAM::Policy 的正确语法是什么

转载 作者:行者123 更新时间:2023-12-03 07:21:14 25 4
gpt4 key购买 nike

在 CloudFormation 脚本中,我创建了一个应用于 Kinesis Firehose 的 IAM::Policy。它有以下政策文件声明

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: '*'

它允许测试数据通过。

第一个语句有什么问题?

最佳答案

这些操作在存储桶级别运行,需要 arn:aws:s3:::mybucketname:

资源
  • s3:GetBucketLocation
  • s3:ListBucket
  • s3:ListBucketMultipartUploads

这些操作在对象级别运行,需要 arn:aws:s3:::mybucketname/* 资源(或特定前缀,例如 arn:aws:s3:::mybucketname/invoices/*):

  • s3:AbortMultipartUpload
  • s3:GetObject
  • s3:PutObject

您可以通过查看以下内容的资源类型列来确定操作是在存储桶级别还是对象级别运行:Actions, Resources, and Condition Keys for Amazon S3 - AWS Identity and Access Management

您可以单独列出操作,也可以将它们与以下内容组合起来:

    Action:
- 's3:AbortMultipartUpload'
- 's3:GetBucketLocation'
- 's3:GetObject'
- 's3:ListBucket'
- 's3:ListBucketMultipartUploads'
- 's3:PutObject'
Resource:
- arn:aws:s3:::mybucketname
- arn:aws:s3:::mybucketname/*

关于amazon-web-services - 用于 S3 完全访问的 Cloudformation AWS::IAM::Policy 的正确语法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56765385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com