Azure SRE 에이전트는 실행 격리, 비밀 없는 자격 증명, 데이터 상주 및 고객별 분리의 네 가지 영역에서 심층 방어 보안을 사용합니다. 각 계층은 독립적으로 작동하므로 한 영역의 손상이 다른 영역과 연계되지 않습니다.
사용 권한 및 ID 세부 정보는 에이전트 권한 및 에이전트 ID를 참조 하세요.
실행 환경 격리
에이전트의 추론 엔진 및 도구 실행은 별도의 컴퓨팅 경계에서 실행됩니다.
샌드박스 아키텍처
각 에이전트는 자체 샌드박스를 가지고 있습니다. 이 아키텍처는 각 에이전트가 마이크로 VM에서 실행되는 전용 컴퓨팅 환경을 제공하며, 추론 루프와는 분리되어 있습니다.
| Component | 다음에서 실행 | 역할 |
|---|---|---|
| 에이전트 추론 | 주요 런타임 | 메시지를 처리하고, 도구를 선택하고, 응답을 작성합니다. |
| 도구 실행 | 샌드박스 (마이크로 VM) | 파일 작업, bash 명령, 코드 분석, MCP 도구 실행 |
| 아이덴티티 사이드카 | 별도 서비스 | 추론 및 실행에서 격리된 자격 증명 및 토큰 관리 |
| 네트워크 프록시 | 별도 서비스 | 모든 아웃바운드 요청의 유효성을 검사하고 라우팅합니다. |
에이전트는 구조적 API 호출을 통해서만 샌드박스와 통신하며 직접 파일 시스템 또는 프로세스 액세스를 통해서도 통신하지 않습니다.
도구 프로세스 수명 주기
각 도구 호출은 샌드박스 내에서 새 프로세스를 시작합니다.
- 새 프로세스는 자체 환경으로 시작합니다.
- 네트워크 프록시는 WebSocket을 통해 입력 및 출력 스트림을 프록시합니다.
- 완료되면 전체 프로세스 트리가 종료됩니다.
시스템은 영구 프로세스 풀을 사용하지 않습니다. 환경 변수 및 자격 증명은 연결별로 범위가 지정되므로 한 도구 호출에서 다른 도구 호출의 환경을 볼 수 없습니다.
코드 실행
Python과 셸 명령어는 샌드박스 내에서 코드 인터프리터를 통해 실행됩니다:
- 실행은 사용자 리소스 및 에이전트의 추론 엔진에서 격리됩니다.
- 환경에는 700개 이상의 미리 설치된 Python 패키지가 포함되어 있지만 임의 패키지 설치는 지원하지 않습니다.
- 송신 프록시는 네트워크 액세스를 제어하고 알려진 서비스 도메인으로 제한합니다.
비밀 없는 자격 증명 관리
실행 환경은 자격 증명을 직접 보유하지 않습니다. 대신 격리된 ID 사이드카는 모든 토큰을 관리하고 개별 도구 프로세스에 요청 시 제공합니다.
자격 증명 흐름 방법
- 에이전트는 도구 호출이 필요하다고 결정합니다.
- 요청은 샌드박스로 라우팅됩니다.
- ID 사이드카는 도구 프로세스에 단기 토큰을 발급합니다.
- 이 도구는 네트워크 프록시를 통해 인증된 호출을 합니다.
- 결과가 대리인에게 반환됩니다. 자격 증명은 추론 컨텍스트를 입력하지 않습니다.
세 가지 속성은 자격 증명 도난을 구조적으로 불가능하게 만듭니다.
- ID 사이드카 격리: 에이전트의 실행 환경 외부에서 별도의 서비스가 모든 인증 정보를 관리합니다.
- 호출별 범위 지정: 토큰은 샌드박스에서 공유되지 않고 개별 도구 호출로 범위가 지정됩니다.
- 환경 변수 상속 없음: 명시적으로 선언된 변수만 도구 프로세스로 전달됩니다.
자격 증명 수명
| 유형 | 수명 | 새로 고침 |
|---|---|---|
| 관리 ID 토큰 | ~1시간(Azure 플랫폼 표준) | Azure SDK 통해 자동 |
| OAuth tokens (GitHub, Azure DevOps) | 공급자에 따라 다름 | 만료 20분 전에 새로 고침 |
| 작업 토큰 (도구별 호출) | 단일 사용 | 호출할 때마다 새로 발급됨 |
| Blob Storage SAS 토큰 | 1시간 | 만료 15분 전에 새로 고침됨 |
데이터 저장 위치
상담원이 문제를 조사할 때, 데이터 소스를 조회합니다. 에이전트는 로그 항목, 지표, API 응답 같은 원시 쿼리 결과를 별도의 데이터 저장소에 작성하지 않습니다. 에이전트가 툴 호출을 처리할 때, 결과 요약을 포함한 채팅 및 툴 메시지를 지속 대화 스레드로 직렬화합니다.
다음 데이터가 유지 됩니다.
| 데이터 | 저장소 | Retention | Purpose |
|---|---|---|---|
| 대화 스레드 | 에이전트 데이터베이스 | 수동으로 삭제될 때까지 | 채팅 기록, 조사 레코드 |
| 세션 인사이트 | 에이전트 데이터베이스 및 블롭 저장소 | Persistent | 증상, 해결 단계 및 근본 원인과 같은 합성 학습 |
| 메모리 파일 | 블롭 스토리지 | 세션 간 지속됨 | 합성된 지식, 팀 컨텍스트, 리포지토리 지침 |
| 스레드 파일 | 블롭 스토리지 | 스레드 수명에 연결 | 사용자 업로드, 생성된 보고서 |
세션 인사이트는 원시 데이터 복사본이 아니라 합성된 요약입니다. 에이전트는 패턴(나타난 증상, 해결 방법 및 피해야 할 사항)을 추출하고 이를 지식으로 저장합니다. 에이전트는 완전한 원시 쿼리 결과를 독립적으로 지속하지 않습니다. 이 도구는 결과 발췌문이나 요약을 포함할 수 있는 일련화된 도구 메시지를 대화 스레드 기록의 일부로 저장합니다.
고객별 격리
| 레이어 | 격리 모델 |
|---|---|
| 컴퓨팅 | 에이전트별로 전용 샌드박스 |
| Database | 에이전트별로 별도의 데이터베이스 |
| Blob 스토리지. | 에이전트별로 별도의 블롭 저장소 |
| Network | 모든 아웃바운드 요청에 대한 에이전트별 프록시 인스턴스 |
| Credentials | 에이전트별로 관리되는 ID와 고객이 선택한 리소스 그룹에 범위가 지정된 RBAC |
에이전트 또는 고객 간에 데이터, 컴퓨팅 또는 자격 증명이 공유되지 않습니다.
로깅 및 관찰 가능성
에이전트는 설치 중에 구성한 Application Insights 인스턴스에 운영 원격 분석을 전송하여 에이전트 작업에 대한 완전한 가시성을 제공합니다.
| Telemetry | 세부 정보 |
|---|---|
| 대화 추적 | 엔드 투 엔드 요청 추적에 대한 추적 ID 및 범위 ID로 상호 연결 |
| 도구 호출 종속성 | 모든 아웃바운드 호출에 대한 메서드, URL, 기간 및 상태 코드 |
| 오류 및 예외 | 전체 예외 세부 정보 |
| 사용자 지정 이벤트 | 후크 활성화, 인시던트 이벤트 및 기타 에이전트 전용 작업 |
샌드박스 도구 실행의 원격 분석은 동일한 파이프라인을 통해 흐릅니다.
Encryption
| 레이어 | 보호 |
|---|---|
| 휴면 상태 | Azure가 관리하는 암호화는 모든 데이터를 휴지할 때 보호합니다 |
| 전송 중 | 모든 외부 통신은 HTTPS를 사용합니다 |
네트워크 프록시 및 정책
실행 환경의 모든 아웃바운드 네트워크 액세스는 다음 정책을 적용하는 프록시 계층을 통해 흐릅니다.
- 요청 유효성 검사: 외부 서비스에 도달하기 전에 모든 아웃바운드 연결의 유효성이 검사됩니다.
- 자격 증명 주입: 프록시는 ID 사이드카에서 범위가 지정된 토큰을 연결합니다. 도구 코드는 토큰을 직접 처리하지 않습니다.
- 환경 범위 지정: 명시적으로 선언된 환경 변수만 도구 프로세스에 전달됩니다.
- 프로세스 수명 주기: 도구 프로세스는 완료 또는 시간 제한 시 종료됩니다.
On-behalf-of 대체
에이전트의 관리 ID에 작업에 대한 권한이 없으면 시스템은 사용자 대신 작동하게 됩니다.
- 에이전트는 관리 ID를 사용하여 작업을 시도합니다.
- 사용 권한이 부족하며 작업 세부 정보가 포함된 승인 작업 프롬프트가 표시됩니다.
- 승인하면 작업이 자격 증명으로 실행됩니다.
- 자격 증명은 완료 후 캐시되지 않습니다.
실행 모드는 이 동작을 제어합니다. 검토 모드는 쓰기 작업에 대한 승인이 필요하고 자치 모드는 관리 ID를 직접 사용합니다. 자세한 내용은 에이전트 권한을 참조하세요.
개인 네트워크 액세스
Azure SRE 에이전트는 사설 네트워크 요구사항에 대한 배포 구성을 지원합니다:
- 지역 격리 - 샌드박스 배치는 지역 경계를 존중합니다(예: 미국 동부 2 샌드박스는 미국 중부, 미국 중북부 또는 캐나다 중부 내에 유지됨).
- VNet 통합 실행: 전용 샌드박스를 가상 네트워크 내에서 실행하도록 구성할 수 있습니다.
- 비밀 없는 자격 증명 접근: 신원 서비스는 자격 증명을 샌드박스에 저장하지 않고도 도구 프로세스에 단기간 자격 증명을 제공합니다.