Amazon web services Amazon Kendra:AccessDeniedException与Cognito角色

Amazon web services Amazon Kendra:AccessDeniedException与Cognito角色,amazon-web-services,amazon-cognito,amazon-iam,Amazon Web Services,Amazon Cognito,Amazon Iam,我一直试图让Amazon Kendra使用我们网站上的Java SDK工作,这个错误一直困扰着我 背景: Kendra索引已经创建,S3存储桶的连接器已经就位 如果我在控制台中使用Kendra中的搜索功能,将返回有效数据,并且一切正常 现在转到我们的网站: 使用带有cognito标识池的Java SDK调用Kendra,我们收到以下错误: 错误 AccessDeniedException:用户:arn:aws:sts::accountnumber:假定角色/Cognito_botpoolUnau

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

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

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

现在转到我们的网站: 使用带有cognito标识池的Java SDK调用Kendra,我们收到以下错误:

错误

AccessDeniedException:用户:arn:aws:sts::accountnumber:假定角色/Cognito_botpoolUnauth_角色/CognitoIdentityCredentials无权执行:kendra:资源查询:arn:aws:kendra:eu-west-1:accountnumber/kendra测试索引

请注意,我们有一个允许对
Cognito\u botpoolUnauth\u角色进行完全访问的策略

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

任何指导都将不胜感激

更新

好的,我回来了

我已经查过SCP了。没有SCP禁止使用肯德拉

我也观察了信任关系,它似乎也很好:

{ “版本”:“2012-10-17”, “声明”:[ { “效果”:“允许”, “委托人”:{ “联邦”:“cognito identity.amazonaws.com” }, “行动”:“sts:假定身份”, “条件”:{ “StringEquals”:{ “cognito identity.amazonaws.com:aud”:“eu-west-1:532e0bcd-fc6e-4192-a3ef-37f2ae188820” }, “ForAnyValue:StringLike”:{ “cognito identity.amazonaws.com:amr:“未经验证” } } } ] }

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

该错误与您在console中查询Kendra的权限无关

错误与名为
Cognito\u botpoolUnauth\u role
的角色有关,该角色没有此类权限

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

但是,即使您的角色具有所需的权限,它仍可能被拒绝访问资源。例如,AWS组织的SCP可能禁止这样做。此外,Kendra上可能存在拒绝此类访问的基于资源的策略。如果肯德拉需要,另一种可能是进入KMS

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

该错误与您在console中查询Kendra的权限无关

错误与名为
Cognito\u botpoolUnauth\u role
的角色有关,该角色没有此类权限

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


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

谢谢@Marcin我编辑了原始帖子。我遇到了一个路障,因为我不知道它还能表现出什么,你最终发现了吗?我在做同样的事情。谢谢@Marcin,我已经编辑了原始帖子。我遇到了一个路障,因为我不知道它还能表现出什么,你最终发现了吗?我在用同样的东西旋转轮子。