Isoline 가이드

브라우저 프로필을 위한 최소 권한 자동화

스크립트와 에이전트에 프로필, 비밀 정보 또는 되돌릴 수 없는 작업에 대한 일반 접근 권한을 주지 않으면서 승인된 브라우저 작업을 완료할 만큼의 권한만 부여하는 실용적 통제 모델입니다.

권한 부여 범위부터 정하기

NIST는 최소 권한을 사용자와 사용자를 대신하는 프로세스의 접근을 할당된 작업에 필요한 최소 수준으로 제한하는 것으로 정의합니다. 따라서 automation 같은 단일 역할은 브라우저 프로필 업무에 너무 넓습니다. 호출자가 누구인지는 알려 주지만 어떤 프로필을 열 수 있는지, 어떤 웹사이트에 접근할 수 있는지, 무엇을 바꿀 수 있는지, 권한이 얼마나 오래 지속되는지는 알려 주지 않습니다.

유용한 권한 부여 범위에는 여덟 가지 차원이 있습니다.

차원 답해야 할 질문 강력한 기본값
행위자 어떤 사람, 워크로드 또는 에이전트가 작업을 시작했나요? 사람 또는 워크로드별로 책임을 귀속할 수 있는 신원 하나
테넌트 어떤 조직 또는 고객 경계가 적용되나요? 조직 하나, 테넌트 간 접근 금지
프로필 집합 정확히 어떤 프로필을 사용할 수 있나요? 명시적 ID 또는 검토된 폴더·태그 선택자
작업 자동화가 무엇을 할 수 있나요? 파일 시스템이나 프로세스 기본 기능이 아닌 이름이 지정된 도메인 작업
대상 어떤 사이트, API 또는 환경에 접속할 수 있나요? 승인된 오리진과 환경만
시간 권한은 언제 시작하고 만료되나요? 수명이 짧은 자격 증명과 제한된 작업 시간
작업량 얼마나 많은 업무를 수행할 수 있나요? 동시 실행, 요청, 비용 한도
부작용 무엇을 변경, 게시, 삭제하거나 얼마를 지출할 수 있나요? 읽기 전용 우선, 영향이 큰 작업은 승인 필요

모든 명령에서 정책 결정을 평가해야 합니다. 프로필을 성공적으로 실행했다고 해서 쿠키 내보내기, 팀 관리, 결제 변경 또는 브라우저가 닿을 수 있는 모든 사이트에서 작업할 권한을 조용히 부여해서는 안 됩니다.

세 가지 권한을 분리하기

브라우저 자동화는 흔히 서로 다른 세 가지 자격 증명을 하나의 업무에 합칩니다.

  1. 자동화 자격 증명은 프로필 관리자 또는 자동화 서비스 호출을 승인합니다.
  2. 프로필의 세션 상태는 웹사이트에서 사람 또는 테스트 계정을 인증할 수 있습니다.
  3. 대상 서비스의 위임은 해당 계정이 웹사이트에서 무엇을 할 수 있는지 결정합니다.

이 자격 증명들은 서로 바꿔 쓸 수 없습니다. 자동화 토큰은 프로필 쿠키를 포함하거나 노출해서는 안 됩니다. 인증된 프로필이 있다고 호출자에게 가능한 모든 웹사이트 작업 권한이 있다는 뜻은 아닙니다. 웹사이트 비밀번호나 OAuth 토큰을 프로필 관리자 자격 증명으로 재사용해서도 안 됩니다.

인증된 브라우저 상태 자체가 민감하기 때문에 이 구분이 중요합니다. Playwright는 저장된 상태에 테스트 계정을 사칭할 수 있는 쿠키와 헤더가 포함될 수 있다고 경고합니다. 이러한 상태를 비밀 정보가 든 산출물로 취급해 소스 제어, 일반 로그, 채팅 기록, 이슈 추적기, 일반 자동화 출력에서 제외하세요.

원격 브라우저 제어에도 같은 주의가 필요합니다. Chrome은 버전 136부터 기본 데이터 디렉터리에 대한 원격 디버깅 스위치를 허용하지 않고 실제 프로필과 디버깅을 분리하기 위해 사용자 지정 사용자 데이터 디렉터리를 권고했습니다. Google은 2025년 3월 17일 보안 공지에서 원격 디버깅을 통한 쿠키 추출을 변경 이유로 들었습니다. 편의를 위해 개인의 일상 브라우저 프로필에 자동화를 연결하지 마세요.

권한을 할당하기 전에 작업 분류하기

통제 인터페이스는 제한 없는 브라우저 연결 하나를 노출하기보다 업무 작업과 그 위험을 표현해야 합니다.

