gpt4 book ai didi

amazon-web-services - 如何更改 CloudFormation 模板以更正 s3 容器上的访问拒绝 ListObjectV2 操作

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

我有一个云形成模板,我正在尝试创建一个托管策略,在其中我可以控制对文件夹内对象的访问。我曾经有过这个工作,但我更改了模板中的某些内容,并且需要第二双眼睛来希望指出拼写错误或权限设置错误的地方。

CF (yaml) 定义如下:

 - Sid: ExternalLISTReturns
Effect: Allow
Action:
- s3:ListBucket
Condition:
ForAnyValue:StringEquals:
s3:prefix: "folder1/returns/*"
Resource: !Join
- 's3:prefix'
- - !Ref S3ContainerName
- Sid: ExternalLISTUploads
Effect: Allow
Action:
- s3:ListBucket
Condition:
ForAnyValue:StringEquals:
s3:prefix: "folder1/uploads/*"
Resource: !Join
- 's3:prefix'
- - !Ref S3ContainerName

打包并部署后,JSON 定义在策略管理器中如下所示:

{
"Version": "2012-10-17",
"Statement": [
{
"Condition": {
"ForAnyValue:StringEquals": {
"s3:prefix": "folder1/returns/*"
}
},
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::mydeployedbucket",
"Effect": "Allow",
"Sid": "ExternalLISTReturns"
},
{
"Condition": {
"ForAnyValue:StringEquals": {
"s3:prefix": "folder1/uploads/*"
}
},
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::mydeployedbucket",
"Effect": "Allow",
"Sid": "ExternalLISTUploads"
}
]
}

该策略看起来有效,但是当我尝试使用 cli 列出项目时

aws s3 ls s3://mydeployedbucket/folder1/uploads --profile testaccount

我收到错误

An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied

是否有任何东西因缺失或需要而跳出来?目的是仅允许与此政策关联的用户列出带有前缀 folder1/uploadsfolder1/returns 的对象

最佳答案

因此,在深入研究之后,我发现问题在于我如何声明 LIST Bucket 的资源。我最初将资源定义为对象而不是存储桶。我还发现我可以在条件定义中使用 StringLikeStringEquals 也有效,但我不必显式声明 ForAnyValue:我更新了 CF 模板,因此 LIST 权限如下所示:

  - Sid: ExternalLISTUploads
Effect: Allow
Action:
- s3:ListBucket
Condition:
StringLike:
s3:prefix: "folder1/uploads/*"
Resource: !Join
- ''
- - !Ref S3ContainerName

关于amazon-web-services - 如何更改 CloudFormation 模板以更正 s3 容器上的访问拒绝 ListObjectV2 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57060774/

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