게시된 정책 버전은 절대 변경되지 않습니다. 정책을 수정하고 다시 게시하면 새로운 버전이 생성되며, 이미 머신에 배포된 버전을 덮어쓰지 않습니다. 이것이 롤백을 안전하게 만드는 이유입니다. 마지막으로 정상 동작하던 버전은 바이트 단위 그대로 존재하며, 롤백을 해도 무엇이 잘못되었는지 설명하는 의사결정 기록이 삭제되지 않습니다.
버전 찾기
Admin → policy editor로 이동하여 library를 열면 정책의 버전을 비교하거나 특정 버전을 비활성화할 수 있습니다.
머신 롤백
- Admin → enforcement으로 이동하여 영향받은 머신을 펼치고, 마지막으로 정상 동작하던 정책 세트를 확인합니다.
- edit을 선택하고, 해당 버전과 효과를 복원한 뒤 새 배포를 적용합니다.
- 머신이 체크인할 때까지 기다린 다음, 보고된 배포 상태를 확인합니다.
- Observe → policy와 영향받은 세션을 열어 유효한 작업이 더 이상 차단되지 않는지 확인합니다.
머신에 대한 모든 배포는 번호가 매겨진 세대(generation)로 관리됩니다. 목록을 확인하고 원하는 세대로 복원하세요:rollback은 카운터를 되감는 것이 아니라 이전 정책 세트를 담은 새로운 세대를 생성하므로, 기록은 항상 추가 전용(append-only)으로 유지됩니다. 비활성화되거나 삭제된 정책을 참조하는 세대로의 롤백은 거부됩니다. policies:write 권한이 있는 로그인 세션이 필요합니다. fp fleet diff <machine-id>는 의도된 배포와 머신이 실제로 적용한 배포의 차이를 보여주며, 머신이 다음 번에 폴링할 때까지는 behind로 표시됩니다. 머신 자체에서는 failproofai policies를 실행하면 현재 실행 중인 배포를 확인할 수 있습니다.
모든 머신에서 특정 정책 제거
각 명령은 영향받는 모든 배포에 새로운 세대를 생성합니다. 단, disable을 취소하는 방법은 해당 세대 중 하나를 롤백하는 것이 아닙니다. rollback은 비활성화된 정책을 참조하는 세대를 거부하며, disable 이전의 모든 세대는 해당 정책을 참조하고 있기 때문입니다. 되돌리려면 fp policies enable을 사용해야 하며, 이 명령도 자체적인 새 세대를 생성합니다.
팩 롤백
팩은 설치한 릴리스에 고정되므로, 롤백은 이전 버전을 설치하는 방식으로 이루어집니다:
터미널 없이 사용하거나 --policy, --category, --all 옵션을 사용하는 경우, 재추가 시 이전에 선택했던 서브셋이 유지됩니다. 터미널에서 해당 옵션 없이 실행하면 작성자의 기본값이 미리 선택된 상태로 선택 화면이 열리며, 선택한 항목이 기존 선택을 대체합니다. 따라서 이전에 선택했던 항목을 다시 선택해야 합니다.
롤백이 필요한 상황
- 정책이 예상된 프로덕션 작업을 차단하는 경우
- 매치 횟수가 관찰된 롤아웃 예측치보다 현저히 높은 경우
- 정책이 연동된 시스템이 제공하지 않는 필드에 의존하는 경우
- 새 버전이 의도된 실패 모드 외의 동작을 변경하는 경우
롤백 후에는 영향받은 세션을 열어 오탐(false positive)의 원인 조건을 파악하세요. 새 버전을 게시하고, 위험한 케이스와 정상적인 케이스 모두 테스트한 다음, 실제 적용하기 전에 다시 한번 관찰하세요.
failproofai config --pause는 로컬 정책을 한 세션 동안만 일시 중지하며, 클라우드 관리 정책에는 적용되지 않습니다. 따라서 잘못된 클라우드 배포를 해결하는 방법으로는 사용할 수 없습니다. 또한 일시 중지는 해당 범위 내 모든 정책의 노출을 확대시키므로, 문제가 있는 특정 버전만 롤백하는 방법을 권장합니다.