작업 유형 기본 통제
관찰 허용된 프로필 나열, 상태 확인, 비밀 정보를 제거한 상태 보기 좁은 읽기 범위로 허용
수명 주기 실행, 중지, 프로필 임대 획득, 테스트 스냅샷 생성 명시된 프로필에만 허용하고 각 전환을 기록
상호작용 승인된 오리진으로 이동, 정의된 테스트 실행, 테스트 산출물 다운로드 대상, 입력, 출력 경로, 기간 제한
큰 영향 콘텐츠 제출, 테스트 데이터 재설정, 접근 권한 변경, 비용 발생, 프로필 삭제 미리보기와 명시적 승인 및 더 강한 정책 적용
비밀 정보 포함 쿠키, 자격 증명, 프록시 비밀번호, 복구 자료 또는 원본 프로필 상태 내보내기 일반 자동화 인터페이스에서 거부

위험은 맥락에 따라 달라집니다. 폐기 가능한 스테이징 계정에 양식을 제출하는 것은 일상 테스트일 수 있지만, 프로덕션 계정에서 같은 작업을 하면 법률, 재무 또는 평판에 영향을 줄 수 있습니다. 환경, 계정, 제안된 정확한 변경에 결정을 연결하세요.

범위가 좁고 수명이 짧은 자격 증명 발급하기

워크로드마다 별도 서비스 신원을 사용하세요. 사람 관리자의 세션을 CI, 로컬 스크립트 또는 에이전트에 빌려주지 마세요. 유용한 토큰은 다음 기준으로 제한됩니다.

  • 조직 및 해당하는 경우 고객 또는 워크스페이스
  • 프로필 ID, 폴더, 태그 또는 기타 안정적인 리소스 선택자
  • 허용된 작업
  • 의도한 서비스 또는 대상
  • 발급 시각, 만료, 철회 상태
  • 플랫폼에서 지원하는 경우 기기 또는 워크로드 신원
  • 동시 실행, 요청, 비용 상한

RFC 9700은 의도한 리소스 서버, 리소스, 작업을 포함해 접근 토큰 권한을 필요한 최소한으로 제한할 것을 권고합니다. 대상 제한이 유출된 토큰의 영향을 줄이는 이유도 설명합니다. 현재 Model Context Protocol(MCP) 권한 부여 명세도 대상 검증을 요구하고 클라이언트가 의도한 작업에 필요한 범위만 요청하도록 합니다.

점진적 권한 부여를 우선하세요. 탐색 및 미리보기 권한으로 작업을 시작하세요. 이후 단계에 더 강한 권한이 필요하면 그 단계에 사용할 새로운 단기 권한을 요청하세요. 업무의 한 분기가 나중에 필요할 수도 있다는 이유로 영구적인 전체 접근 토큰을 발급하지 마세요.

MCP 또는 기타 중개자에서는 업스트림 자격 증명을 분리해 유지하세요. MCP 권한 부여 보안 고려 사항은 리소스별 토큰을 요구하고 들어온 MCP 토큰을 업스트림 API로 전달하는 일을 금지합니다. 이 원칙은 모든 자동화 게이트웨이에 적용됩니다. 각 신뢰 경계는 자체 자격 증명을 검증하고 승인된 작업에 필요한 다운스트림 권한만 발급하거나 가져옵니다.

승인을 구체적이고 검증 가능하게 만들기

승인은 “무엇을 승인하는가?”에 답해야 합니다. “이 에이전트를 허용” 같은 일반 확인은 검토자가 이해한 범위를 넘어 권한을 부여할 수 있습니다.

영향이 큰 명령의 미리보기에는 다음을 표시하세요.

  • 시작한 행위자와 워크로드
  • 조직, 프로필, 대상 계정, 목적지
  • 제안된 변경에 대한 사람이 읽을 수 있는 설명
  • 영향받는 정확한 리소스와 최대 개수
  • 해당하는 경우 예상 비용 또는 외부 영향
  • 비밀 정보를 가린 변경 값
  • 롤백 또는 복구 경로
  • 짧은 승인 만료 시간
  • 더 낮은 권한으로 진행할 수 없는 이유

승인을 정규화된 요청의 다이제스트, 정책 버전, 프로필 버전에 연결하세요. 되돌릴 수 없거나 외부에 노출되는 작업이라면 일회용으로 만드세요. 요청, 대상, 리소스 수 또는 관련 상태가 바뀌면 승인을 무효화하고 새 미리보기를 제시하세요.

승인은 권한 부여를 대신하지 않습니다. 검토자는 조직이 보유하지 않은 권리를 부여할 수 없으며, 프롬프트로 금지된 업무를 허용 가능한 업무로 바꿀 수 없습니다.

