브라우저 프로필 사용
브라우저 프로파일을 사용하면 여러 브라우저 세션에서 브라우저 프로파일 데이터를 유지하고 재사용할 수 있습니다. 브라우저 프로필은 쿠키 및 로컬 스토리지를 포함한 세션 정보를 저장합니다.
예를 들어 브라우저 세션에서 한 번 웹 사이트에 인증하고 프로필 데이터를 브라우저 프로필 리소스에 저장할 수 있습니다. 저장된 프로필로 새 브라우저 세션을 시작하면 인증 상태가 유지되고 로그인된 상태로 유지됩니다. 이를 통해 에이전트는 수동 개입 없이 인증된 웹 사이트에서 작업을 수행할 수 있습니다.
개요
Amazon Bedrock AgentCore의 브라우저 프로파일은 다음과 같이 작동합니다.
-
브라우저 세션에서 재사용할 브라우저 프로필 리소스 생성
-
브라우저 세션을 시작하고 쿠키 및 로컬 스토리지를 채우는 작업(예: 웹 사이트 로그인 또는 장바구니에 항목 넣기)을 수행합니다.
-
현재 브라우저 세션의 프로필 데이터를 브라우저 프로필 리소스에 저장
-
저장된 프로필을 사용하여 새 브라우저 세션을 시작하여 이전 상태를 복원합니다.
사전 조건
브라우저 프로파일을 사용하기 전에 다음을 갖추어야 합니다.
-
일반 브라우저 사전 조건 완료
-
프로필 리소스를 관리할 수 있는 IAM 권한. IAM 정책에 다음 권한을 추가합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockAgentCoreBrowserProfileManagementAccess",
"Effect": "Allow",
"Action": [
"bedrock-agentcore:CreateBrowserProfile",
"bedrock-agentcore:ListBrowserProfiles",
"bedrock-agentcore:GetBrowserProfile",
"bedrock-agentcore:DeleteBrowserProfile"
],
"Resource": "arn:aws:bedrock-agentcore:<Region>:<account_id>:browser-profile/*"
}
]
}
-
프로필을 저장하고 로드할 수 있는 IAM 권한. IAM 정책에 다음 권한을 추가합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockAgentCoreBrowserProfileUsageAccess",
"Effect": "Allow",
"Action": [
"bedrock-agentcore:StartBrowserSession",
"bedrock-agentcore:SaveBrowserSessionProfile"
],
"Resource": [
"arn:aws:bedrock-agentcore:<Region>:<account_id>:browser-profile/*",
"arn:aws:bedrock-agentcore:<Region>:<account_id>:browser-custom/*",
"arn:aws:bedrock-agentcore:<Region>:<account_id>:browser/*"
]
}
]
}
브라우저 프로파일 시작하기
이 섹션에서는 브라우저 프로필을 생성하고, 세션 데이터를 저장하고, 후속 세션에서 프로필을 재사용하는 방법을 안내합니다.
1단계: 브라우저 프로필 생성
세션 데이터를 저장할 브라우저 프로필 리소스를 생성합니다.
예
- AWS CLI
-
-
AWS CLI를 사용하여 브라우저 프로파일을 생성하려면:
aws bedrock-agentcore-control create-browser-profile \
--region <Region> \
--name "profile_demo" \
--description "example profile"
- Boto3
-
-
AWS SDK for Python(Boto3)을 사용하여 브라우저 프로파일을 생성하려면:
import boto3
region = "us-west-2"
client = boto3.client('bedrock-agentcore-control', region_name=region)
response = client.create_browser_profile(
name="profile_demo",
description="example profile"
)
profile_id = response['profileId']
print(f"Created profile: {profile_id}")
- API
-
-
API를 사용하여 브라우저 프로파일을 생성하려면:
awscurl -X PUT \
"https://bedrock-agentcore-control.<Region>.amazonaws.com/browser-profiles" \
-H "Content-Type: application/json" \
--service bedrock-agentcore-control \
--region <Region> \
-d '{
"name": "profile_demo",
"description": "example profile",
"clientToken": "FC21DD1F-FA7B-40EC-8D3A-12E029A1BFF3"
}'
2단계: 브라우저 세션 시작 및 작업 수행
브라우저 세션을 시작하고 웹 사이트 로그인과 같은 작업을 수행합니다. 쿠키 및 로컬 스토리지를 포함한 세션 상태가 캡처됩니다.
예
- AWS CLI
-
-
AWS CLI를 사용하여 브라우저 세션을 시작하려면:
aws bedrock-agentcore start-browser-session \
--region <Region> \
--browser-identifier "aws.browser.v1" \
--name "my-session" \
--session-timeout-seconds 3600
반환된 세션 ID를 사용하여 브라우저와 상호 작용하고 원하는 작업(예: 웹 사이트에 로그인)을 수행합니다.
- Boto3
-
-
Boto3를 사용하여 브라우저 세션을 시작하려면:
import boto3
region = "us-west-2"
client = boto3.client('bedrock-agentcore', region_name=region)
response = client.start_browser_session(
browserIdentifier="aws.browser.v1",
name="my-session",
sessionTimeoutSeconds=3600
)
session_id = response['sessionId']
print(f"Session ID: {session_id}")
# Use the session to perform actions (e.g., login to a website)
# ... your browser automation code here ...
- API
-
-
API를 사용하여 브라우저 세션을 시작하려면:
awscurl -X PUT \
"https://bedrock-agentcore.<Region>.amazonaws.com/browsers/aws.browser.v1/sessions/start" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
--service bedrock-agentcore \
--region <Region> \
-d '{
"name": "my-session",
"sessionTimeoutSeconds": 3600
}'
3단계: 세션을 프로필에 저장
브라우저 세션에서 작업을 수행한 후 현재 상태를 브라우저 프로필에 저장합니다. 쿠키, 로컬 스토리지 및 기타 세션 데이터를 캡처합니다.
예
- AWS CLI
-
-
AWS CLI를 사용하여 브라우저 세션을 프로필에 저장하려면:
aws bedrock-agentcore save-browser-session-profile \
--region <Region> \
--profile-identifier "<ProfileId>" \
--browser-identifier "aws.browser.v1" \
--session-id "<SessionId>"
- Boto3
-
-
Boto3를 사용하여 브라우저 세션을 프로필에 저장하려면:
import boto3
region = "us-west-2"
client = boto3.client('bedrock-agentcore', region_name=region)
response = client.save_browser_session_profile(
profileIdentifier=profile_id, # From Step 1
browserIdentifier="aws.browser.v1",
sessionId=session_id # From Step 2
)
print(f"Profile saved successfully")
- API
-
-
API를 사용하여 브라우저 세션을 프로필에 저장하려면:
awscurl -X PUT \
"https://bedrock-agentcore.<Region>.amazonaws.com/browser-profiles/<ProfileId>/save" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
--service bedrock-agentcore \
--region <Region> \
-d '{
"browserIdentifier": "aws.browser.v1",
"sessionId": "<SessionId>",
"clientToken": "52866F95-4468-4B6C-920C-09A00D36F04E"
}'
4단계: 프로파일로 새 세션 시작
저장된 프로필을 사용하여 새 브라우저 세션을 시작합니다. 세션은 인증 쿠키 및 로컬 스토리지를 포함하여 저장된 상태로 초기화됩니다.
예
- AWS CLI
-
-
AWS CLI를 사용하여 프로필로 브라우저 세션을 시작하려면:
aws bedrock-agentcore start-browser-session \
--region <Region> \
--browser-identifier "aws.browser.v1" \
--name "session-with-profile" \
--session-timeout-seconds 3600 \
--profile-configuration '{
"profileIdentifier":"<ProfileId>"
}'
- Boto3
-
-
Boto3를 사용하여 프로필로 브라우저 세션을 시작하려면:
import boto3
region = "us-west-2"
client = boto3.client('bedrock-agentcore', region_name=region)
response = client.start_browser_session(
browserIdentifier="aws.browser.v1",
name="session-with-profile",
sessionTimeoutSeconds=3600,
profileConfiguration={
"profileIdentifier": profile_id # From Step 1
}
)
new_session_id = response['sessionId']
print(f"New session started with profile: {new_session_id}")
print("Session is now authenticated with saved cookies and state")
- API
-
-
API를 사용하여 프로필로 브라우저 세션을 시작하려면:
awscurl -X PUT \
"https://bedrock-agentcore.<Region>.amazonaws.com/browsers/aws.browser.v1/sessions/start" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
--service bedrock-agentcore \
--region <Region> \
-d '{
"name": "session-with-profile",
"sessionTimeoutSeconds": 3600,
"profileConfiguration": {
"profileIdentifier": "<ProfileId>"
},
"clientToken": "8FAAFF7F-7803-4C40-A7BD-139C6D008646"
}'
브라우저 프로파일 작업
이 섹션에서는 브라우저 프로파일을 관리하기 위한 추가 작업에 대해 설명합니다.
브라우저 프로필 나열
계정의 모든 브라우저 프로필을 나열할 수 있습니다.
예
- AWS CLI
-
-
AWS CLI를 사용하여 브라우저 프로필을 나열하려면
aws bedrock-agentcore-control list-browser-profiles \
--region <Region>
- Boto3
-
-
Boto3를 사용하여 브라우저 프로파일을 나열하려면:
import boto3
region = "us-west-2"
client = boto3.client('bedrock-agentcore-control', region_name=region)
response = client.list_browser_profiles()
for profile in response.get('items', []):
print(f"Profile ID: {profile['profileId']}")
print(f"Name: {profile['name']}")
print(f"Status: {profile['status']}")
print("---")
- API
-
-
API를 사용하여 브라우저 프로파일을 나열하려면:
awscurl -X POST \
"https://bedrock-agentcore-control.<Region>.amazonaws.com/browser-profiles/list" \
-H "Content-Type: application/json" \
--service bedrock-agentcore-control \
--region <Region>
브라우저 프로필 세부 정보 가져오기
특정 브라우저 프로필에 대한 세부 정보를 검색할 수 있습니다.
예
- AWS CLI
-
-
AWS CLI를 사용하여 브라우저 프로필 세부 정보를 가져오는 방법:
aws bedrock-agentcore-control get-browser-profile \
--region <Region> \
--profile-id "<ProfileId>"
- Boto3
-
-
Boto3를 사용하여 브라우저 프로필 세부 정보를 가져오는 방법:
import boto3
region = "us-west-2"
client = boto3.client('bedrock-agentcore-control', region_name=region)
response = client.get_browser_profile(
profileId=profile_id
)
print(f"Profile ID: {response['profileId']}")
print(f"Name: {response['name']}")
print(f"Description: {response.get('description', 'N/A')}")
print(f"Status: {response['status']}")
print(f"Created: {response['createdAt']}")
- API
-
-
API를 사용하여 브라우저 프로필 세부 정보를 가져오는 방법:
awscurl -X GET \
"https://bedrock-agentcore-control.<Region>.amazonaws.com/browser-profiles/<ProfileId>" \
-H "Content-Type: application/json" \
--service bedrock-agentcore-control \
--region <Region>
브라우저 프로필 삭제
브라우저 프로필이 더 이상 필요하지 않으면 삭제하여 리소스를 확보할 수 있습니다.
예
- AWS CLI
-
-
AWS CLI를 사용하여 브라우저 프로파일을 삭제하려면:
aws bedrock-agentcore-control delete-browser-profile \
--region <Region> \
--profile-id "<ProfileId>"
- Boto3
-
-
Boto3를 사용하여 브라우저 프로파일을 삭제하려면:
import boto3
region = "us-west-2"
client = boto3.client('bedrock-agentcore-control', region_name=region)
response = client.delete_browser_profile(
profileId=profile_id
)
print(f"Profile deleted successfully")
- API
-
-
API를 사용하여 브라우저 프로파일을 삭제하려면:
awscurl -X DELETE \
"https://bedrock-agentcore-control.<Region>.amazonaws.com/browser-profiles/<ProfileId>" \
-H "Content-Type: application/json" \
--service bedrock-agentcore-control \
--region <Region>
사용 사례
브라우저 프로파일은 다음과 같은 경우에 유용합니다.
-
영구 인증: 매번 재인증하지 않고 여러 브라우저 호출에서 로그인 세션 유지
-
다단계 워크플로: 상태 및 컨텍스트를 유지하면서 여러 세션에 걸쳐 복잡한 워크플로 실행(쿠키 또는 로컬 스토리지)
-
자동화된 작업: AI 에이전트가 수동 개입 없이 인증된 웹 사이트에서 작업을 수행할 수 있도록 지원
고려 사항
-
프로파일 지속성: 저장 작업을 명시적으로 호출하면 프로파일 데이터가 저장됩니다. 세션을 종료하기 전에 프로파일을 저장하여 상태를 보존해야 합니다.
-
세션 격리: 프로파일을 사용하는 각 브라우저 세션은 독립적으로 작동합니다. 한 세션의 변경 사항은 다른 동시 세션에는 표시되지 않습니다.
-
프로파일 로드 중: 저장된 프로파일 변경 사항은 새 세션에만 적용됩니다. 활성 세션은 시작된 시점부터 프로파일 상태를 계속 사용하며 세션이 시작된 후 프로파일에 적용된 업데이트는 반영되지 않습니다.
-
보안: 브라우저 프로필에는 인증 쿠키와 같은 민감한 데이터가 포함될 수 있습니다. 프로필 리소스에 대한 액세스를 제한하는 적절한 IAM 정책이 마련되어 있는지 확인합니다.
-
프로필 업데이트: 세션을 프로필에 저장하면 이전 프로필 데이터를 덮어씁니다. 중요한 상태 정보가 손실되지 않도록 워크플로를 신중하게 고려하세요.
-
쿠키 만료: 쿠키에는 웹 사이트에서 설정한 자체 만료 시간이 있습니다. 브라우저 프로필은 쿠키를 보존하지만 만료된 쿠키는 만료 날짜에 따라 브라우저에서 자동으로 제거됩니다.