【问题标题】:Amazon Kendra: AccessDeniedException with Cognito roleAmazon Kendra:具有 Cognito 角色的 AccessDeniedException
【发布时间】:2020-10-16 13:05:38
【问题描述】:

我一直在尝试让 Amazon Kendra 使用我们网站上的 Java SDK 工作,但这个错误一直困扰着我。

背景: Kendra 索引已创建,并且连接到 S3 存储桶的连接器已就位。

如果我在控制台中使用 Kendra 中的搜索功能,则会返回有效数据并且一切正常。

现在访问我们的网站: 使用带有 cognito 身份池的 Java SDK 调用 Kendra,我们收到以下错误:

错误

AccessDeniedException:用户:arn:aws:sts::accountnumber:assumed-role/Cognito_botpoolUnauth_Role/CognitoIdentityCredentials 无权执行:kendra:Query on resource:arn:aws:kendra:eu- west-1:账号/kendra-test-index

请注意,我们在Cognito_botpoolUnauth_Role 附加了一项允许完全访问权限的政策。

这让我很困惑,因为我反复检查但没有成功。

任何指导将不胜感激。

更新

好的,我回来了

我已经检查了 SCP。没有 SCP 禁止使用 Kendra。

我也看过信任关系,看起来也不错:

{ “版本”:“2012-10-17”, “陈述”: [ { “效果”:“允许”, “主要的”: { “联合”:“cognito-identity.amazonaws.com” }, "动作": "sts:AssumeRoleWithWebIdentity", “健康)状况”: { “字符串相等”:{ “cognito-identity.amazonaws.com:aud”:“eu-west-1:532e0bcd-fc6e-4192-a3ef-37f2ae188820” }, "ForAnyValue:StringLike": { “cognito-identity.amazonaws.com:amr”:“未经身份验证” } } } ] }

【问题讨论】:

    标签: amazon-web-services amazon-cognito amazon-iam


    【解决方案1】:

    如果我在控制台中使用 Kendra 中的搜索功能,则会返回有效数据,并且一切正常。

    该错误与您在控制台中查询 Kendra 的权限无关

    错误与名为Cognito_botpoolUnauth_Role 的角色有关,该角色没有此类权限。

    您必须进入 IAM 控制台,找到相关角色,并验证是否需要访问 Kendra 的权限。如果需要,您可以将它们作为内联策略添加到角色中。

    但是,即使您的角色需要权限,它仍可能被拒绝访问资源。例如,AWS 组织的 SCP 可能会禁止这样做。此外,Kendra 上可能存在拒绝此类访问的基于资源的策略。如果 Kendra 需要,其他可能性可能是访问 KMS。

    【讨论】:

    • 感谢@Marcin 我已经编辑了原始帖子。我遇到了障碍,因为我不确定它还能是什么
    • 你最终发现了吗?我也在做同样的事情。
    猜你喜欢
    • 2020-01-06
    • 1970-01-01
    • 2023-03-19
    • 2016-09-11
    • 2019-10-28
    • 2018-12-15
    • 2017-04-19
    • 2020-03-21
    • 2010-11-29
    相关资源
    最近更新 更多