如何访问已禁用公共访问的s3 bucket



我有一个s3 bucket,它保存了我正在创建的代理的一些配置文件。通过terraform,我创建了一个ec2实例,它将运行代理,在该实例的启动脚本中,我试图访问s3 bucket并复制所需的文件。

在启动脚本中,我使用此命令复制文件aws s3 cp s3://test-bucket/ . --recursive

目前,在我为实例创建的iam角色中,我授予它以下权限:

service_policy_document = {
SID = "LaunchScriptPermissions"
actions = [
"s3:GetObject",
"s3:ListObjects",
"s3:ListAllMyBuckets",
"s3:ListBuckets",
]
resources = ["*"]
}

我使用的是一个模块,这就是为什么权限在service_policy_document下,但操作下的东西是实例所获得的权限

当我尝试运行脚本时,它失败了,并出现错误[ 113.369327] cloud-init[1581]: fatal error: An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied

你知道还需要添加什么来解决这个问题吗?

谢谢!:(

尝试用s3:ListBucket替换s3:ListBuckets。只需删除单词末尾的s即可。

相关内容

  • 没有找到相关文章

最新更新