Подтвердить что ты не робот

Как долго я должен ждать после применения политики AWM IAM до того, как она будет действительна?

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

Например, это может быть или не быть успешным (я использую Java 1.6.6 SDK):

  • Начните с пользователя, который может читать из определенного ведра
  • Очистить пользовательские политики (политики списков затем вызывать "deleteUserPolicy" для каждого)
  • Подождите, пока пользователь не будет иметь политики пользователя (вызовите "listUserPolicies", пока он не вернет пустой набор)
  • Попытка прочитать из ведра (это должно завершиться неудачно)

Если я поставил точку останова между # 3 и # 4 и подождал несколько секунд, пользователь не сможет прочитать из ведра, что я и ожидаю. Если я удалю точки останова, пользователь может прочитать из ведра, что неправильно.

(Это также несовместимо, когда я добавляю политику, затем обращаюсь к ресурсу)

Я хотел бы знать, когда изменение политики повлияло на компонент (S3, SQS и т.д.), а не только на систему IAM. Есть ли способ получить квитанцию ​​или подтверждение от этого? Или, может быть, есть определенное количество времени, чтобы ждать?

Есть ли какая-либо документация по внутренним политическим приложениям?

(FYI Я скопировал свой вопрос из https://forums.aws.amazon.com/thread.jspa?threadID=140383&tstart=0)

4b9b3361

Ответ 1

Фраза "почти сразу" используется 5 раз в IAM FAQ и, конечно, несколько субъективна.

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

Я не знаю, считали ли вы это, но полностью в пределах возможности, что на самом деле вы можете на шаге 4 в вашем потоке увидеть последовательность проходов, сбоев, проходов, проходов, сбоев, сбоев, fail, fail... потому что ни ведро, ни объект в ведре на самом деле одна вещь в одном месте, о чем свидетельствует смешанная согласованность модель различных действий в S3, где новые объекты мгновенно непротиворечивы, в то время как перезаписывает и удаляет, в конечном итоге, согласованно... так что понятие политики, имеющей эффект "или имело эффект" на ведре или объекте, совершенно смысловая концепция, поскольку применение политики само по себе является, безусловно, распределенным событием.

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

Официальные ответы AWS на этот пост форума предоставляют дополнительную информацию:

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

Сопроводительный ответ на вопрос, что делать в то же время, - "попробуйте еще раз".

Мы рекомендуем цикл повтора после небольшой начальной задержки, так как в большинстве случаев вы увидите, что ваши изменения отражаются довольно быстро. Если вы спите, ваш код будет ждать слишком долго в большинстве случаев и, возможно, недостаточно долго для редких исключений.

Мы активно контролируем производительность системы репликации. Но, как и S3, мы гарантируем только конечную консистенцию, а не какую-либо конкретную верхнюю границу.