2014-09-04 6 views
5

Я застрял, пытаясь использовать AWS с iOS уже 2 дня. Я загрузил пример проекта отсюда: https://github.com/awslabs/aws-sdk-ios-samplesAmazon Web Service SDK iOS

Я сделал то же, что и шаги, сказанные мной, я использовал cocoapods, чтобы связать все библиотеки.

Я также создал ведро и снова последовали шаги, о том, как получить идентификатор для того, чтобы изменить его в коде, как показано ниже:

AWSCognitoCredentialsProvider *credentialsProvider = [AWSCognitoCredentialsProvider 
                 credentialsWithRegionType:AWSRegionUSEast1 
                 accountId:AWSAccountID 
                 identityPoolId:CognitoPoolID 
                 unauthRoleArn:CognitoRoleUnauth 
                 authRoleArn:nil]; 

Так в основном, когда Im пытается загрузить некоторые изображения/файлы (в примере, используя S3 сервис хранения на Amazon, я получаю сообщение об ошибке:

2014-09-04 15:11:57.475 S3TransferManagerSample[5437:400b] AWSiOSSDKv2 [Error] AWSCredentialsProvider.m 
    line:356 | __40-[AWSCognitoCredentialsProvider refresh]_block_invoke299 | Unable to refresh. 
    Error is [Error Domain=com.amazonaws.AWSSTSErrorDomain Code=0 "The operation couldn’t be completed. (com.amazonaws.AWSSTSErrorDomain error 0.)" 
    UserInfo=0x14d17770 {Type=Sender, Message=Not authorized to perform sts:AssumeRoleWithWebIdentity, __text=(
"\n ", 
"\n ", 
"\n ", 
"\n " 
), Code=AccessDenied}] 

Просто чтобы быть ясно, я уже создал роль и дал ему политику: AdministratorAccess и использовал Role ARN, чтобы установить

unauthRoleArn:CognitoRoleUnauth 

Я прочитал документацию и, похоже, не нашел проблемы. У меня такое чувство, что оно имеет какое-то отношение к роли и политике, придаваемой роли.

Я бы очень признателен за любые советы о том, как начать работу или как исправить эту проблему.

Спасибо, и если вам нужна дополнительная информация по этому вопросу, не стесняйтесь комментировать, и я дам больше, так как вопрос немного затянулся.

ответ

5

ошибка, с которой вы столкнулись, связана с доверительными отношениями в вашей роли, а не с правами на учетные данные о роли.

Вы должны убедиться, что доверительные отношения Вашей роли в:

  1. Trust пул идентичности вы используете (в ауд совпадает с бассейном идентификатора идентичности).
  2. Trust тождество с помощью прилагаемого аутентификации (амр соответствует неаутентифицированному или подлинности в зависимости от вашего случая использования).

Будьте внимательны при изменении ролей, созданных во время установки, или повторного использования ролей, поскольку эти 2 значения могут не совпадать и генерировать ошибку выше.

Вы также можете найти this blog post, помогающий понять, как работает Cognito Authentication.

+0

Когда я создал роль, я только изменил разрешения этой роли на доступ администратора, я ничего не изменил. Должен ли я изменить доверительные отношения этой роли? Я не знаю, к чему это нужно. – RJiryes

+0

Также, что вы имеете в виду, если это было «для этого пула идентификаторов»? Я создал пул идентификаторов как часть службы Cognito, а роли настраиваются в консоли управления IAM. Я читал много вещей, касающихся AWS, и я думаю, что немного запутался. Извините, если мне кажется немного неясным. Благодарю. – RJiryes

+0

Я пошел вперед и удалил мой текущий пул идентификаторов и создал новый, ошибка, которую я получаю, ушла. Но теперь, не загружая файлы, я получаю еще одну ошибку при попытке загрузить: – RJiryes

Смежные вопросы