Making Amazon Quick enterprise-ready: Automated, auditable cross-account resource promotion
Quick Summary
Quick Resource Migrator는 Amazon Bedrock AgentCore에서 실행되는 MCP 서버로, Amazon Quick 리소스의 AWS 계정 간 승격을 생성·갱신 방식으로 자동화하고 권한 복제, 사전 미리보기, 선택적 백업·복원을 지원한다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 요약
Quick Resource Migrator는 Amazon Bedrock AgentCore에서 실행되는 MCP 서버로, Amazon Quick 리소스의 AWS 계정 간 승격을 생성·갱신 방식으로 자동화하고 권한 복제, 사전 미리보기, 선택적 백업·복원을 지원한다.
📌 핵심 요약
- Amazon Quick의 에이전트, 액션 커넥터, 지식 베이스, 플로, 스페이스를 개발 AWS 계정에서 운영 계정으로 옮기는 작업에는 기본 제공되는 원클릭 승격 기능이 없어 수동 재구성과 권한 재설정이 필요하다. Quick Resource Migrator는 Amazon Quick API를 조합해 이 작업을 반복 실행 가능한 방식으로 자동화한다.
- 리소스 유형을 정하고 ID, 이름 또는 전체 선택으로 대상을 지정한다. 대상에 없는 리소스는 생성하고 기존 리소스는 갱신하며, 대상 삭제는 수행하지 않는다. 원본 권한의 작업 목록을 복제하고 권한 주체를 대상 계정의 등록 사용자에 매핑하며, 플로는 계정마다 ID가 달라 이름으로 대응시킨다.
- 액션 커넥터는 원본 비밀 값을 읽지 않고 임시 자격 증명으로 생성한 뒤 대상에서 재인증한다. S3 기반 지식 베이스는 대상 버킷·버킷 정책·데이터 소스를 구성하지만 S3 객체는 복사하지 않는다. 스페이스의 연결을 복원하려면 연결 리소스를 먼저 이전해 대상 ARN이 해석되도록 해야 한다.
- 중앙 실행 계정의 Amazon Bedrock AgentCore 런타임이 AWS STS로 원본의 읽기 전용 역할과 대상의 필요한 읽기·쓰기 역할을 수임한다. 호출자는 Amazon Cognito JWT로 인증하며 VPC 네트워크 모드를 사용할 수 있고, 장기 자격 증명은 저장하지 않는다.
- preview_migration은 변경 없이 이전 범위를 보여주며 대상 계정을 지정하면 CREATE·UPDATE 매핑도 제공한다. migrate_resources는 실제 이전과 결과 보고를 수행한다. 백업 버킷은 선택 사항이며, 구성된 경우 갱신 전 버전별 스냅샷을 저장하고 백업 실패 시 갱신을 중단한다. list_backups, get_backup, restore_backup은 이력 조회와 복원을 지원하며 복원 전에도 새 백업을 만든다.
🧩 주요 포인트
- Amazon Quick API의 구성·권한 조회와 생성·갱신 기능을 결합하고 대상 삭제를 배제함으로써, 수동 재구성을 반복 가능한 승격 작업으로 바꾸고 재실행 시 동일한 대상 상태로 수렴하도록 설계한다.
- 권한 복제와 대상 ARN 매핑이 리소스 간 연결을 유지하지만, 액션 커넥터 재인증과 S3 객체 미복사는 별도 처리가 필요한 경계를 남긴다. 스페이스 이전은 연결 리소스의 선행 이전에 의존한다.
- preview_migration의 CREATE·UPDATE 예측과 선택적 백업·복원은 변경 범위 확인과 되돌리기를 뒷받침한다. 다만 백업 버킷을 설정하지 않으면 백업 기능이 비활성화되므로, 복구 보장은 해당 구성에 달려 있다.
🧠 상세 정리
1. 개발에서 운영으로 옮길 때 발생하는 문제
Amazon Quick은 업무용 에이전틱 AI 동반자로, 사용자가 자신의 데이터를 바탕으로 추론하고 액션 커넥터를 호출하며 여러 단계의 작업을 완료하는 에이전트를 만들 수 있게 한다. 팀은 개발 계정에서 사용자 지정 지침을 가진 채팅 에이전트, Slack·Jira 등의 커넥터, 문서에 근거한 지식 베이스, 이들을 묶는 스페이스를 구성하고 빠르게 개선한다. 기업은 대개 개발과 운영을 별도 AWS 계정으로 분리하고 때로는 중간에 QA 계정을 두지만, 검증된 리소스를 다음 계정으로 승격하는 기본 원클릭 기능은 없다. 따라서 에이전트 지침과 시작 프롬프트를 다시 입력하고 커넥터를 재연결하며 권한을 재부여하고 지식 베이스의 S3 버킷·정책·데이터 소스를 다시 구성해야 한다. 원문은 이 수작업이 느리고 감사하기 어려우며 미묘한 오류를 만들기 쉬워 기업이 요구하는 거버넌스를 약화시킨다고 설명하고, 이를 자동화하는 샘플 MCP 서버를 제시한다.
2. API를 조합한 반복 가능한 승격
Amazon Quick 리소스는 Amazon Quick Sight API 영역에 속하는 Amazon Quick API를 통해 생성, 조회, 갱신, 삭제, 목록 확인이 가능하며 권한도 프로그램으로 관리할 수 있다. 이 인터페이스를 이용하면 사용자가 구성한 에이전트 지침과 시작 프롬프트, 커넥터, 지식 베이스, 플로 등을 원본 계정에서 읽고 다른 계정에 다시 적용할 수 있다. Quick Resource Migrator는 이 가운데 생성·조회·갱신·목록 작업을 하나의 반복 가능한 흐름으로 묶으며 대상 계정에 삭제 요청을 보내지 않는다. 사용자는 에이전트, 커넥터, 지식 베이스, 플로, 스페이스 중 유형을 고른 뒤 ID, 이름 또는 전체 선택으로 이전 범위를 정한다. 대상에 리소스가 없으면 생성하고 이미 있으면 제자리에서 갱신하는 방식이므로, 재실행은 중복 생성이나 실패 대신 같은 상태로 수렴하도록 설계됐다. 서버는 Amazon Bedrock AgentCore 런타임에 호스팅되며 Amazon Quick이나 MCP 호환 클라이언트에서 호출할 수 있고, 전체 소스 코드는 aws-samples 저장소에 공개되어 있다.
3. 채팅 에이전트와 액션 커넥터의 이전
채팅 에이전트를 이전할 때는 사용자 지정 지침, 정체성, 말투, 시작 프롬프트, 환영 메시지를 대상 계정에 재구성한다. 에이전트에 연결된 액션 커넥터도 대상 계정의 리소스로 매핑해 다시 부착하며, 에이전트와 스페이스 사이의 연결은 해당 스페이스를 이전할 때 복원한다. 액션 커넥터 자체는 구성을 복제하지만 원본에 저장된 비밀 값은 읽지 않는다는 경계를 둔다. 인증 구성은 생성 요청에 사용할 쓰기 모델에 맞게 정리되고, 커넥터는 임시 자격 증명으로 생성된 후 대상 계정에서 재인증해야 한다. 에이전트와 커넥터의 권한도 원본에서 조회해 대상에 적용하므로 구성과 접근 권한을 함께 옮기는 흐름이다. 따라서 자동화는 에이전트 구성과 커넥터 연결을 재현하지만, 커넥터 인증까지 원본 비밀 값으로 그대로 이전하는 방식은 아니다.
4. 지식 베이스·플로·스페이스의 서로 다른 처리
지식 베이스는 대상 계정에 등록하고 데이터 소스를 다시 만들며 권한을 복제하고, S3 기반인 경우 대상 버킷과 버킷 정책도 별도 이전 결과로 구성한다. 버킷 이름에는 환경과 계정 정보가 반영되어 knowledge-base-<env>-<account> 형식을 사용하지만, 문서에 해당하는 S3 객체 자체는 복사하지 않는다. 플로는 정의를 바탕으로 재구성하되 계정마다 ID가 다르므로 이름으로 대응시켜, 대상에 같은 이름의 플로가 있으면 갱신하고 없으면 새로 만든 뒤 권한을 복제한다. 스페이스는 대상 계정에 재구성하고 연결된 에이전트, 커넥터, 지식 베이스의 ARN을 대상 계정 값으로 매핑해 연결을 복원하며 스페이스 권한도 복제한다. 원문은 스페이스와 연결 리소스를 함께 옮기는 사용 방식을 설명하면서, 실제 연결 복원을 위해서는 관련 리소스를 먼저 이전해 대상 ARN이 해석되도록 해야 한다고 명시한다. 이 차이 때문에 각 리소스의 이전 완료 여부는 구성 생성뿐 아니라 데이터와 연결에 관한 제약을 함께 고려해야 한다.
5. 권한 충실도와 되돌릴 수 있는 갱신
권한은 서버에 고정된 값으로 넣지 않고 각 원본 리소스의 Describe*Permissions API를 호출해 읽은 다음, 동일한 작업 목록을 대상에 재적용한다. 이때 권한 주체는 대상 계정에 등록된 사용자로 다시 매핑하며, 서버는 대상 리소스를 먼저 조회해 생성할지 갱신할지를 결정한다. 안전한 갱신 설계에서는 기존 대상 리소스를 바꾸기 전에 해당 리소스와 의존 항목의 버전별 스냅샷을 전용 S3 백업 버킷에 기록하고, 이 기록에 실패하면 갱신을 중단한다. 생성되거나 갱신된 리소스도 스냅샷으로 남겨 이력을 확인하고 이전 버전으로 복원할 수 있도록 한다. 다만 아키텍처 설명은 백업 버킷을 선택 사항으로 명시하며, 설정하지 않으면 백업 기능이 비활성화된다고 밝힌다. 따라서 원문이 제시하는 감사 가능한 이력과 복원 기능은 백업 구성이 활성화된 경우를 전제로 이해해야 하며, 이를 모든 배포에서 자동으로 제공되는 보장으로 확대할 수는 없다.
6. 세 계정 구조와 인증·접근 분리
아키텍처는 중앙 실행 계정, 원본 계정, 대상 계정의 세 계정 모델을 사용하며 중앙의 Amazon Bedrock AgentCore 런타임이 server.py의 MCP 서버를 호스팅하고 이전을 조율한다. 서버는 AWS STS를 통해 원본의 읽기 전용 역할과 대상의 필요한 읽기·쓰기 역할을 수임하므로 장기 자격 증명을 저장하지 않는다. 실행 역할은 Amazon CloudWatch Logs와 텔레메트리, 두 계정의 역할에 대한 sts:AssumeRole을 담당하고, 원본 역할은 Quick Sight의 조회·목록 및 지식 베이스 읽기 권한을 갖는다. 대상 역할에는 Quick Sight 생성·갱신, 지식 베이스와 S3 쓰기, 권한 주체 해석을 위한 ListUsers가 포함되며 최소 권한 원칙을 적용한다. 중앙 계정의 Amazon Cognito는 사용자 풀, 리소스 서버, 기계 간 앱 클라이언트를 통해 client-credentials 방식과 invoke 범위의 JWT를 발급하며, 런타임은 Cognito JWT 인증과 VPC 네트워크 모드를 지원한다. 선택적으로 구성하는 중앙 계정의 암호화된 S3 백업 버킷에는 갱신 전후 스냅샷을 런타임이 직접 기록하고 복원 도구가 이를 읽는다.
7. 리소스 해석에서 결과 보고까지의 흐름
이전은 리소스 유형과 ID·이름·전체 선택 조건을 원본 계정의 구체적인 리소스 ID로 해석하는 단계에서 시작하고, 각 리소스의 구성과 권한을 조회한다. 이어 커넥터의 인증 구성을 생성용 모델로 정리해 임시 비밀 값으로 재구성하고 권한을 복제하며, 대상에서 재인증하는 처리가 뒤따른다. 지식 베이스 단계에서는 대상 버킷, 버킷 정책, 데이터 소스, 지식 베이스를 구성하고 권한을 적용하지만 S3 객체는 옮기지 않는다. 에이전트는 대상 커넥터를 연결해 재구성하고 권한을 복제하며, 플로는 정의와 이름을 기준으로 생성 또는 갱신하고 권한을 적용한다. 스페이스는 선행 이전된 리소스의 대상 ARN으로 연결을 복원하고 권한을 복제하므로, 원문의 흐름은 리소스 간 연결 의존성을 드러낸다. 마지막에는 생성·갱신한 리소스, 버킷, 백업, 건너뛴 권한, 오류를 포함한 JSON 보고서를 반환해 실행 결과를 확인할 수 있게 한다.
8. 다섯 MCP 도구와 제공된 배포 정보의 범위
server.py는 다섯 도구를 제공하며, 읽기 전용 preview_migration은 원본 계정 ID, 리소스 유형, 선택 조건, AWS 리전을 받아 변경 없이 이전 대상의 이름과 유형을 보여주고 대상 계정 ID가 있으면 CREATE·UPDATE 매핑도 추가한다. 이 미리보기는 유형으로 all도 허용하며 변경관리 승인 전에 범위를 확인하는 데 사용할 수 있지만, 실제 migrate_resources는 에이전트·커넥터·지식 베이스·플로·스페이스 중 한 유형을 받아 생성 또는 갱신을 수행한다. migrate_resources에는 원본·대상 계정 ID, 선택 조건, 리전, 버킷 이름에 쓰이는 원본·대상 환경 이름, Quick Sight 서비스 역할 이름도 전달하며, 생성·갱신·권한 부여 내역과 오류를 구조화해 반환한다. 읽기 전용 list_backups는 자산별 백업 버전 이력을 찾고, get_backup은 지정 자산과 버전의 구성·의존 항목을 반환하며 버전을 생략하면 최신 값을 사용한다. restore_backup은 저장된 버전을 대상에 다시 적용해 기존 리소스를 갱신하거나 사라진 리소스를 재생성하고, 복원 전에 새 백업을 만들어 되돌리기 자체도 되돌릴 수 있게 한다. 제공된 원문은 배포 절의 첫 문장에서 잘려 있어 구체적인 단계별 배포 절차는 확인할 수 없으며, 앞부분에서 밝힌 소스 코드 공개 사실을 넘어 누락된 절차를 추정할 근거는 없다.
🧾 핵심 주장 / 시사점
- 승격 자동화의 중심은 Amazon Quick 리소스의 구성뿐 아니라 권한과 연결 관계를 함께 재현하는 데 있다. API 기반 조회와 대상 매핑이 수동 재구성에서 발생하기 쉬운 차이를 줄이는 설계다.
- 반복 실행 가능한 생성·갱신 방식과 대상 삭제 배제는 안전한 재실행을 뒷받침하지만, 액션 커넥터 재인증과 S3 객체 이전까지 완료했다는 의미는 아니다.
- 사전 미리보기와 버전별 백업은 각각 변경 전 범위 확인과 변경 후 복구를 담당한다. 백업 버킷이 선택 사항이라는 조건 때문에 감사 이력과 복원 가능성을 실제 배포 구성과 함께 판단해야 한다.
✅ 액션 아이템
- preview_migration으로 이전 범위와 대상 계정의 CREATE·UPDATE 매핑을 확인.
- 액션 커넥터 재인증, S3 객체 미복사, 스페이스 연결 리소스의 선행 이전을 반영해 이전 완료 범위를 판단.
- 백업 버킷 설정 여부와 restore_backup 사용 가능 여부를 확인해 갱신 후 복구 가능성을 검토.
❓ 열린 질문
- preview_migration에서 확인되는 CREATE·UPDATE 대상은 의도한 이전 범위와 일치하는가?
- 액션 커넥터 재인증과 S3 객체 미복사를 고려할 때 대상 계정의 이전 완료 기준은 무엇인가?
- 백업 버킷이 설정되어 있어 list_backups, get_backup, restore_backup으로 이력 조회와 복원이 가능한가?