안전한 실패를 위한 실행 설계

최소 권한은 오류 후 발생하는 일도 제한합니다. 실행 계약에는 프로필 임대, 전제 조건, 제한된 재시도, 취소, 복구 동작이 포함되어야 합니다.

실패 안전한 대응
권한 거부 중단합니다. 권한을 자동으로 높이지 않고 누락된 권한을 보고합니다.
프로필 사용 중 두 번째 작성자를 시작하지 않습니다. 제한된 시간 동안 기다리거나 명확한 충돌을 반환합니다.
실행 중 임대 상실 새 작업을 중단하고 비밀 정보를 제거한 근거를 보존한 뒤 프로필을 복구 경로로 이동합니다.
읽기 전 네트워크 시간 초과 선언된 한도와 기한 안에서만 재시도합니다.
제출 후 연결 끊김 결과를 불명으로 표시합니다. 대상이 안전한 멱등성 메커니즘을 제공하지 않으면 작업을 반복하지 않습니다.
승인 만료 또는 요청 변경 작업을 취소하고 새 미리보기와 승인을 요청합니다.
감사 대상 사용 불가 선언된 정책을 따릅니다. 영향이 큰 작업은 일반적으로 실패 시 차단하고, 위험이 낮은 이벤트는 보호되고 한도가 있는 로컬 버퍼를 사용할 수 있습니다.
스냅샷 또는 복원 검증 실패 영향받은 상태를 격리합니다. 마지막 정상 버전을 덮어쓰지 않습니다.

상태를 변경하는 모든 명령은 멱등성 여부, 확인하는 전제 조건, 중단 후 호출자가 최종 결과를 알아내는 방법을 정의해야 합니다. “모든 오류에서 재시도”는 제출, 구매, 삭제, 초대, 권한 변경에 안전하지 않습니다.

비밀 정보 없이 결정 기록하기

감사 이벤트는 두 번째 자격 증명 저장소가 되지 않으면서 작업을 재구성할 수 있어야 합니다. OWASP 로깅 지침은 권한 부여 실패와 고위험 작업을 기록하고 “언제, 어디서, 누가, 무엇을” 수집하며 로그 데이터 접근을 보호할 것을 권고합니다. 로그가 비밀번호와 기타 기술 비밀 정보를 노출할 수 있다고도 경고합니다.

각 자동화 결정에 다음을 기록하세요.

  • 사람, 서비스, 위임된 행위자의 신원
  • 조직과 비밀 정보를 제거한 프로필 참조
  • 명령 이름, 요청 ID, 해당하는 경우 멱등성 키
  • 정책 버전, 결정, 이유 코드
  • 승인된 작업의 승인 참조와 승인자
  • 비밀 정보를 제거한 대상과 리소스 수
  • 시작 시각, 완료 시각, 결과
  • 브라우저, 클라이언트, 자동화 어댑터 버전
  • 복구, 취소 또는 수동 검토 상태

쿠키 값, 비밀번호, 접근 또는 갱신 토큰, Authorization 헤더, 프록시 자격 증명, 암호화 키, 전체 페이지 내용, 양식 값 또는 원본 프로필 아카이브는 기록하지 마세요. 경로와 쿼리 문자열에 개인정보나 비밀 정보가 있을 수 있으므로 URL도 최소화하세요. 감사 접근을 보호하고 보존 기간을 정의하며 로깅이 느리거나 가득 찼거나 사용할 수 없을 때를 테스트하세요.

구체적인 정책 예시

다음 의사 코드는 Isoline 설정이 아니라 설계 예시입니다. CI 워크로드가 스테이징 프로필에 대해 지역별 스모크 테스트만 실행하도록 승인합니다.

principal: "workload:regional-smoke-tests"
tenant: "org:example-studio"
profiles:
  selector: "tag == qa-staging"
operations:
  allow:
    - "profile.read"
    - "profile.launch"
    - "test.run-approved-suite"
    - "profile.stop"
  deny:
    - "profile.export-session-state"
    - "profile.delete"
    - "team.manage"
destinations:
  allow:
    - "https://staging.example.test"
conditions:
  expiresAt: "2026-08-26T18:00:00Z"
  maxConcurrentProfiles: 2
  maxRuns: 20
  requireCleanStop: true
approvals:
  "staging-data.reset": "single-use-human-approval"
onUnknownSideEffect: "stop-and-review"

이 정책은 일반 브라우징, 프로덕션 접근, 비밀 정보 내보내기, 팀 관리 또는 범위를 제한 없이 추가할 권한을 부여하지 않습니다. 스모크 테스트에 새 오리진이나 작업이 필요하다면 실행 중에 추론하지 않고 정책 검토를 거쳐 변경합니다.

