IAM: Режисер чи вишибала
Стаття від нашого DevOps - Володимира
Всім привіт! Сьогодні на черзі ще один сервіс, який є найважливішим для тих, хто прагне правильно керувати доступом до ресурсів у своєму аккаунті AWS. Тож гайда!
P.S. Ті, хто не прагне, все одно ним користуються :)
IAM
По традиції почнемо з абревіатури. IAM походить від Identity and Access Management (Служба Ідентифікації та Управління Доступом). Цей сервіс відповідальний за дозволи на створення та внесення змін до ресурсів у вашому аккаунті AWS як користувачами, так і іншими ресурсами. Також за його допомогою ви маєте змогу створювати користувачів, поєднувати їх у групи та надавати певні повноваження як групам, так і певним користувачам окремо. Тепер нумо розбиратись, що за що відповідає.
Users (Користувачі)
Користувачі — це облікові записи всередині вашого аккаунту AWS, які дають змогу доступу до ваших ресурсів іншим людям (розробникам, наприклад) або програмному забезпеченню. Тут ви можете створювати користувачів, додавати їх у групи, додавати багаторівневу аутентифікацію та таке інше. Після створення аккаунту AWS ви маєте так званого Рут користувача, що є найголовнішим користувачем. Найкращою практикою є прив’язувати багаторівневу аутентифікацію, створити користувача-адміністратора та виконувати всі інші дії з аккаунтом від імені саме цього користувача. Окрім того, не створювати ключі доступу Рут користувача, або якщо довелося, то обов’язково видаляти.

Groups (Групи)
Ви можете групувати користувачів та призначати їм спільні політики, тим самим спрощуючи керування користувачами та рівнем їх повноважень.

Policy (Політики доступу)
Політики доступу, далі полісі, це документ у форматі JSON, у якому визначаються, які дії дозволені або заборонені користувачеві, групі або ролі. Причепити їх можна до ролі, до користувача або до ресурсів. Політики визначаються на основі дозволів (allow) та заборон (deny) на усі або певні дії та на усі або певні ресурси. Також у полісі можна задати умови за якими повноваження будуть видані об’єкту до якого вона прив’язана.

Roles (Ролі)
Ролі — це така сутність сервісу IAM, яка дозволяє надати тимчасові дозволи доступу до ресурсів у вашому аккаунті різним об’єктам AWS (наприклад, ECS або EC2). Вони дозволяють забезпечити необхідний та обмежений доступ до ресурсів там, де це потрібно. Також за допомогою ролей ви можете надати доступ до свого аккаунту ресурсам іншого аккаунту. Як це працює? Ви створюєте роль, додаєте до неї необхідні полісі. Чіпляєте її, наприклад, до ЕС2 інстансу, та при необхідності отримати певний доступ. Він підхоплює цю полісі та за її допомогою виконує потрібні дії. Після цього повертає її на місце і більше не має тих повноважень. Найкращою практикою буде надавати строго тільки ті дозволи, які потрібні. Не більше, не менше.

Підсумуємо
Дуже важливо розібратися в тому як працює AWS IAM. Щоб бути впевненим, що ніхто не зможе потрапити до вашого аккаунту, та користуватись ресурсами вашим коштом, потрібно розуміти як керувати усім тим про що ми сьогодні поговорили.
Діліться враженнями у коментарях, та про які ще ресурси хотіли б почитати.
P.S. тож як гадаєте, режисер чи вишибала? Пишіть у коментарях :)