View a markdown version of this page

AgentCore 브라우저 문제 해결 - Amazon Bedrock AgentCore

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:GetObjects3: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의 인증서 보안 암호에 대한 액세스 거부

호출자에게 보안 암호에 대한 secretsmanager:GetSecretValue 권한이 없습니다.

지정된 보안 암호 ARN에 대한 IAM 정책에 secretsmanager:GetSecretValue 권한을 추가합니다.

인증서 콘텐츠가 유효한 PEM/X.509 형식이 아닙니다.

보안 암호 값이 유효한 PEM 인코딩 X.509 인증서가 아닙니다.

보안 암호에 로 시작하고 -----BEGIN CERTIFICATE----- 로 끝나는 올바른 형식의 PEM 인증서가 포함되어 있는지 확인합니다-----END CERTIFICATE-----.

인증서가 만료되었습니다.

인증서의 notAfter 날짜가 과거입니다.

AWS Secrets Manager에서 만료된 인증서를 유효한 인증서로 바꾸고 다시 시도합니다.

인증서가 아직 유효하지 않음

인증서의 notBefore 날짜는 미래 날짜입니다.

인증서의 유효 기간이 시작될 때까지 기다리거나 현재 유효한 인증서를 사용합니다.

인증서 수가 허용되는 최대 수를 초과합니다.

세션 수준 또는 도구 수준에서 10개 이상의 인증서가 제공되었습니다.

인증서 수를 세션당 10개 이하, 도구당 10개 이하로 줄입니다.

인증서 위치는 필수입니다.

인증서 항목이 위치 없이 제공되었습니다.

배열의 각 인증서에 유효한가 포함된 secretsManager 항목이 location 있는가 포함되어 있는지 확인합니다secretArn.

인증서 구성이 활성화되지 않음

계정에는 인증서 기능이 활성화되어 있지 않습니다.

계정에 대한 인증서 기능을 활성화하려면 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 - 보안 암호 값을 프록시 자격 증명으로 읽을 수 없습니다. 보안 암호에 usernamepassword 필드가 있는 일반 JSON 문자열(바이너리 아님)이 포함되어 있는지 확인합니다.

  • Field 'username' is missing or empty in secret 또는 Field 'password' is missing or empty in secret - 보안 암호에 usernamepassword가 모두 있고 비어 있지 않은지 확인합니다.

  • 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 코드 설명

ValidationException

400

잘못된 입력입니다. 좌표 기반 작업(mouseClick, mouseMove , mouseDrag , mouseScroll )의 경우 좌표는 세션 뷰포트 경계(1 < x < viewportWidth-2, 1 < y < viewportHeight-2) 내에 있어야 합니다. 기본 뷰포트 크기는 1456×819픽셀입니다. 비활성화된 작업 또는 잘못된 파라미터 값에 대해서도 반환됩니다.

AccessDeniedException

403

세션에 허용되지 않는 권한 또는 작업이 부족합니다.

ResourceNotFoundException

404

browserIdentifier 또는가 잘못되었습니다sessionId.

ServiceQuotaExceededException

402

서비스 할당량을 초과했습니다.

ThrottlingException

429

속도 제한을 초과했습니다.

InternalServerException

500

예기치 않은 실행 실패.

해결 방법:

  • 좌표 값이 세션 뷰포트 차원 내에 있는지 확인합니다. screenshot 작업을 사용하여 현재 화면을 캡처하고 가시 영역을 확인합니다.

  • 브라우저 세션이 여전히 활성 상태이고 시간 초과되지 않았는지 확인합니다.

  • IAM 자격 증명에 bedrock-agentcore:InvokeBrowser 권한이 있는지 확인합니다.