Políticas Cognito / IAM y S3 Obtener object

Estoy tratando de integrar S3 y Cognito en mi aplicación iOS, hasta ahora no con éxito. Creo que el error está conectado a mi política de IAM para usuarios Auth y Unuth. Entonces, aquí está mi política:

{ "Version": "2012-10-17", "Statement": [{ "Effect":"Allow", "Action":"cognito-sync:*", "Resource":["arn:aws:cognito-sync:us-east-1:XXXXXXXXXXXX:identitypool/${cognito-identity.amazonaws.com:aud}/identity/${cognito-identity.amazonaws.com:sub}/*"] }, { "Effect":"Allow", "Action": "s3:*", "Resource": ["arn:aws:s3:::my_bucket", "arn:aws:s3:::my_bucket/*"] } ] } 

aquí es donde llamo a S3:

  AWSS3GetObjectRequest *getObjectRequest = [[AWSS3GetObjectRequest alloc] init]; getObjectRequest.key = KEY; getObjectRequest.bucket = BUCKET; //default service has been configunetworking previously AWSS3 *s3 = [[AWSS3 new] initWithConfiguration:[AWSServiceManager defaultServiceManager].defaultServiceConfiguration]; [[s3 getObject:getObjectRequest] continueWithBlock:^id(BFTask *task) { if(task.error) { NSLog(@"Error: %@",task.error); } else { NSLog(@"Got File"); NSData *data = [task.result body]; NSString *urlString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSURL *url = [[NSURL alloc] initWithString:urlString]; if ([[UIApplication shanetworkingApplication] canOpenURL:url]) { [[UIApplication shanetworkingApplication] openURL:url]; } } return nil; }]; 

y aquí está el error:

Error: Error Domain = com.amazonaws.AWSSTSErrorDomain Code = 0 "AccessDenied – No autorizado para realizar pts: AssumeRoleWithWebIdentity" UserInfo = 0x10a23e0a0 {NSLocalizedDescription = AccessDenied – No autorizado para realizar pts: AssumeRoleWithWebIdentity}

Entonces, ¿qué estoy haciendo mal?

El error que está experimentando

 Not authorized to perform sts:AssumeRoleWithWebIdentity 

Se debe a un error en su política de confianza, no a su política de acceso.

¿Es este el rol que se creó como parte del asistente de configuration de Cognito? ¿Modificaste el rol de alguna manera? El rol creado por la console de Cognito se vincula al grupo de identidad específico con el que se creó. Asegúrese de que está utilizando la function creada con el grupo de identidades que está utilizando en su aplicación.