使用 Cognito 令牌访问 S3 时收到“AccessDenied”

2024-01-01

我正在尝试在存储桶上使用“listObjects”操作。这是通过 WebService 访问的,我不想授予用户控制台访问权限。

角色政策

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "mobileanalytics:PutEvents",
                "cognito-sync:*",
                "cognito-identity:*"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::BucketName"
            ],
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "${cognito-identity.amazonaws.com:sub}/*"
                    ]
                }
            }
        }
    ]
}

信托政策

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "cognito-identity.amazonaws.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "cognito-identity.amazonaws.com:aud": "somevalue"
        },
        "ForAnyValue:StringLike": {
          "cognito-identity.amazonaws.com:amr": "authenticated"
        }
      }
    }
  ]
}

如果我用实际值替换“${cognito-identity.amazonaws.com:sub}”,那么它就可以工作,否则它会给出 AccessDenied 错误。看来我错过了一些非常简单的事情。请帮忙。

Error :

cfId:undefined
code:"AccessDenied"
extendedRequestId:undefined
message:"Access Denied"
region:null
requestId:null
retryDelay:14.650563118124381
retryable:false
statusCode:403
time:Sun May 14 2017 23:11:57 GMT+0530
name:"AccessDenied"
stack:"AccessDenied: Access Denied↵    at constructor.extractError (http://localhost:8081/aws-cognito/aws-sdk-2.3.5.min.js:24:11663)↵    at constructor.callListeners (http://localhost:8081/aws-cognito/aws-sdk-2.3.5.min.js:23:27756)↵    at constructor.emit (http://localhost:8081/aws-cognito/aws-sdk-2.3.5.min.js:23:27465)↵    at constructor.emitEvent (http://localhost:8081/aws-cognito/aws-sdk-2.3.5.min.js:23:15469)↵    at constructor.e (http://localhost:8081/aws-cognito/aws-sdk-2.3.5.min.js:23:11925)↵    at a.runTo (http://localhost:8081/aws-cognito/aws-sdk-2.3.5.min.js:24:27302)↵    at http://localhost:8081/aws-cognito/aws-sdk-2.3.5.min.js:24:27509↵    at constructor.<anonymous> (http://localhost:8081/aws-cognito/aws-sdk-2.3.5.min.js:23:12135)↵    at constructor.<anonymous> (http://localhost:8081/aws-cognito/aws-sdk-2.3.5.min.js:23:15524)↵    at constructor.callListeners (http://localhost:8081/aws-cognito/aws-sdk-2.3.5.min.js:23:27862)"
__proto__:Object

事实证明,这对我来说是一个愚蠢的错误。 Sub 始终采用以下形式: us-east-1:12345678-1234-1234-1234-123456790ab。

我从 Cognito-idp 复制了 SUB,这是错误的。这是错误的 SUB。

SUB 是我们从 Cognito 身份池中获取的 IdentityId。

感谢您的关注。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Cognito 令牌访问 S3 时收到“AccessDenied” 的相关文章

