AWS - KMS Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
AWS Служба управління ключами (AWS KMS) представлена як керована служба, що спрощує процес для користувачів створювати та керувати основними ключами замовника (CMK). Ці CMK є невід'ємною частиною шифрування даних користувачів. Помітною особливістю AWS KMS є те, що CMK переважно захищені апаратними модулями безпеки (HSM), що підвищує захист шифрувальних ключів.
KMS використовує симетричну криптографію. Це використовується для шифрування інформації в спокої (наприклад, всередині S3). Якщо вам потрібно шифрувати інформацію в русі, вам потрібно використовувати щось на зразок TLS.
KMS є сервісом, специфічним для регіону.
Адміністратори Amazon не мають доступу до ваших ключів. Вони не можуть відновити ваші ключі і не допомагають вам з шифруванням ваших ключів. AWS просто адмініструє операційну систему та основний додаток, нам потрібно адмініструвати наші шифрувальні ключі та керувати тим, як ці ключі використовуються.
Основні ключі замовника (CMK): Можуть шифрувати дані розміром до 4KB. Вони зазвичай використовуються для створення, шифрування та дешифрування DEK (Ключі шифрування даних). Потім DEK використовуються для шифрування даних.
Основний ключ замовника (CMK) є логічним представленням основного ключа в AWS KMS. На додаток до ідентифікаторів основного ключа та іншої метаданих, включаючи дату створення, опис та стан ключа, CMK містить матеріал ключа, який використовується для шифрування та дешифрування даних. Коли ви створюєте CMK, за замовчуванням AWS KMS генерує матеріал ключа для цього CMK. Однак ви можете вибрати створити CMK без матеріалу ключа, а потім імпортувати свій власний матеріал ключа в цей CMK.
Існує 2 типи основних ключів:
CMK, керовані AWS: Використовуються іншими службами для шифрування даних. Вони використовуються службою, яка їх створила в регіоні. Вони створюються перший раз, коли ви реалізуєте шифрування в цій службі. Обертаються кожні 3 роки, і їх неможливо змінити.
CMK, керовані замовником: Гнучкість, обертання, налаштовуваний доступ і політика ключів. Увімкнення та вимкнення ключів.
Шифрування конвертів в контексті Служби управління ключами (KMS): Система ієрархії з двох рівнів для шифрування даних за допомогою ключа даних, а потім шифрування ключа даних за допомогою основного ключа.
Ці політики визначають хто може використовувати та отримувати доступ до ключа в KMS.
За замовчуванням:
Вона надає IAM облікового запису AWS, який володіє ключем KMS доступ для управління доступом до ключа KMS через IAM.
На відміну від інших політик ресурсів AWS, політика ключа AWS KMS не надає автоматично дозволу жодному з принципалів облікового запису. Щоб надати дозвіл адміністраторам облікового запису, політика ключа повинна містити явну заяву, яка надає цей дозвіл, як ця.
Без дозволу облікового запису("AWS": "arn:aws:iam::111122223333:root"
) дозволи IAM не працюватимуть.
Вона дозволяє обліковому запису використовувати політики IAM для надання доступу до ключа KMS, на додаток до політики ключа.
Без цього дозволу політики IAM, які дозволяють доступ до ключа, є неефективними, хоча політики IAM, які забороняють доступ до ключа, все ще є ефективними.
Вона зменшує ризик того, що ключ стане некерованим, надаючи дозвіл на контроль доступу адміністраторам облікового запису, включаючи кореневого користувача облікового запису, який не може бути видалений.
Приклад політики за замовчуванням:
Якщо обліковий запис дозволено ("arn:aws:iam::111122223333:root"
), суб'єкт з облікового запису все ще потребує IAM дозволів для використання KMS ключа. Однак, якщо ARN ролі, наприклад, спеціально дозволено в Політиці ключа, ця роль не потребує IAM дозволів.
Адміністратори ключів за замовчуванням:
Мають доступ для управління KMS, але не для шифрування або дешифрування даних
Тільки користувачі та ролі IAM можуть бути додані до списку адміністраторів ключів (не групи)
Якщо використовується зовнішній CMK, адміністратори ключів мають дозвіл на імпорт матеріалів ключа
Чим довше той самий ключ залишається на місці, тим більше даних шифрується цим ключем, і якщо цей ключ буде зламано, то ширша зона ризику даних. Крім того, чим довше ключ активний, тим більше ймовірність його зламу.
KMS ротує ключі клієнтів кожні 365 днів (або ви можете виконати процес вручну, коли захочете) і ключі, що управляються AWS, кожні 3 роки, і цього разу не можна змінити.
Старі ключі зберігаються для дешифрування даних, які були зашифровані до ротації
У разі зламу, ротація ключа не усуне загрозу, оскільки буде можливість дешифрувати всі дані, зашифровані зламаним ключем. Однак, нові дані будуть зашифровані новим ключем.
Якщо CMK знаходиться в стані вимкнено або в очікуванні видалення, KMS не буде виконувати ротацію ключа, поки CMK не буде повторно активовано або видалення не буде скасовано.
Потрібно створити новий CMK, потім створюється новий CMK-ID, тому вам потрібно буде оновити будь-яку застосунок, щоб посилатися на новий CMK-ID.
Щоб спростити цей процес, ви можете використовувати псевдоніми для посилання на key-id і потім просто оновити ключ, на який посилається псевдонім.
Вам потрібно зберігати старі ключі для дешифрування старих файлів, зашифрованих з їх допомогою.
Ви можете імпортувати ключі з вашої локальної інфраструктури ключів.
KMS оцінюється за кількістю запитів на шифрування/дешифрування, отриманих від усіх служб за місяць.
KMS має повну аудиторську та комплаєнс інтеграцію з CloudTrail; тут ви можете перевірити всі зміни, виконані в KMS.
З політикою KMS ви можете зробити наступне:
Обмежити, хто може створювати ключі даних і які служби мають доступ до використання цих ключів
Обмежити доступ систем до шифрування лише, дешифрування лише або обидва
Визначити, щоб системи могли отримувати доступ до ключів через регіони (хоча це не рекомендується, оскільки збій у регіоні, де розміщено KMS, вплине на доступність систем в інших регіонах).
Ви не можете синхронізувати або переміщати/копіювати ключі між регіонами; ви можете лише визначити правила для дозволу доступу між регіонами.
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)