当前位置: 首页 > 知识库问答 >
问题:

S3 IAM策略在模拟器中有效,但在现实生活中无效

南门魁
2023-03-14

我有一个客户,我希望能够上传文件,但不能在我的S3存储桶中自由导航。我已为他们创建了一个IAM用户帐户,并应用了以下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1416387009000",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "Stmt1416387127000",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::progress"
            ]
        },
        {
            "Sid": "Stmt1416387056000",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::progress/*"
            ]
        }
    ]
}

有三种说法:

  1. 能够列出所有存储桶(否则他们登录时在S3控制台中看不到任何内容)
  2. 能够列出进度桶的内容
  3. 将对象放入进度桶的能力

用户可以使用他们的用户名和密码(以及我的自定义帐户URL,即https://account.signin.aws.amazon.com/console)登录到AWS控制台。他们可以去控制台的S3部分,看到我所有桶的列表。但是,如果他们点击进度,他们只会得到以下错误消息:

很抱歉你被拒绝这样做。

我已经使用IAM策略模拟器检查了用户是否对存储桶的ARN(ARN:aws:s3:::progress)具有ListBucket权限,并且策略模拟器说应该允许该用户。

我已经作为目标用户注销并再次登录,以防策略仅在注销时刷新,但仍然没有乐趣。

我做错了什么?我错过了什么吗?

共有1个答案

马朝斑
2023-03-14

我的猜测是,当使用AWS控制台时,在它可以列出桶中的对象之前,会进行另一个调用来获取桶位置,并且用户没有进行该调用的权限。您还需要让他帐户访问GetBucketPlace。留档中的相关文本

当您使用Amazon S3控制台时,请注意,当您单击桶时,控制台首先发送GET桶位置请求,以查找部署桶的AWS区域。然后控制台使用存储桶的区域特定终结点发送GET存储桶(列表对象)请求。因此,如果用户要使用控制台,则必须为s3: GetBucket位置操作开通权限,如以下策略语句所示:

{
   "Sid": "RequiredByS3Console",
   "Action": ["s3:GetBucketLocation"],
   "Effect": "Allow",
   "Resource": ["arn:aws:s3:::*"]
}
 类似资料:
  • 我可以发送帖子并从邮递员那里获得请求,但当我实际从浏览器发送请求时,它无法获取记录,并在控制台中显示错误“body:{ error:“Collection ' undefined ' not found”}”。 已尝试Get和Post请求,它们都在POSTMAN中提供数据作为响应,但在浏览器中不起作用。显示错误“body:{ error:“Collection ' undefined ' not

  • 问题内容: 如上所述,我遇到了@ font-face无法在IE9中显示的问题,尽管它在包括IE8及以下版本的所有其他浏览器中都可以正常显示。此外,在我的计算机上本地查看时,IE9会显示字体,而不会完全显示。 使用的代码是: 任何人都知道为什么会发生这种情况吗? 问题答案: 没有答案,只是确认:我有类似的问题。 字体可以使用IETester和原始浏览器在除IE9之外的所有其他IE版本中使用。更改文档

  • 问题内容: INFINITE是这里的关键词。 我希望将其用作。我相信这是中的内置函数。 因此,答案不能像“只做筛子”那样幼稚。 首先,你不知道会消耗多少连续的素数。好吧,假设你一次可以炮制100个。你会使用相同的方法以及质数频率公式吗? 问题答案: 菜谱中的功能可以进一步加快(大约20-25%): 该检查验证x为奇数。然而,由于这两个 q和p是奇数,通过添加2*p下列步骤一半避免随着测试古怪。 擦

  • 问题内容: 我想制作一个用C ++编写的服务器来支持我的游戏。我学习了套接字的基础知识,并编写了一个运行良好的基本聊天程序。现在,我想创建一个像Apache这样的HTTP服务器,但是仅用于AJAX请求- 响应部分。 我认为刚开始时,我复制了一个Apache响应文本,并使用C ++服务器程序发送了准确的响应。 问题是浏览器(Firefox)连接到apache,并且一切正常,除了所有请求均得到正确的响

  • 我正在通过安全连接测试客户端服务器。 我将密钥库证书加载到SOAPUI中,并能够连接到服务器的组件。但是,当我在JMeter v2中配置相同的密钥库证书时。13,我得到了这个错误: 响应代码:非HTTP响应代码:javax。网ssl。SSLHandshakeException响应消息:非HTTP响应消息: 我已经参考了发现的许多建议,并已配置路径到我的密钥库和密码在杰米的system.proper

  • 我的任务是使用策略模式(LFU、LRU和2Q)编写3个缓存实现 在这一点上,我已经编写了LRU实现,无法考虑实现它的条件。 这是我的密码: