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