Skip to main content

A2A 보안 고려사항

엔터프라이즈 환경에서 A2A를 도입할 때, 보안은 가장 중요한 설계 요소입니다.

인증 (Authentication)

  • Agent Card의 authentication.schemes 필드로 지원하는 인증 방식을 명시합니다
  • OAuth2 가 권장 방식입니다. 토큰 만료, 스코프 제한 등 세밀한 제어가 가능합니다
  • API Key 는 구현이 간단하지만 보안이 약합니다. 개발/테스트 환경에만 권장합니다
  • Mutual TLS (mTLS) 는 양방향 인증서 검증으로, 높은 보안이 필요한 금융/의료 환경에 권장됩니다

인가 (Authorization)

  • Agent가 요청할 수 있는 skill 범위를 제한해야 합니다
  • Task 생성 권한과 특정 skill 호출 권한을 분리하여 관리합니다
  • 예: “항공 Agent는 search_flights만 가능, book_flight는 별도 권한 필요”와 같이 세분화합니다

데이터 보안

  • Agent 간 전달되는 모든 데이터는 TLS 암호화가 필수 입니다
  • PII(개인정보) 전달 시 마스킹 또는 토큰화를 적용합니다
  • 민감 데이터는 Artifact로 직접 전달하지 않고, 참조 ID만 전달 하여 수신 Agent가 별도 인증 후 조회하도록 합니다

Trust Boundary (신뢰 경계)

  • 내부 Agent외부 Agent 를 명확히 구분합니다
  • 외부 Agent의 응답은 항상 검증합니다 (LLM-as-Judge 또는 규칙 기반 검증)
  • 외부 Agent에게 쓰기 권한 을 부여할 때는 특히 주의가 필요합니다

주요 위협과 대응 방안

위협설명대응 방안
Agent 위장악의적 Agent가 정상 Agent를 사칭Agent Card 서명 검증, mTLS
데이터 유출민감 정보가 외부 Agent에 전달PII 마스킹, 참조 ID 사용
권한 상승Agent가 허용 범위 밖의 행동 수행skill별 세분화된 인가
중간자 공격통신 가로채기TLS 암호화 필수
주의 보안 설계의 핵심 원칙: 최소 권한 원칙(Principle of Least Privilege) 을 적용하세요. 각 Agent에게는 작업 수행에 필요한 최소한의 skill과 데이터 접근 권한만 부여합니다.

A2A의 현실적 한계와 대안

현재 A2A 채택 현실

A2A는 강력한 비전을 가지고 있지만, 2026년 현재 채택 현실은 냉정하게 바라볼 필요가 있습니다.
항목현실
주도 기업Google Cloud 중심. Salesforce, SAP 등 참여하지만 실제 프로덕션 구현은 제한적
SDK 성숙도Python/JS SDK 제공되지만 빠르게 변경 중. 프로덕션 안정성 미검증
실제 사용 사례대부분 PoC 또는 데모 수준. 대규모 프로덕션 배포 사례는 희소
대부분의 기업 현실MCP만으로 도구 연동 충분. 내부 Multi-Agent는 프레임워크 내부 통신으로 해결
A2A가 진짜 필요한 시나리오는 제한적입니다:
  1. 이기종 벤더의 Agent가 협업 해야 하는 경우 (예: 우리 Agent + 파트너사 Agent)
  2. 조직 간 경계를 넘는 Agent 통신(예: 본사 Agent + 자회사 Agent)
  3. Agent 마켓플레이스 구축 시 (다양한 3rd party Agent를 플러그인처럼 연결)
그 외의 경우 — 예를 들어 같은 팀이 만든 여러 Agent를 협업시키는 것이라면 — LangGraph, CrewAI, Databricks Agent Framework 등의 내부 오케스트레이션이 훨씬 간단하고 효율적입니다.

MCP로 Multi-Agent를 구현하는 패턴

A2A 없이도 MCP만으로 Agent 간 통신이 가능합니다. 핵심 아이디어는 Agent를 MCP 서버로 래핑 하는 것입니다.
[Orchestrator Agent]

    ├── MCP ──→ [데이터 분석 Agent (MCP Server로 래핑)]
    │              └── Tool: "analyze" (내부적으로 LLM 호출)

    ├── MCP ──→ [리포트 생성 Agent (MCP Server로 래핑)]
    │              └── Tool: "generate_report" (내부적으로 LLM 호출)

    └── MCP ──→ [Slack 알림 Agent (MCP Server로 래핑)]
                   └── Tool: "notify" (내부적으로 LLM 호출)
