Я хочу подписаться на Iot shadow, используя учетные данные Cognito. Для этого я должен прикрепить политику к идентифицированному идентификатору Cognito. Значит, после входа пользователя в систему пользователь получит идентификационный номер. Затем я присоединяю ранее созданную политику iot к этой идентичности. Политика, которую я подключаю, имеет доступ для подключения и подписки теневого устройства.
Метод, который я использую для этого 'AttachPrinciplePolicy' / 'AttachPolicy'.
Оба эти метода принимают два параметра: 1. имя политики, 2. идентификатор, к которому я хочу присоединиться.
Здесь проблема касается безопасности. Поскольку после аутентификации пользователь может присоединить любую политику, просто указав имя политики. Хакер может использовать некоторые методы для изменения имени политики в коде, тогда это может вызвать серьезную уязвимость.
Я хочу ограничить пользователя таким образом, чтобы пользователь, прошедший проверку подлинности cognito, мог присоединить только определенную политику, которая имеет доступ для подключения и подписки тени.
Может ли это быть сделано с использованием некоторых ролей / политики IAM? Чтобы пользователь мог прикрепить только конкретную политику?
Пожалуйста, предложите.
Я пытался использовать политику IAM, но когда я указываю определенную политику arn для ресурса действия AttachPrinciplePolicy, она не работает.
Политика IAM, которую я использовал, ниже
{
"Action": [
"iot:AttachPolicy",
"iot:AttachPrincipalPolicy"
],
"Resource": [
"arn:aws:iot:us-east-2:XXXXXXXXXX:policy/AccessByCognito_Policy"
],
"Effect": "Allow"
}
Можно ли это сделать с помощью некоторых ролей / политики IAM? Так что пользователь может прикрепить только конкретную политику?
Или каким-либо другим способом добиться этого?