검토 체크리스트

브라우저 프로필 자동화 업무를 활성화하기 전에 다음을 확인하세요.

  • 시스템 소유자와 해당하는 경우 고객이 허용된 목적을 문서화했습니다.
  • 각 사람과 워크로드에 책임을 귀속할 수 있는 신원이 있습니다.
  • 토큰이 테넌트, 프로필, 작업, 대상, 시간, 요청 빈도로 제한됩니다.
  • 대상 계정에는 작업에 필요한 역할만 있습니다.
  • 일상적인 개인 프로필은 제외됩니다.
  • 세션 상태와 기타 비밀 정보가 일반 읽기 또는 로그에 나타날 수 없습니다.
  • 영향이 큰 작업에는 구체적인 미리보기와 만료되는 승인이 있습니다.
  • 프로필 잠금이 동시 작성자를 막습니다.
  • 상태 변경 명령에 전제 조건, 멱등성, 결과 불명 처리 방식이 정의되어 있습니다.
  • 취소, 철회, 중단, 복원 경로를 테스트했습니다.
  • 감사 추적으로 민감한 내용을 노출하지 않고 결정을 재구성할 수 있습니다.
  • 권한이 철회되거나 대상 서비스가 작업을 거부하면 업무가 중단됩니다.

한계

최소 권한은 실수와 자격 증명 유출의 영향을 줄입니다. 승인되지 않은 업무를 허용 가능한 것으로 만들거나 제3자 서비스가 작업을 허용한다고 보장하지는 않습니다. Playwright 브라우저 컨텍스트 문서에서 설명하듯 브라우저 컨텍스트 분리는 테스트 격리를 개선할 수 있지만 컴퓨터 한 대를 서로 독립적으로 신뢰할 수 있는 여러 기기로 만들지는 않습니다. 침해된 엔드포인트, 악의적인 확장 프로그램, 과도한 권한의 대상 계정 또는 안전하지 않은 다운스트림 서비스는 여전히 의도한 경계를 무너뜨릴 수 있습니다.

업무가 바뀌면 권한을 검토하세요. 사용하지 않는 범위를 제거하고 비활성 자격 증명을 만료시키고 거부 경로를 다시 테스트하세요. 원본 세션 자료 요청은 일반 자동화 기능이 아니라 별도의 고위험 보안 검토 대상으로 취급하세요.

편집자 주

AI 지원
AI가 한국어 번역을 지원했습니다. 한국어 전문 검토가 별도로 기록되지 않았으며, Isoline 편집팀이 게시된 텍스트에 대한 책임을 집니다.
편집 검토
Isoline 편집팀

출처

각 출처는 그 출처가 뒷받침하는 진술 묶음과 연결됩니다. 접근일은 편집팀이 인용 자료를 확인한 날짜입니다.

  1. NIST glossary: least privilege National Institute of Standards and Technology
    뒷받침하는 내용
    사람과 그 사람을 대신해 작동하는 프로세스에 적용되는 최소 권한의 정의를 뒷받침합니다.
    접근일
  2. 뒷받침하는 내용
    접근 토큰의 권한, 리소스, 작업, 대상, 수명, 발신자 제한 지침을 뒷받침합니다.
    접근일
  3. 뒷받침하는 내용
    MCP 클라이언트와 서버의 리소스 및 대상 검증과 최소 범위 요청을 뒷받침합니다.
    접근일
  4. 뒷받침하는 내용
    리소스별 토큰, 혼동된 대리자 방어, 업스트림 토큰 전달 금지를 뒷받침합니다.
    접근일
  5. Playwright authentication guidance Microsoft Playwright
    뒷받침하는 내용
    비밀 정보를 담은 저장된 브라우저 상태와 소스 제어 및 일반 출력에서 제외해야 하는 요건을 뒷받침합니다.
    접근일
  6. 뒷받침하는 내용
    브라우저 컨텍스트 상태 분리와 이것이 새로 신뢰할 수 있는 기기가 아니라 테스트 경계라는 한계를 뒷받침합니다.
    접근일
  7. 뒷받침하는 내용
    Chrome 136의 원격 디버깅 변경, 기본 프로필 보호, 사용자 지정 사용자 데이터 디렉터리 지침을 뒷받침합니다.
    접근일
  8. OWASP Logging Cheat Sheet OWASP Foundation
    뒷받침하는 내용
    권한 부여 및 고위험 이벤트 로깅, 유용한 이벤트 필드, 접근 통제, 비밀 정보 제외를 뒷받침합니다.
    접근일
정정 요청