이 방식의 장점과 한계:
항목MCP 래핑 방식A2A 방식
구현 복잡도낮음 (기존 MCP 인프라 활용)높음 (새 프로토콜 도입)
상태 관리없음 (Stateless)있음 (Task lifecycle)
Agent 발견수동 설정Agent Card로 자동 발견
중간 결과 스트리밍제한적SSE로 네이티브 지원
input-required 패턴구현 어려움프로토콜 수준에서 지원
참고 실용적 조언: 지금 당장 Multi-Agent가 필요하다면 MCP 래핑 방식으로 시작하세요. 상태 관리나 Agent 발견이 절실해지는 시점에 A2A로 전환해도 늦지 않습니다.

현실적 도입 로드맵

단계시기기술목표
1단계지금MCPAgent가 도구와 데이터에 접근하는 기반 구축
2단계6개월 내LangGraph / Databricks Agent SDK내부 Multi-Agent 오케스트레이션. 같은 조직 내 Agent 협업
3단계필요시 (1년+)A2A외부 Agent 연동. 이기종 벤더/조직 간 Agent 협업
각 단계는 이전 단계를 대체하는 것이 아니라 쌓아 올리는 것 입니다. 3단계에서도 MCP와 내부 오케스트레이션은 그대로 사용됩니다.

A2A 설계 패턴 카탈로그

A2A를 활용한 Agent 간 협업에는 몇 가지 반복되는 설계 패턴이 있습니다. 각 패턴의 특성과 적합한 시나리오를 이해하면, 아키텍처 설계 시 올바른 선택을 할 수 있습니다.

1. 위임 패턴 (Delegation)

가장 기본적인 패턴입니다. Client Agent가 Server Agent에 전체 작업을 맡기고 결과만 받습니다.
Client Agent ──tasks/send──→ Server Agent
Client Agent ←──completed───── Server Agent (Artifact 포함)
적합한 시나리오: 작업이 명확하고, 추가 협의 없이 처리 가능한 경우.
  • 번역 요청: “이 문서를 영어로 번역해줘”
  • 데이터 조회: “지난 달 매출 합계를 알려줘”
  • 코드 리뷰: “이 PR을 리뷰해줘”

2. 협상 패턴 (Negotiation)

input-required 상태를 활용하여 Agent 간 여러 라운드의 대화 로 요구사항을 구체화합니다.
Client Agent ──tasks/send──→ Server Agent
Client Agent ←──input-required── Server Agent ("예산 범위는?")
Client Agent ──message 추가──→ Server Agent ("100만원 이내")
Client Agent ←──input-required── Server Agent ("조식 포함 필요?")
Client Agent ──message 추가──→ Server Agent ("네, 조식 포함")
Client Agent ←──completed───── Server Agent (최종 결과)
적합한 시나리오: 초기 요구사항이 모호하거나, 단계적 구체화가 필요한 경우.
  • 호텔 예약: 날짜만 주어지고 세부 조건은 대화로 확인
  • 보고서 작성: 대략적 주제에서 구체적 분석 방향을 좁혀감
  • IT 헬프데스크: 증상 설명 → 추가 진단 질문 → 해결책 제시

3. 파이프라인 패턴 (Pipeline)

Agent A의 output이 Agent B의 input이 되는 순차 처리 패턴입니다.
Orchestrator ──Task 1──→ Agent A (데이터 수집)
Orchestrator ←──Artifact 1─── Agent A
Orchestrator ──Task 2 (Artifact 1 포함)──→ Agent B (데이터 정제)
Orchestrator ←──Artifact 2─── Agent B
Orchestrator ──Task 3 (Artifact 2 포함)──→ Agent C (시각화)
Orchestrator ←──Artifact 3─── Agent C
적합한 시나리오: 작업이 명확한 단계로 나뉘고, 각 단계가 서로 다른 전문성을 요구하는 경우.
  • ETL 파이프라인: 추출 Agent → 변환 Agent → 적재 Agent
  • 콘텐츠 제작: 리서치 Agent → 초안 작성 Agent → 편집 Agent
  • 보안 분석: 로그 수집 Agent → 이상 탐지 Agent → 대응 권고 Agent
주의사항: Orchestrator Agent가 전체 파이프라인의 흐름을 관리해야 하며, 중간 단계 실패 시 처리 전략(재시도 또는 중단)을 미리 정의해야 합니다.

4. 경쟁 패턴 (Competition)

같은 Task를 여러 Agent에 동시 전송 하고, 가장 빠르거나 가장 좋은 결과를 채택합니다.
Orchestrator ──Task (동일)──→ Agent A (GPT 기반)
Orchestrator ──Task (동일)──→ Agent B (Claude 기반)
Orchestrator ──Task (동일)──→ Agent C (Gemini 기반)

Orchestrator ←──결과 A── Agent A (3초)
Orchestrator ←──결과 B── Agent B (2초)  ← 가장 빠름
Orchestrator ←──결과 C── Agent C (5초)

