1

我很确定我正确设置了我的 IAM 角色(我确实将 ComprehendFullAccess 策略附加到该角色)并且 Cognito 池也已正确设置(我知道这一点是因为我也在使用 Rekognition 并且它适用于 IAM 角色和我创建的 Cognito ID 池)但每次我尝试向 AWS Comprehend 发送请求时都会收到错误消息

Error Domain=com.amazonaws.AWSServiceErrorDomain Code=6 "(null)" UserInfo={__type=AccessDeniedException, Message=User: arn:aws:sts::<my sts>:assumed-role/Cognito_<my id pool name>Unauth_Role/CognitoIdentityCredentials is not authorized to perform: comprehend:DetectEntities}

知道在这种情况下我能做什么吗?我尝试创建一个新的 Cognito 池并创建一个自定义 IAM 角色,该角色实际上只允许comprehend:DetectEntities但仍然无法正常工作。

4

1 回答 1

0

目前将 Cognito 增强流与 Comprehend 服务一起使用存在限制。请使用以下构造函数,您可以在其中指定身份池中角色的 ARN。这使用获取凭据的基本流程并与 Cognito 一起使用。

AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] 
          initWithRegionType:AWSRegionUSEast1
              identityPoolId:@"identityPoolId"
               unauthRoleArn:@"unauthRoleArn"
                 authRoleArn:@"authRoleArn"
     identityProviderManager:nil]; // identityProviderManager is required for federating an identity provider with Cognito
于 2018-07-20T17:48:25.727 回答