要授予访问权限,策略必须具有具有适用资源或条件的操作
Posted
技术标签:
【中文标题】要授予访问权限,策略必须具有具有适用资源或条件的操作【英文标题】:To grant access, policies must have an action that has an applicable resource or condition 【发布时间】:2018-03-19 18:10:13 【问题描述】:政策 json
"Version": "2012-10-17",
"Statement": [
"Sid": "...",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::bucket-name"
]
]
这是在 AWS 控制台中显示为警告的内容:
此策略定义了一些不提供权限的操作、资源或条件。。
该警告中甚至还提供了链接: http://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html?icmpid=docs_iam_console#policy-summary-not-grant-permissions
但是尝试他们的建议并没有帮助,政策摘要仍然抱怨,我仍然无法从我的代码访问存储桶。
更新:当我将资源设置为 "Resource": "*"
时,它会在控制台中停止抱怨,但代码仍然无法上传到存储桶。
Update2:问题是我的代码中的存储桶名称不正确(因为我尝试了不同的教程并且没有更改其中的存储桶名称)。
【问题讨论】:
我建议修改您的策略(现在可以使用),不要使用通配符 S3 权限。 【参考方案1】:我遇到的一个原因是我将存储桶资源列为:
arn:aws:s3:::my-datasets
arn:aws:s3:::my-datasets/*
但在我的“我的数据集”存储桶下,没有子文件夹。因此,“/*”使 AWS 感到困惑,因为当它评估此策略时,它在“my-datasets”下找不到任何内容。在“我的数据集”下创建一个新文件夹后,警告消失了。
【讨论】:
以上是关于要授予访问权限,策略必须具有具有适用资源或条件的操作的主要内容,如果未能解决你的问题,请参考以下文章