У меня есть я, роль для экземпляра EC2 (так называемый Профиль Экземпляра) с двумя присоединенными политиками, предоставляя полный доступ к SQS и S3. Существует выполнение экземпляра EC2, связанное с этой ролью. Это запускает несколько приложений, которые действительно используют временные учетные данные, и все хорошо работает.
Прямо сейчас для одного из моих приложений нужен также доступ к SNS. Я изменил, я - роль, добавляя Встроенную политику с генератором политики, позволяя определенные вызовы API конкретной темы SNS. Однако после модификации я - роль при попытке aws sns list-topics
Я получаю следующую ошибку (соответствующий arn's, замененный тройным X):
User: XXX is not authorized to perform: SNS:ListTopics on resource: XXX:*
Добавление политики требует, чтобы экземпляр был перезапущен? Или сделайте я должен ожидать временных учетных данных (/latest/meta-data/iam/security-credentials/iam-role-name
) истечь? Я могу так или иначе вызвать истечение тех учетных данных?
Править: На последний вопрос, кажется, отвечаю я - FAQ. Временные учетные данные не могут быть повторно активированы или расширены.
После множества различных подходов выяснилось, что ограничение моей политики для одной очереди вызывает все проблемы. Я предположил, что когда политика применяется к единой очереди и вы делаете ListTopics, то вы получаете только ту тему, к которой имеете доступ. Однако в моем SNS было несколько других тем, и, скорее всего, их наличие в результате ListTopics считалось нарушением политики. Когда я заменил имя определенной темы на '*' и сохранил политику, то неминуемо (нет необходимости в истечении срока действия мандатов или перезапуске экземпляра EC2) она начала работать
.