View a markdown version of this page

Amazon Bedrock AgentCore 브라우저에 대한 루트 인증 기관 구성 - Amazon Bedrock AgentCore

Amazon Bedrock AgentCore 브라우저에 대한 루트 인증 기관 구성

기본적으로 Amazon Bedrock AgentCore Browser 세션은 공개적으로 인식된 인증 기관만 신뢰합니다. 에이전트가 프라이빗 CA에서 서명한 인증서를 사용하는 TLS 가로채기 프록시 뒤에 있는 내부 서비스, 회사 웹 사이트 또는 리소스에 액세스해야 하는 경우 세션을 시작할 때 사용자 지정 루트 CA 인증서를 제공해야 합니다.

Amazon Bedrock AgentCore는 호출자 자격 증명을 사용하여 AWS Secrets Manager에서 PEM 인코딩 인증서 콘텐츠를 검색하고, X.509 형식 및 만료를 검증하고, 인증서를 세션의 OS 트러스트 스토어에 설치합니다. 이렇게 하면 브라우저가 내부 리소스에 대한 신뢰할 수 있는 HTTPS 연결을 설정할 수 있습니다.

작동 방식

Amazon Bedrock AgentCore 브라우저의 루트 인증 기관은 다음과 같이 작동합니다.

  1. PEM 인코딩 루트 CA 인증서가 포함된 AWS Secrets Manager에서 각각 보안 암호를 가리키는 인증서 위치 목록을 제공합니다.

  2. Amazon Bedrock AgentCore는 호출자 자격 증명을 사용하여 AWS Secrets Manager에서 각 인증서를 검색합니다.

  3. 각 인증서는 올바른 X.509 PEM 형식에 대해 검증되고 만료되지 않았으며 유효 시작 날짜 이전에 사용되지 않았는지 확인합니다.

  4. 유효한 인증서는 세션의 OS 트러스트 스토어에 배포되므로 브라우저와 샌드박스 내의 모든 네트워크 클라이언트에서 사용할 수 있습니다.

도구 수준(를 통해CreateBrowser)에서 구성된 인증서는 세션 시작 시 제공된 모든 인증서와 결합됩니다. 이렇게 하면 도구에서 조직 전체 인증서를 설정하고 필요에 따라 세션별 인증서를 추가할 수 있습니다.

참고

인증서 구성은 세션당 일회성 작업입니다. 인증서가 설치되면 해당 세션 기간 동안 수정할 수 없습니다.

사전 조건

루트 CA 인증서를 구성하기 전에 다음이 있는지 확인합니다.

  • 일반 사전 조건을 완료했습니다.

  • AWS Secrets Manager에 보안 암호로 저장된 루트 CA 인증서입니다. 각 보안 암호에는 유효한 PEM 인코딩 X.509 인증서가 포함되어야 합니다.

  • AWS Secrets Manager에서 인증서 보안 암호를 읽을 수 있는 IAM 권한. IAM 정책에 다음 권한을 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerCertificateAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:<Region>:<account-id>:secret:<secret-name>" } ] }

AWS Secrets Manager에 인증서 저장

Amazon Bedrock AgentCore 브라우저에서 루트 CA 인증서를 사용하려면 먼저 AWS Secrets Manager에 보안 암호로 저장해야 합니다. 보안 암호 값은 PEM 인코딩 인증서 콘텐츠여야 합니다.

AWS CLI
  1. aws secretsmanager create-secret \ --name "my-corporate-root-ca" \ --description "Corporate root CA certificate for AgentCore sessions" \ --secret-string file://my-root-ca.pem \ --region <region>
Boto3
  1. import boto3 client = boto3.client('secretsmanager', region_name='<region>') # Read the PEM certificate file with open('my-root-ca.pem', 'r') as f: cert_content = f.read() response = client.create_secret( Name='my-corporate-root-ca', Description='Corporate root CA certificate for AgentCore sessions', SecretString=cert_content ) print(f"Secret ARN: {response['ARN']}")

