규칙에 override 적용
규칙에 재정의 적용
섹션 제목: “규칙에 재정의 적용”승인된 룰이 전체적으로는 맞지만 특정 범위에는 맞지 않을 때가 있습니다. 임계값을 더 넓게 잡아야 하는 프로덕션 티어나, 엄격한 가드레일이 도움보다 불편이 큰 개발 샌드박스가 그런 예입니다. 모두에게 영향을 주는 룰 텍스트를 고치거나 룰을 전역으로 끄는 대신, FDAI는 자동 품질 검토 위에서 동작하는 범위가 제한된 오버라이드를 지원합니다.
오버라이드가 할 수 있는 것
섹션 제목: “오버라이드가 할 수 있는 것”오버라이드는 룰 카탈로그 옆에 저장되는 policy-as-code 아티팩트입니다. 지정된 룰과 범위에 다음 중 정확히 하나만 적용할 수 있습니다.
disabled: 해당 범위에서 룰 실행이 멈춥니다. 탐지는 관찰 모드로 계속 돌아가고 감사 로그는 룰이 원래 잡았을 항목을 계속 기록하므로, 발견 루프가 반복되는 오버라이드 패턴을 알아볼 수 있습니다.severity-downgrade: 룰은 계속 발동하지만 더 낮은 심각도를 적용합니다. 예를 들어critical이medium이 됩니다. 안전성 검토가 바뀐 탐지 결과를 다시 평가합니다. 오버라이드는 해당 범위의 실행 수준을 낮추거나 실행을 막을 수 있지만, 하드 거부를 우회하거나 자율성을 높일 수는 없습니다.parameter-relaxation: 룰이 이미 선언한 임계값을 넓힙니다. 예를 들어 비용 이상 기준을> 20%에서> 40%로 바꿉니다. 룰이 선언한 매개 변수만 완화할 수 있고 검사 로직 자체는 다시 쓸 수 없습니다.
모든 범위에서 룰을 끄는 것처럼 더 넓은 제어는 오버라이드가 아닙니다. 그것은 룰 사용 중지이며, 자체 검토를 거쳐 카탈로그 파이프라인을 통과해야 합니다.
오버라이드는 자율성을 낮추기만 합니다. 사람 승인을 자동 실행으로, 거부를 승인 요청으로, 관찰 모드를 적용 모드로 바꾸지 않습니다.
범위 제한
섹션 제목: “범위 제한”오버라이드는 리소스 그룹 크기의 묶음이나 그보다 좁은 범위에 머물러야 합니다. 구독 전체, 테넌트 전체, 조직 전체처럼 더 넓은 범위는 승격 파이프라인이 차단합니다. 그 정도 범위가 필요하다면 사실 필요한 것은 룰 사용 중지입니다.
실무적으로:
- 특정 리소스 그룹 - OK.
- 단일 리소스 - OK.
- 서브스크립션 전체 - 거부.
재정의가 항상 필요로 하는 것
섹션 제목: “재정의가 항상 필요로 하는 것”모드와 무관하게 모든 재정의는 기록합니다:
- 요청자: 오버라이드를 등록하는 운영자입니다.
- 승인자: 요청자와 다른 주체여야 합니다. 자기 승인은 허용되지 않습니다.
- 사유: 이 범위가 왜 다른지 설명합니다. 이 텍스트는 감사 로그에 남고, 오버라이드가 영향을 주는 모든 승인 요청에 표시됩니다.
- 대상 룰, 범위, 모드: 발견 루프가 항목을 찾을 수 있도록 기계가 읽을 수 있는 형태로 기록합니다.
오버라이드는 오래 유지될 수 있고 만료 시각을 반드시 둘 필요도 없습니다. 다만 같은 룰에 오버라이드가 반복해서 붙거나 하나가 오래 남아 있으면, 발견 루프는 이를 룰 자체를 고쳐야 한다는 신호로 봅니다.
오버라이드가 막지 않는 것
섹션 제목: “오버라이드가 막지 않는 것”- 감사 기록. 오버라이드가 가로챈 모든 탐지 결과는 억제된 이유와 함께 계속 기록됩니다. 오버라이드는 이벤트를 보이지 않게 만들지 않고, FDAI가 그 이벤트에 어떤 조치를 할지만 바꿉니다.
- 상위 프로젝트의 룰 업데이트. 오버라이드는 별도 아티팩트이므로 상위 룰 업데이트는 오버라이드를 건드리지 않고 반영됩니다.
오버라이드 등록 방법
섹션 제목: “오버라이드 등록 방법”- 룰 ID와 현재 결정을 확인합니다. 감사 로그에 둘 다 있습니다.
- 룰을 편집하는 것과 같은 저장소에서 오버라이드 아티팩트, 즉 모드와 범위와 사유를 작성합니다.
- pull 요청을 엽니다. 검토자는 요청자와 달라야 합니다.
- 병합되면 다음번 해당 이벤트가 발생할 때 적용됩니다. 감사 로그는 원래 탐지 결과와 이를 가로챈 오버라이드를 모두 보여 줍니다.
재정의 적용 확인
섹션 제목: “재정의 적용 확인”PR이 병합된 뒤 대상 범위에서 새 평가 결과 하나를 확인하세요:
- 감사 항목에 예상한 규칙 ID, 재정의 ID, 모드, 제한된 범위가 기록되었는지 확인합니다.
disabled재정의에서도 원래 탐지 결과가 계속 기록되는지 확인합니다.- 결과 심각도, 매개 변수, 실행 억제가 재정의와 일치하며 자율성을 높이지 않았는지 확인합니다.
- 범위 밖의 인접 리소스에는 일반 규칙 동작이 계속 적용되는지 확인합니다.
재정의 적용 결과가 예상과 다르면 별도 재정의 아티팩트를 제거하거나 수정하세요. 로컬 예외가 동작하는 것처럼 보이게 하려고 원본 규칙을 편집하지 마세요.
대신 규칙을 사용 중지해야 할 때
섹션 제목: “대신 규칙을 사용 중지해야 할 때”여러 범위에서 같은 룰에 같은 오버라이드를 반복해 적용하고 있다면, 룰 자체를 고쳐야 한다는 신호입니다. 오버라이드를 쌓지 말고 룰 카탈로그에 수정된 매개 변수로 pull 요청을 열어, 다른 룰 변경과 똑같이 품질 검토를 통과하게 하세요.
다음 단계
섹션 제목: “다음 단계”| 학습 대상 | 문서 |
|---|---|
| 심각도와 자동 실행, 사람 승인, 거부가 실행 시점에 뜻하는 것 | ../concepts/risk-tiers-ko.md |
| 오버라이드가 실제로 적용되는지 확인하는 방법 | read-audit-log-ko.md |
| 소유자가 승인하고 기간이 정해진 예외 워크플로 | ../../runbooks/exemption-workflow-ko.md |
| 전체 Human 재정의 설계 | ../../../.github/instructions/architecture.instructions.md |