TL;DR
AI agent가 내부 도구를 직접 호출하면 mcp.json에 자격 증명이 흩어지고 사용자별 접근과 감사 기록을 확인하기 어렵기 때문에, 글은 Amazon Bedrock AgentCore Gateway를 단일 진입점으로 두는 네 단계 거버넌스 여정을 제안합니다. Scope 1은 Cognito JWT 인증과 중앙 자격 증명, CloudTrail 감사로 연결을 통제하고, Scope 2는 DCR·Cedar·Guardrails로 사용자별 권한과 PII 처리를 추가하며, Scope 3은 Registry·Resources MCP·OPA·PrivateLink로 self-service와 온프레미스·SaaS 연결을 확장합니다. Scope 4에서는 CloudFront·ALB·VPC endpoint·PrivateLink로 public ingress를 제거하고 Athena 대시보드, Route 53 failover, 미사용 도구 폐기로 복원력과 운영 거버넌스를 강화합니다. 금융 서비스 사례에서는 2명에서 1,000명으로 확장하는 동안 Scope 3 도입 후 ticket queue가 약 40% 줄었고, 최종 기준은 미리 정한 일정이 아니라 조직이 다음으로 제기하는 거버넌스 질문이었습니다.
섹션별 상세

aws bedrock-agentcore-control create-gateway \
--name pilot-gateway \
--role-arn arn:aws:iam:::role/GatewayRole \
--protocol-type MCP \
--authorizer-type CUSTOM_JWT \
--authorizer-configuration '{ "customJWTAuthorizer": { "discoveryUrl": "https://cognito-idp..amazonaws.com//.well-known/openid-configuration", "allowedClients": ["pilot-gateway-client"] } }'Cognito가 발급한 JWT만 Gateway가 허용하는 인증 수단으로 지정하면서 MCP Gateway를 생성합니다.
{ "mcpServers": { "enterprise-tools-gateway": { "url": "https://.gateway.bedrock-agentcore..amazonaws.com/mcp", "type": "http" } } }기존 mcp.json에 로컬 서버 대신 중앙 Gateway의 HTTP MCP 엔드포인트를 등록합니다.

// Payments deployers can deploy, but only to staging
permit ( principal, action == AgentCore::Action::"DeployCI___invoke", resource ) when {
principal.hasTag("groups") && principal.getTag("groups").contains("repo-payments-service") /* Note: for Cognito, the claim is cognito:groups, not groups. Refer to your deployed Gateway Cedar schema for the precise tag names. */
&& context.input.environment == "staging"
};
// Read-only tools are open to any authenticated principal with a group
permit ( principal, action in [ AgentCore::Action::"TicketSearch___invoke", AgentCore::Action::"DocsSearch___invoke" ], resource ) when {
principal.hasTag("groups")
};Cedar 정책이 사용자 그룹과 요청 환경을 함께 검사해 배포 도구는 staging에서만 허용하고 읽기 도구는 그룹이 있는 인증 사용자에게 허용합니다.
{
"contentPolicyConfig": {
"filtersConfig": [{ "type": "PROMPT_ATTACK", "inputStrength": "HIGH", "outputStrength": "NONE" }]
},
"sensitiveInformationPolicyConfig": {
"piiEntitiesConfig": [
{ "type": "EMAIL", "action": "ANONYMIZE" },
{ "type": "US_SOCIAL_SECURITY_NUMBER", "action": "BLOCK" },
{ "type": "CREDIT_DEBIT_CARD_NUMBER", "action": "BLOCK" }
]
}
}Gateway 계층의 Guardrails 설정이 prompt attack을 감지하고 이메일을 익명화하며 주민등록번호와 카드 번호를 차단합니다.


def handler(event, _ctx):
for tool in list_registry_tools():
datapoints = cw.get_metric_statistics(
Namespace="AWS/BedrockAgentCore",
MetricName="Invocations",
Dimensions=[{"Name":"ToolName","Value":tool.name}],
StartTime=now()-timedelta(days=30),
EndTime=now(),
Period=86400,
Statistics=["Sum"],
)["Datapoints"]
if sum(p["Sum"] for p in datapoints) == 0:
open_pr(f"deprecate/{tool.name}", body="No invocations in 30d; moving to LOG_ONLY, removal in 90d.")최근 30일 동안 호출되지 않은 도구를 찾아 LOG_ONLY 전환과 90일 뒤 삭제를 위한 pull request를 자동으로 엽니다.