→ 결과 B 채택 (또는 3개 결과를 비교하여 최선 선택)
적합한 시나리오: 결과의 품질이 중요하거나, 여러 관점이 필요한 경우.
  • 번역 품질 비교: 여러 번역 Agent의 결과를 비교하여 최선 채택
  • 가격 비교: 여러 항공사/호텔 Agent에 동시 검색하여 최저가 선택
  • LLM-as-Judge: 여러 Agent의 답변을 평가 Agent가 비교 채점
비용 고려: 동일 Task를 여러 Agent에 보내므로 비용이 N배 증가합니다. 품질이 중요한 고가치 작업에만 사용하세요.

5. 패턴 선택 가이드

상황권장 패턴
작업이 명확하고 단순위임 (Delegation)
요구사항이 모호하여 대화가 필요협상 (Negotiation)
작업이 여러 단계로 나뉨파이프라인 (Pipeline)
최선의 결과를 얻어야 함경쟁 (Competition)
복잡한 실제 시나리오패턴 조합 (예: 파이프라인 + 각 단계에서 협상)

Databricks에서의 활용 전망

시나리오설명
Cross-team Agent 협업데이터팀 Agent와 보안팀 Agent가 A2A로 통신
외부 벤더 Agent 연동SaaS 벤더가 제공하는 Agent와 사내 Agent 협업
Multi-Cloud AgentAWS/Azure/GCP 각 환경의 Agent가 표준 프로토콜로 통신
Supervisor 패턴 확장Databricks Supervisor Agent가 A2A로 외부 Agent에 작업 위임
주의 A2A는 2025년 초 발표된 프로토콜로, 아직 초기 단계입니다. Databricks의 공식 A2A 지원은 추후 발표를 확인하세요.

흔한 오해 (Common Misconceptions)

A2A 도입을 검토하는 고객이 자주 가지는 오해들입니다. 특히 MCP와의 관계를 정확히 이해하는 것이 중요합니다.
오해사실
”A2A는 MCP를 대체한다”A2A와 MCP는 서로 다른 문제를 해결합니다. 보완 관계이며 함께 사용합니다.
”A2A를 쓰면 모든 Agent가 자동으로 협업한다”Agent Card를 잘 설계하고, 각 Agent의 스킬을 명확히 정의해야 협업이 원활합니다.
”A2A는 Google 전용 기술이다”A2A는 오픈 프로토콜입니다. Google, Salesforce, SAP 등 50개 이상의 기업이 참여합니다.
”기존 Multi-Agent 시스템을 A2A로 교체해야 한다”같은 조직 내 Agent는 기존 프레임워크 내부 통신이 효율적일 수 있습니다. A2A는 이기종 시스템 간 통신에 가장 가치가 있습니다.

고객이 자주 묻는 질문

”A2A를 지금 도입해야 하나요?”

아직 초기 단계입니다. 내부 Multi-Agent 시스템은 기존 프레임워크(LangGraph, Databricks Agent Framework 등)로 충분히 구현할 수 있습니다. 외부 벤더의 Agent와 연동 이 필요하거나, 이기종 프레임워크 간 협업 이 요구될 때 A2A 도입을 검토하세요.

”A2A와 REST API의 차이가 뭔가요?”

REST API는 사전에 정의된 엔드포인트를 호출하는 방식입니다. A2A는 Agent가 자율적으로 상대방의 능력을 발견 하고 작업을 위임합니다. 핵심 차이는 세 가지입니다:
  • 자기소개 (Agent Card): Agent가 자신의 능력을 표준화된 형식으로 공개
  • 상태 관리 (Task lifecycle): 작업의 진행 상황을 추적하고, 추가 정보 요청도 가능
  • 스트리밍: 장기 실행 작업의 중간 결과를 실시간으로 수신

”MCP만 쓰면 안 되나요?”

단일 Agent가 여러 도구를 사용하는 데에는 MCP만으로 충분합니다. 하지만 여러 독립적인 Agent가 협업 해야 하는 경우에는 A2A가 필요합니다. 규모와 요구사항에 따라 선택하세요:
  • 도구 연동만 필요 → MCP
  • Agent 간 협업 필요 → A2A
  • 둘 다 필요 → A2A + MCP 결합

연습 문제

  1. MCP와 A2A의 핵심 차이를 “택배 시스템”에 비유하여 설명하세요.
  2. Agent Card에서 skills 필드가 왜 중요한지, 이 필드가 없다면 어떤 문제가 발생하는지 설명하세요.
  3. Task 상태 중 input-required가 존재하는 이유와, 이 상태가 없다면 어떤 한계가 있을지 설명하세요.
  4. “사내 IT 헬프데스크”를 A2A로 설계한다면 어떤 Agent들이 필요하고, 각 Agent의 Agent Card를 어떻게 정의하겠습니까?