Неправильная конфигурация пула удостоверений в AWSIoT - PullRequest
0 голосов
/ 04 июня 2018

Я хочу подключиться к услуге MQTT моего клиента на AWS.Я нашел этот Amazon IoT Sample , который экономит мне много времени, чтобы покопаться в API и найти процесс подключения службы AWS MQTT.

В моем проекте я изменил константы вConstants.swift чтобы получить доступ к MQTT-сервису моего клиента, как показано ниже:

let AWSRegion = AWSRegionType.USWest2 // e.g. AWSRegionType.USEast1
let CognitoIdentityPoolId = "us-west-2:e95087f0-48a7-4732-b482-4614c7c63db6"
let CertificateSigningRequestCommonName = "MyApp"
let CertificateSigningRequestCountryName = "MyCountry"
let CertificateSigningRequestOrganizationName = "MyOrganization"
let CertificateSigningRequestOrganizationalUnitName = "MyUnit"
let PolicyName = "pubsub_policy"

// This is the endpoint in your AWS IoT console. eg: https://xxxxxxxxxx.iot.<region>.amazonaws.com

let IOT_ENDPOINT = "https://<endpoint>.amazonaws.com" // endpoint is entered correctly!
let ASWIoTDataManager = "MyIotDataManager"

Но когда я нажимаю Connect, приложение выдает эту ошибку:

2018-06-04 17: 12: 59: 992 IoTSampleSwift [4999: 2464150] Тело ответа: {"__type": "InvalidIdentityPoolConfigurationException", "message": "Неправильная конфигурация пула идентификаторов. Проверьте назначенные роли IAM для этого пула."}

2018-06-04 17: 12: 59: 994 IoTSampleSwift [4999: 2464150] Ошибка GetCredentialsForIdentity.Ошибка: [Ошибка домена = com.amazonaws.AWSCognitoIdentityErrorDomain Code = 5 "(null)" UserInfo = {__ type = InvalidIdentityPoolConfigurationException, message = Неправильная конфигурация пула идентификаторов.Проверьте назначенные роли IAM для этого пула.}]

2018-06-04 17: 12: 59: 995 IoTSampleSwift [4999: 2464150] Невозможно обновить.Ошибка: [Ошибка домена = com.amazonaws.AWSCognitoIdentityErrorDomain Code = 5 "(null)" UserInfo = {__ type = InvalidIdentityPoolConfigurationException, message = Неправильная конфигурация пула идентификаторов.Проверьте назначенные роли IAM для этого пула.}]

2018-06-04 17: 13: 00: 017 IoTSampleSwift [4999: 2464150] ошибка: Ошибка Domain = com.amazonaws.AWSCognitoIdentityErrorDomain Code = 5 "(null) "UserInfo = {__ type = InvalidIdentityPoolConfigurationException, message = Неверная конфигурация пула идентификаторов.Проверьте назначенные роли IAM для этого пула.}

  • Что-то не так с моими параметрами в Constants.swift?
  • Есть ли что-то, что можно включить в службе моего клиента, чтобы я мог получить к ней доступ?
  • Согласно 10): файл p12: если он доступен, то мне не нужно динамически создавать ключи и сертификаты каждыйвремя мне нужно для доступа к этому сервису MQTT?Но мой клиент должен создать его на своей Amazon AWS IoT Console и выдать мне сертификат / ключ, чтобы я мог сгенерировать этот файл p12 на моем MAC?

Извините, у меня естьзадавать эти простые вопросы, поскольку я новичок в AWS IoT API.

С уважением,

1 Ответ

0 голосов
/ 31 августа 2018

Было бы полезно узнать, какой тип IoT-аутентификации вы используете.Если вы используете Cognito для аутентификации IoT в AWS, то вам определенно поможет следующее:

В консоли IAM в AWS перейдите к разделу Роли.Нажмите на свою роль и просмотрите доверительные отношения.Проще увидеть, где находится эта вкладка на рисунке ниже. enter image description here

Есть большая вероятность, что значение для условия StringEquals соответствует , а не , чтобы соответствовать значениюдля вашего удостоверения личности.Вы можете просмотреть это в Cognito> Федеративные удостоверения> Щелкните синюю ссылку с «Имя вашего пула удостоверений здесь»> Изменить пул удостоверений (вверху справа), и ваш идентификатор пула удостоверений находится вверху.В этом случае нажмите «Изменить доверительные отношения» (см. Изображение ниже) и измените его так, чтобы значение ключа «cognito-identit.amazonaws.com::aud» совпадало с идентификатором пула идентификаторов.

...