용어 해설
- Model Context Protocol(Model Context Protocol (MCP))
- — AI 애플리케이션이 외부 도구와 데이터에 일관된 방식으로 연결되도록 정한 프로토콜입니다. MCP 클라이언트가 tools/list와 tools/call 같은 요청을 보내면 서버가 사용 가능한 도구와 실행 결과를 반환합니다. 이 글에서는 로컬 설정 파일에 흩어진 자격 증명을 중앙 Gateway 뒤로 이동시키는 연결 기준으로 사용됩니다.
- 동적 클라이언트 등록(Dynamic Client Registration (DCR))
- — OAuth 클라이언트가 사전에 수동 등록되지 않아도 등록 엔드포인트를 통해 애플리케이션 클라이언트를 생성하는 방식입니다. 이 글에서는 Lambda와 Amazon API Gateway로 만든 DCR shim이 Cognito app client를 만들고 AgentCore Gateway의 허용 클라이언트 목록에 추가합니다. 사용자별 인증 전환 과정에서 클라이언트 발급을 자동화하는 역할을 맡습니다.
- Cedar 기반 RBAC·ABAC(Cedar RBAC/ABAC)
- — Cedar 정책 언어로 사용자 그룹이나 토큰 속성에 따른 역할 기반 접근 제어와 요청 파라미터 기반 접근 제어를 함께 적용하는 방식입니다. 정책은 호출 주체, action, resource, context.input 같은 값을 평가해 도구 실행을 허용하거나 거부합니다. 글에서는 특정 그룹이 staging 환경에서만 배포 도구를 호출하도록 제한하는 사례에 사용됩니다.
- 3LO 인증 코드 흐름(3LO Authorization Code flow)
- — 사용자가 브라우저에서 외부 서비스 접근에 동의하고, 그 결과로 사용자 위임 권한을 발급하는 OAuth 흐름입니다. Gateway는 MCP elicitation 오류와 authorization URL을 반환해 assistant가 사용자를 브라우저 동의 화면으로 안내하도록 합니다. GitHub나 Figma처럼 사용자별 외부 자격 증명이 필요한 도구에 적용됩니다.
- Open Policy Agent(Open Policy Agent (OPA))
- — Cedar만으로 표현하기 어려운 시간대, 요청 본문, 호출 빈도, 변경 티켓 같은 조직 정책을 Rego 규칙으로 평가하는 정책 엔진입니다. 글에서는 request-interceptor Lambda 안에서 OPA를 실행해 db_write를 평일 09:00부터 17:00 UTC 사이의 변경 티켓이 있는 요청으로 제한합니다. Scope 3에서 다중 환경과 복잡한 ABAC 규칙을 보완합니다.
- AWS PrivateLink(PrivateLink)
- — VPC의 private subnet에서 AWS 서비스나 Gateway에 사설 네트워크 경로를 제공하는 연결 방식입니다. 글에서는 VPC endpoint와 PrivateLink를 통해 Gateway 트래픽이 AWS 네트워크 안에 머물도록 구성하고, Scope 4에서 public DNS 노출을 제거합니다. 온프레미스 연결에는 AWS Direct Connect 또는 Site-to-Site VPN이 함께 사용됩니다.
기술
- Amazon Bedrock AgentCore
- AgentCore Gateway
- AgentCore Identity
- AgentCore Policy
- Amazon Bedrock Guardrails
- AWS Agent Registry
- Amazon Cognito
- AWS Lambda
- Amazon API Gateway
- AWS IAM
- Amazon DynamoDB
- Amazon CloudWatch
- AWS CloudTrail
- AWS X-Ray
- AWS Secrets Manager
- AWS PrivateLink
- AWS Direct Connect
- Open Policy Agent
- Amazon CloudFront
- Amazon Athena
- Amazon Route 53
- AWS Cost Explorer
- AWS Budgets
- AWS CDK
- Model Context Protocol
- Kiro
- Claude Code
- Cursor
- Amazon Quick
활용 사례
- IDE assistant가 내부 ticket·문서·배포 도구를 호출하는 환경
- 고객 데이터가 포함된 도구 호출의 사용자별 감사
- GitHub·Figma·Slack 같은 SaaS에 대한 사용자 위임 접근
- 온프레미스 데이터베이스와 외부 SaaS를 함께 연결하는 기업용 agent 플랫폼
- 규제 산업의 private ingress·감사 대시보드·다중 리전 장애 조치
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