随机推荐

  • “警告 C0007:架构具有未绑定的实例”问题!

    我从 数字设计基础 一书随附的 CD 中获取了以下源代码 当我尝试运行该程序时 出现以下错误 Compiling Fig17 13 vhd C Users SPIDER Desktop EE460 The Final Project Fig
  • 如何在 SQL 中表示和插入有序列表?

    我想在 SQL 表中表示列表 hi hello goodbye good day howdy 按照该顺序 pk i val 1 0 hi 0 2 hello 2 3 goodbye 3 4 good day 5 6 howdy pk 是主键
  • MVC 获取 Azure Active Directory 经过身份验证的用户的名字和姓氏

    我可以使用以下方法获取经过身份验证的用户的用户名 电子邮件格式 var autenticateduser HttpContext User Identity Name 使用 QuickWatch 窗口 我可以使用以下表达式找到名字和姓氏 有
  • 如何在Delphi中定义版本“及以上”ifdefs?

    我正在努力让 Log4D 在 Delphi XE4 中工作 并且遇到一些编译错误 因为它在 use 子句中找不到 Contnrs 除非我将它移到它定义的 ifdef 之外 IFDEF DELPHI5 UP Contnrs ENDIF 经过一
  • 将轮询 Web 服务转换为 RX

    Given public partial class Weather private readonly DispatcherTimer timer new DispatcherTimer private readonly IWeatherD
  • Django 模板内联 jQuery 不起作用

    尝试在我的模板中使用内联 jQuery 以便稍后可以在 AJAX 调用中使用 django url 标签 但我无法让 javascript 工作 在我的子页面中 我扩展了索引页面 其中包含我所有的 javascript 和 jQuery 库
  • 限制减法结果的下限

    我想从标量中减去向量中的值 但是 如果结果小于零 我想将结果设置为零 我尝试过使用max 但它没有给我预期的结果 s 1 750 0 975 0 1125 0 1237 5 1312 5 1400 0 max 1050 s 0 1 300
  • 如何使用apache Camel从mysql表中读取数据并写入到另一个表中

    伙计们 我正在使用 Apache Camel 从 mysql 表读取数据 我在控制台上成功打印它 但根据我的要求 我需要从一个mysql数据库读取数据 然后使用某种条件过滤它 然后将过滤后的数据插入到另一个mysql数据库表中 我在下面发布
  • 如何在Rails中检索图像的EXIF信息

    我正在使用 Rails 回形针在我的页面中显示图像 我想知道如何检索图像的 EXIF 信息 如尺寸 相机型号 高度 宽度等 有人可以帮我吗 谢谢 你给了吗exifr https github com remvee exifr 宝石尝试一下吗
  • 如何在 Java 中覆盖 HTTP 连接中的 DNS

    Curl 具有手动指定将主机解析到哪个 IP 的功能 例如 curl https google com resolve google com 443 173 194 72 113 这在使用 HTTPS 时特别有用 如果只是一个 HTTP 请
  • 在 Scala 工作表中使用自定义枚举时收到错误:java.lang.ExceptionInInitializerError

    UPDATE 2014年9月17日 事实证明 即使先前更新 从 2013 年 2 月 19 日起 中的解决方案无法工作如果一个地方println Value Player2 作为第一个命令 即序数仍然分配不正确 从那以后我创建了一个可验证的
  • Google Play 分阶段推出并修改了屏幕截图

    使用 Google Play 分阶段推出选项 我可以向一小部分用户发布 Android 应用的新版本 根据它的成功程度 我会在给定时间内增加百分比 我假设 因为我找不到记录 如果我将应用程序推广到 10 那么该应用程序的新用户和现有用户都会
  • 使用 nil 合并运算符缩短编译时间

    读完后article https habrahabr ru post 283106 关于快速编译时间 我感兴趣的是为什么使用超过 2 个序列合并运算符会显着增加编译时间 例子 编译时间 3 65 秒 func fn gt Int let a
  • 如何创建自定义 Symfony2 Twig 表单模板块

    我正在开发一个项目 我需要一些自定义表单模板块 不是现有块的修改版本 而是新块 我已经能够创建新的块并让 Symfony Twig 识别和使用它们 但有限制 表单模板块似乎有严格的命名约定 看来模板名称必须恰好包含一个下划线 下划线之前的单
  • Python tkinter 列表框绑定 仅在第二次单击时有效

    如果有其他讨论已经解决了这个问题 我预先表示歉意 但我找不到任何东西 我是 Python 新手 除了 90 年代的一点点 Pascal 之外 我也是编程新手 我正在构建一个带有 tk 输入框的 GUI 供用户输入值 然后将其存储在 sqli
  • Android RecyclerView - 多个Edittext同时更改

    我有一个RecyclerView有很多张牌可以容纳 4EditText 当我在其中输入值时EditText一张卡的值会在随机卡中填充相同的值 令人惊讶的是它不会跳EditText例如 如果我输入值edittext1 of card1它会将相
  • 如何在 Android RecyclerView 上对字符串进行排序?

    我有一个充满 CardView 的 recyclerView 它有 2 个参数 它们都是字符串 其中之一是标题 我想要一个按钮来根据标题按字母顺序对它们进行排序 因为它没有太多元素 所以我决定使用插入排序 即 o n 2 这是我的实现 pu
  • Spring Boot中处理嵌入式Tomcat异常

    我们遇到嵌入式 Tomcat 抛出的问题IllegalArgumentException来自LegacyCookieProcessor 它抛出 500 HTTP 响应代码 我们需要处理异常并对其执行某些操作 具体来说 将其作为 400 发送
  • Android中TextView的TextAppearance属性

    我正在开发我正在使用的 Android 应用程序TextView在屏幕上显示文本 我将此属性用于TextView设置文本的大小android textAppearance android attr textAppearanceMedium
  • 使用 Cognito 令牌访问 S3 时收到“AccessDenied”

    我正在尝试在存储桶上使用 listObjects 操作 这是通过 WebService 访问的 我不想授予用户控制台访问权限 角色政策 Version 2012 10 17 Statement Effect Allow Action mob