要授予访问权限,策略必须具有具有适用资源或条件的操作

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”下找不到任何内容。在“我的数据集”下创建一个新文件夹后,警告消失了。

【讨论】:

以上是关于要授予访问权限,策略必须具有具有适用资源或条件的操作的主要内容,如果未能解决你的问题,请参考以下文章

shiro

windows远程登录要登录到此远程计算机,您必须被授予通过终端服务登陆的权限

AD域文件权限管理

IAM 权限策略是不是可以用于允许访问跨账户资源?

如何限制/授予对子进程内存的读/写访问权限?

API Guide(十四)之Permissions