Інженерна майстерність і карʼєра / крок 11
Голосове №1 — чому не можна давати розробникам адмінські ключі
Про що це відео
Перший випуск нового аудіоподкаст-формату лише для спонсорів: коротші, невимушені життєві історії з розробки, записані тоді, коли автор у дорозі й не може зняти повноцінне відео (повні відео він береже для глибоких фундаментальних тем, які не старіють). Ця історія — байка про принцип найменших привілеїв. Колись, коли вони з Антоном Морозовим заснували Webbylab із маленькою командою, вони попросили розробника написати скрипт аналітики/звітності для Redmine і сперечалися, який API-ключ видати — адмінський чи звичайний. Обрали адмінський, мовляв, «нічого поганого не станеться».
Головне
- Розробник не мав злого наміру: він знайшов на GitHub бібліотеку для Redmine API, скопіював приклад прямо з її документації і запустив із адмінським ключем — а зразкові виклики з прикладу видалили користувача №2, перейменували користувача №5 і так далі.
- Реальні наслідки виринали днями: співзасновник Антон більше не міг залогінитися (його користувача було видалено); за тиждень написав український клієнт Олександр із питанням, чому його перейменували на «Рауль» з українським прізвищем — код із прикладу перезаписав реальні записи.
- Висновок автора: давати розробникам адмінські ключі — погана ідея. Обмежуйте креденшали під задачу (least privilege), бо навіть випадковий скопійований код із прикладу може наробити лиха з підвищеними правами.
- Про формат: це перша з запланованої серії таких історій; він каже, що записувати їх швидко, тож робитиме це регулярно.
Теми відео
Частина цих треків
Інженерна майстерність і карʼєра · крок 11/14
Безпека і криптографія · крок 08/10