출력의 보안 암호 ARN을 기록해 둡니다. 인증서 구성으로 세션을 시작할 때이 ARN을 사용합니다.

중요

보안 암호에는 유효한 PEM 인코딩 X.509 인증서가 포함되어야 합니다. 인증서는 만료되지 않아야 하며 유효 기간 내에 있어야 합니다. Amazon Bedrock AgentCore는 인증서 형식과 만료를 검증한 후 설치합니다.

사용자 지정 인증서로 브라우저 세션 시작

사용자 지정 루트 CA 인증서를 신뢰하는 브라우저 세션을 시작하려면 StartBrowserSession 요청에 certificates 파라미터를 포함합니다.

AWS CLI
  1. aws bedrock-agentcore start-browser-session \ --browser-identifier "aws.browser.v1" \ --name "session-with-custom-ca" \ --certificates '[ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:<secret-name>" } } } ]'
Boto3
  1. import boto3 client = boto3.client('bedrock-agentcore', region_name='<region>') response = client.start_browser_session( browserIdentifier="aws.browser.v1", name="session-with-custom-ca", certificates=[ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:<secret-name>" } } } ] ) print(f"Session ID: {response['sessionId']}") print(f"Status: {response['status']}")
API
  1. { "name": "session-with-custom-ca", "certificates": [ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:<secret-name>" } } } ] }

여러 인증서 사용

단일 브라우저 세션에서 여러 루트 CA 인증서를 제공할 수 있습니다. 이는 환경에 다양한 내부 서비스 또는 환경에 대한 별도의 CAs와 같은 여러 내부 인증 기관에 대한 신뢰가 필요한 경우에 유용합니다.

AWS CLI
  1. aws bedrock-agentcore start-browser-session \ --browser-identifier "aws.browser.v1" \ --name "session-with-multiple-cas" \ --certificates '[ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:corporate-root-ca" } } }, { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:proxy-ca" } } } ]'
Boto3
  1. response = client.start_browser_session( browserIdentifier="aws.browser.v1", name="session-with-multiple-cas", certificates=[ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:corporate-root-ca" } } }, { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:proxy-ca" } } } ] )

도구 수준에서 인증서 구성

사용자 지정 브라우저를 생성할 때 도구 수준에서 인증서를 구성할 수 있습니다. 도구 수준에서 구성된 인증서는 세션 시작 시 제공된 인증서 외에도 해당 도구로 시작된 모든 세션에 자동으로 적용됩니다.

이는 모든 브라우저 세션에서 신뢰해야 하는 조직 전체 인증서에 유용합니다.

Boto3
  1. response = client.create_browser( name="corporate-browser", description="Browser with corporate CA trust", certificates=[ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:corporate-root-ca" } } } ] ) browser_id = response['browserIdentifier'] print(f"Browser ID: {browser_id}")

인증서가 구성된 브라우저로 세션을 시작하면 도구 수준 인증서가 모든 세션 수준 인증서와 결합됩니다. 도구 수준 인증서가 먼저 적용된 다음 세션 수준 인증서가 적용됩니다.

인증서 요구 사항 및 제한

인증서는 다음 요구 사항을 충족해야 합니다.

요구 사항 세부 정보

형식

PEM 인코딩 X.509 인증서

스토리지

AWS Secrets Manager 보안 암호(바이너리가 아닌 문자열 값으로)

유효성

인증서는 만료되지 않아야 하며 유효 기간(~notBeforenotAfter) 내에 있어야 합니다.

세션당 최대 인증서 수

세션당 10개, 도구당 10개. 세션은 최대 총 20개의 인증서를 가질 수 있습니다.

보안 암호 ARN 형식

arn:aws:secretsmanager:region:account-id:secret:secret-name

위치 유형

AWS Secrets Manager만 인증서 위치로 지원됩니다.