AgentCore 브라우저 문제 해결
이 섹션에서는 Amazon Bedrock AgentCore 브라우저를 사용할 때 발생할 수 있는 일반적인 문제에 대한 솔루션을 제공합니다.
권한 거부 오류
증상: 액세스 거부 또는 권한 부족을 언급하는 오류.
해결 방법:
-
IAM 사용자 또는 역할에 필요한 브라우저 권한이 있는지 확인
-
자격 AWS 증명을 확인합니다.
aws sts get-caller-identity -
기록용: 실행 역할에 Amazon S3 쓰기 권한이 있는지 확인
-
기록용: 신뢰 정책에서가 역할을 수임
bedrock-agentcore.amazonaws.com하도록 허용하는지 확인
모델 액세스 거부됨
증상: 에이전트를 실행할 때 모델 액세스 또는 권한 부여에 대한 오류입니다.
해결 방법:
-
Amazon Bedrock 콘솔로 이동합니다.
-
왼쪽 탐색에서 모델 액세스로 이동합니다.
-
Anthropic Claude Sonnet 4 활성화
-
올바른 리전에 있는지 확인합니다(코드의 리전과 일치).
브라우저 세션 제한 시간
증상: 브라우저 세션이 예기치 않게 종료되거나 제한 시간 오류가 발생합니다.
해결 방법:
-
세션을 시작할 때
sessionTimeoutSeconds파라미터 확인 -
기본 제한 시간은 900초(15분)입니다.
-
더 긴 세션의 제한 시간 증가:
sessionTimeoutSeconds=1800 -
제한 시간 이후에 세션이 자동으로 중지됩니다.
Amazon S3에 레코딩이 표시되지 않음
증상: 세션이 완료된 후 Amazon S3 버킷에 레코딩 파일이 없습니다.
해결 방법:
-
실행 역할에 올바른 Amazon S3 권한이 있는지 확인
-
Amazon S3 버킷 이름과 접두사가 올바른지 확인
-
실행 역할 신뢰 정책에 bedrock-agentcore 서비스가 포함되어 있는지 확인합니다.
-
Amazon S3 업로드 오류에 대한 CloudWatch Logs 검토
-
세션이 최소 몇 초 동안 실행되었는지 확인합니다(매우 짧은 세션은 레코딩을 생성하지 않을 수 있음).
Playwright 연결 오류
증상: Playwright 또는 WebSocket 오류가 있는 브라우저에 연결할 수 없습니다.
해결 방법:
-
playwright를 설치했는지 확인합니다.
pip install playwright -
연결하기 전에 브라우저 세션이 성공적으로 시작되었는지 확인
-
세션이 여전히 활성 상태인지 확인합니다(시간 초과되지 않음).
-
네트워크에서 WebSocket 연결을 허용하는지 확인
CAPTCHA 검사로 인해 에이전트가 진행할 수 없음
문제: 브라우저 도구를 사용하여 웹 사이트와 상호 작용할 때 CAPTCHA 확인으로 에이전트가 차단됩니다.
원인: 인기 있는 웹 사이트의 봇 방지 조치가 자동 브라우징을 감지하고 사람의 확인이 필요합니다.
해결 방법: 검색 엔진을 피하고 다음 아키텍처 패턴을 구현하도록 에이전트를 구성합니다.
-
브라우저 도구는 일반 웹 검색이 아닌 특정 페이지 작업에만 사용합니다.
-
일반 웹 검색 작업을 위한 Tavily 검색과 같은 브라우저가 아닌 MCP 도구 사용
-
필요한 경우 최종 사용자가 CAPTCHAs를 제어하고 해결할 수 있도록 에이전트 애플리케이션에 라이브 뷰 기능을 추가하는 것이 좋습니다.
브라우저 애플리케이션과 통합 시 CORS 오류
문제: 사용자 지정 Amazon Bedrock AgentCore 런타임 서버를 호출하는 브라우저 기반 웹 애플리케이션을 빌드할 때 CORS(Cross-Origin Resource Sharing) 오류가 발생합니다.
원인: 브라우저 보안 정책은 로컬 개발 또는 자체 호스팅 배포 중에 런타임 서버에 대한 교차 오리진 요청을 차단합니다.
솔루션: BedrockAgentCoreApp에 CORS 미들웨어를 추가하여 프런트엔드의 교차 오리진 요청을 처리합니다.
from bedrock_agentcore.runtime import BedrockAgentCoreApp from fastapi.middleware.cors import CORSMiddleware app = BedrockAgentCoreApp() # Add CORS middleware to allow browser requests app.add_middleware( CORSMiddleware, allow_origins=["*"], # Customize in production allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Handle browser preflight requests to /invocations @app.options("/invocations") async def options_handler(): return {"message": "OK"} @app.entrypoint def my_agent(payload): return {"response": "Hello from agent"}
중요
프로덕션 환경에서는 보안을 강화하기 위해 allow_origins=["*"]를 특정 도메인 오리진으로 바꿉니다.
세션 재생 및 웹 봇 인증이 새 브라우저 창 또는 컨텍스트에서 작동하지 않음
문제: 자동화 코드가 새 브라우저 창 또는 컨텍스트를 생성할 때는 세션 재생 및 웹 봇 인증 기능을 사용할 수 없습니다.
원인: 이러한 기능은 Amazon Bedrock AgentCore에서 제공하는 기본 브라우저 컨텍스트에서만 작동하는 브라우저 확장을 사용합니다. Playwrightbrowser.new_context()의와 같은 메서드를 사용하여 새 컨텍스트를 생성하면 확장을 사용할 수 없습니다.
해결 방법: 브라우저 세션에 연결할 때 제공되는 기본 브라우저 컨텍스트를 사용합니다. 세션 재생 또는 웹 봇 인증 기능이 필요한 경우 새 컨텍스트 또는 창을 생성하지 마세요.
# ✓ Use the existing default context context = browser.contexts[0] page = context.pages[0] # ✗ Don't create new contexts - Session Replay and Web Bot Auth won't work # context = browser.new_context()
브라우저 확장 문제
액세스가 거부된 상태에서 확장 다운로드 실패
증상: 확장을 사용할 때 Amazon S3 액세스와 관련된 오류로 세션이 시작되지 않습니다.
해결 방법:
-
IAM 사용자 또는 역할에 확장 버킷에 대한
s3:GetObject및s3:GetObjectHead권한이 있는지 확인 -
API를 호출하는 동일한 AWS 계정이 Amazon S3 버킷을 소유하고 있는지 확인
-
버킷 이름과 접두사(객체 키)가 올바른지 확인합니다.
-
버전이 지정된 버킷을 사용하는 경우
s3:GetObjectVersion권한이 있는지 확인합니다.
잘못된 형식으로 인해 확장이 거부됨
증상: 세션이 확장 파일 형식에 대한 검증 오류로 시작되지 않습니다.
해결 방법:
-
확장 파일이 ZIP 형식인지 확인
-
ZIP 파일에 유효한 Chrome 확장 구조와 유효한
manifest.json파일이 포함되어 있는지 확인합니다. -
확장 프로그램이 Chrome 확장 지침을 따르는지 확인
-
ZIP이 상위 폴더가 아닌 확장 디렉터리 콘텐츠에서 생성되었는지 확인합니다.
브라우저 프로필 문제
프로파일의 동시 작업으로 인해 브라우저 세션 프로파일을 저장하지 못했습니다.
증상:가 SaveBrowserSessionProfile 발생합니다ConflictException.
해결 방법:
-
SaveBrowserSessionProfile나중에 재시도 -
에이전트 또는 코드에서 재시도하는 경우 지터와 함께 지수 백오프 사용
세션의 동시 작업으로 인해 브라우저 세션 프로파일을 저장하지 못했습니다.
증상:가 SaveBrowserSessionProfile 발생합니다ConflictException.
해결 방법:
-
SaveBrowserSessionProfile나중에 재시도 -
에이전트 또는 코드에서 재시도하는 경우 지터와 함께 지수 백오프 사용
저장된 브라우저 프로필을 로드할 때 인증 실패
증상: 저장된 프로필에서 로드된 브라우저 세션은 프로필이 유효한 인증 쿠키와 함께 저장되었더라도 재인증이 필요합니다.
원인: 브라우저 프로필에 저장된 쿠키가 만료되었습니다. 웹 사이트는 쿠키(예: 인증 토큰)에 만료 시간을 설정하고 브라우저는 이러한 만료 날짜에 따라 만료된 쿠키를 자동으로 제거합니다. 프로필을 로드하면 프로필이 저장된 이후 만료된 쿠키는 사용할 수 없습니다.
해결 방법:
-
브라우저 세션에서 재인증하여 새 쿠키 얻기
-
재인증 후 프로필을 다시 저장하여 새 쿠키로 업데이트합니다.
-
장기 인증이 필요한 워크플로의 경우 프로필 사용을 계획할 때 대상 웹 사이트의 일반적인 쿠키 수명을 고려하세요.
-
쿠키 만료가 예상되는 경우 자동화 워크플로에서 정기적인 재인증 구현
-
중요한 인증 상태에 대한 프로필을 더 자주 저장하여 저장과 후속 사용 사이의 시간을 최소화합니다.
참고
쿠키 만료 시간은 웹 사이트에서 설정되며 브라우저 프로필에서 수정할 수 없습니다. 세션 쿠키는 일반적으로 브라우저 세션이 종료될 때 만료되지만 영구 쿠키는 최대 기간 또는 만료 속성에 따라 만료됩니다.
루트 인증 기관 문제 해결
다음 표에서는 Amazon Bedrock AgentCore Browser에 대한 루트 CA 인증서를 구성할 때 발생하는 일반적인 오류와 해결 방법을 설명합니다.
| 오류 | 원인 | 해결 방법 |
|---|---|---|
|
Secrets Manager에서 인증서 암호를 찾을 수 없음 |
보안 암호 ARN이 존재하지 않거나 보안 암호가 삭제되었습니다. |
보안 암호 ARN이 올바르고 보안 암호가 지정된 리전에 존재하는지 확인합니다. |
|
Secrets Manager의 인증서 보안 암호에 대한 액세스 거부 |
호출자에게 보안 암호에 대한 |
지정된 보안 암호 ARN에 대한 IAM 정책에 |
|
인증서 콘텐츠가 유효한 PEM/X.509 형식이 아닙니다. |
보안 암호 값이 유효한 PEM 인코딩 X.509 인증서가 아닙니다. |
보안 암호에 로 시작하고 |
|
인증서가 만료되었습니다. |
인증서의 |
AWS Secrets Manager에서 만료된 인증서를 유효한 인증서로 바꾸고 다시 시도합니다. |
|
인증서가 아직 유효하지 않음 |
인증서의 |
인증서의 유효 기간이 시작될 때까지 기다리거나 현재 유효한 인증서를 사용합니다. |
|
인증서 수가 허용되는 최대 수를 초과합니다. |
세션 수준 또는 도구 수준에서 10개 이상의 인증서가 제공되었습니다. |
인증서 수를 세션당 10개 이하, 도구당 10개 이하로 줄입니다. |
|
인증서 위치는 필수입니다. |
인증서 항목이 위치 없이 제공되었습니다. |
배열의 각 인증서에 유효한가 포함된 |
|
인증서 구성이 활성화되지 않음 |
계정에는 인증서 기능이 활성화되어 있지 않습니다. |
계정에 대한 인증서 기능을 활성화하려면 AWS Support에 문의하세요. |
브라우저 프록시 문제 해결
프록시로 세션을 시작할 때 발생하는 오류
증상: 로 시작하는 메시지와 함께 HTTP 400 오류를 StartBrowserSession 반환합니다Failed to set up browser proxy:.
원인: 프록시 구성 또는 보안 인증 암호가 잘못되었습니다.
해결 방법:
-
Proxy credentials secret not found in Secrets Manager- 보안 암호 ARN이 대상 계정 및 리전의 보안 암호와 일치하지 않습니다. ARN이 올바르고 보안 암호가 삭제되거나 삭제 예약되지 않았는지 확인합니다. -
Invalid proxy credentials secret configuration (check encryption key for cross-account access)- 보안 암호가 존재하지만 액세스할 수 없습니다. 호출 자격 증명에secretsmanager:GetSecretValue권한이 있는지 확인합니다. 교차 계정 보안 암호는 교차 계정 보안 암호 액세스를 참조하세요. -
Proxy credentials secret must be a JSON object with username and password fields- 보안 암호 값을 유효한 JSON 객체로 업데이트합니다{"username": "…", "password": "…"}. -
Failed to parse proxy credentials from secret- 보안 암호 값을 프록시 자격 증명으로 읽을 수 없습니다. 보안 암호에username및password필드가 있는 일반 JSON 문자열(바이너리 아님)이 포함되어 있는지 확인합니다. -
Field 'username' is missing or empty in secret또는Field 'password' is missing or empty in secret- 보안 암호에username및password가 모두 있고 비어 있지 않은지 확인합니다. -
Field 'username' contains invalid characters또는Field 'password' contains invalid characters- 오류 메시지에 나열된 문자만 사용합니다. 허용된 문자에 대한 1단계: 자격 증명 보안 암호 생성(인증 사용 시)을 참조하세요. -
Field 'username' exceeds maximum length of 256 characters또는Field 'password' exceeds maximum length of 256 characters- 자격 증명을 256자 이하로 줄입니다.
브라우저의 프록시 연결 오류
증상: 브라우저 세션이 성공적으로 시작되지만 HTTP 502 오류 또는가 있는 프록시 도메인의 경우 페이지 탐색이 실패합니다net::ERR_INVALID_AUTH_CREDENTIALS.
원인: 브라우저가 프록시 서버에 연결할 수 없거나 프록시 서버가 제공된 자격 증명을 거부합니다. 이는 AWS API 오류가 아닌 Chromium 네트워크 오류입니다.
해결 방법:
-
프록시 페이지의 HTTP 502 - 프록시 호스트 이름, 포트 및 서버가 실행 중이고 퍼블릭 인터넷(또는 VPC 구성을 사용하는 경우 VPC)에서 연결할 수 있는지 확인합니다.
-
net::ERR_INVALID_AUTH_CREDENTIALS- Secrets Manager의 보안 암호를 프록시 서버의 유효한 자격 증명으로 업데이트합니다. -
GetBrowserSession를 사용하여 활성 프록시 설정을 확인합니다. 자격 증명은 응답으로 반환되지 않습니다.
참고
이러한 오류는 라이브 뷰와 자동화 API를 통해 볼 수 있습니다.
InvokeBrowser OS 작업 문제 해결
다음 표에서는 OS 수준 브라우저 작업에 InvokeBrowser API를 사용할 때 발생하는 일반적인 오류를 설명합니다.
| 예외 | HTTP 코드 | 설명 |
|---|---|---|
|
|
400 |
잘못된 입력입니다. 좌표 기반 작업( |
|
|
403 |
세션에 허용되지 않는 권한 또는 작업이 부족합니다. |
|
|
404 |
|
|
|
402 |
서비스 할당량을 초과했습니다. |
|
|
429 |
속도 제한을 초과했습니다. |
|
|
500 |
예기치 않은 실행 실패. |
해결 방법:
-
좌표 값이 세션 뷰포트 차원 내에 있는지 확인합니다.
screenshot작업을 사용하여 현재 화면을 캡처하고 가시 영역을 확인합니다. -
브라우저 세션이 여전히 활성 상태이고 시간 초과되지 않았는지 확인합니다.
-
IAM 자격 증명에
bedrock-agentcore:InvokeBrowser권한이 있는지 확인합니다.