Обмежуйте повноваження агента
ЗавершеноВизначте дозволені дії, ресурси й умови. Перевіряйте права поза моделлю та відокремлюйте реалізацію від випуску.
Видавець TaigaЯк ми пишемо
Перевірте своє розумінняВи наказуєте агенту редагувати одну гілку, але його токен дозволяє push в основну гілку. Яка межа діє насправді?Виконайте вправу
Чого ви навчитеся
- Описувати право через дію, ресурс і умову.
- Відокремлювати схвалення задачі від дозволу на виконання.
- Тестувати відмову в забороненій дії.
Опишіть задачу перед наданням доступу
Агент, що читає код, потребує інших повноважень, ніж агент, який розгортає сервіс. Не надавайте обидва набори прав лише тому, що той самий продукт підтримує обидві дії.
Використовуйте три складові для визначення повноважень: дію, ресурс і умову. Для вигаданого виправлення звіту агент може записувати в одну окрему гілку, поки задача активна. Він може читати погоджені файли репозиторію. Він не може змінювати продуктивні дані або правила захисту репозиторію.
| Потрібна операція | Приклад межі |
|---|---|
| Переглянути код | Читати вибраний репозиторій |
| Запустити перевірки | Використовувати ізольоване середовище з вигаданими тестовими даними |
| Підготувати зміну | Записувати в гілку задачі |
| Запросити перегляд | Відкрити PR без merge |
| Випустити програмне забезпечення | Використовувати окремий захищений процес розгортання |
Точний спосіб забезпечення меж залежить від інструмента. Якщо токен не може виразити обмеження гілки, використовуйте додаткові засоби контролю репозиторію або сервіс виконання. Чесно задокументуйте повноваження, що залишаються.
Забезпечуйте обмеження поза моделлю
Промпт — це не система контролю доступу. Компонент виконання має перевіряти запитувану дію та цільовий ресурс за поточними правами. Він не повинен приймати твердження моделі про те, що схвалення вже існує.
AWS рекомендує обмежені права й тимчасові облікові дані для відповідних робочих навантажень. OWASP застосовує подібний принцип мінімальних прав до агентів та їхніх інструментів. Ці принципи потребують реалізації у фактичних системах ідентичності та виконання. Рекомендації AWS IAM, рекомендації OWASP для агентів.
Використовуйте короткочасні облікові дані там, де це підтримується. Тримайте не пов’язані із задачею секрети поза середовищем. Задача читання репозиторію не повинна успадковувати пароль продуктивної бази даних з оболонки розробника.
Прив’язуйте схвалення до фактичної дії
Схвалення підготовки зміни не означає схвалення її розгортання. Рішення про розгортання має визначати артефакт, цільове середовище та відповідні умови. Якщо вони змінюються, попереднє рішення може вже не діяти.
Розгляньмо агента, який пропонує безпечне читання бази даних, а після схвалення виконує інший запит. Корисний механізм схвалення перевіряє операцію, яка виконується насправді. Загальне повідомлення «продовжуй» без визначеного цільового ресурсу може приховати цю різницю.
Також відокремлюйте ідентичність від можливостей. Записуйте, яка людина або яке робоче навантаження ініціювали запуск. Перевіряйте, чи ідентичність ініціатора все ще має право в момент виконання дії. Позбавлення людини доступу має явно впливати на роботу в черзі.
Перевірте відмову та переривання
Перевіряйте не лише успішний шлях. В ізольованому тестовому середовищі спробуйте дію поза дозволеним ресурсом. Підтвердьте, що система виконання її відхиляє. Перегляньте аудиторську подію, не записуючи облікових даних.
Потім перевірте скасування або завершення строку дії облікових даних. Визначте, яка робота зупиняється негайно, а яка операція може завершитися. Кнопка зупинки не обов’язково скасовує дію, яка вже досягла іншої системи.
Зберігайте разом із задачею невеликий запис про права. Включіть відповідального, погоджений обсяг, фактичні засоби контролю, тест відмови та строк дії. Це робить подальший перегляд достатньо конкретним для покращення робочого процесу.
Виконайте вправу
Визначте права для агента, що виправляє фільтр звіту. Перелічіть три дозволені та три заборонені дії. Вкажіть репозиторій, гілку, середовище та строк дії. Опишіть, як перевірити кожну відмову, не змінюючи продуктивного середовища.
Завантажити робочий аркуш (Markdown)Зняття цієї позначки видаляє весь прогрес, збережений у цьому браузері.
Прогрес залишається в цьому браузері. Без облікового запису та відстеження.