View a markdown version of this page

Amazon S3 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon S3

Amazon S3는 데이터를 버킷 내의 객체로 저장하는 객체 스토리지 서비스입니다. Amazon S3 버킷을 관리형 지식 기반의 데이터 소스로 연결하여 여기에 저장하는 객체를 수집할 수 있습니다.

지원되는 기능

  • 별도의 메타데이터 파일을 통해 메타데이터 필드 문서화

  • 파일 패턴 및 S3 키 접두사를 사용한 포함 및 제외 콘텐츠 필터

  • 추가, 업데이트 및 삭제된 콘텐츠에 대한 증분 콘텐츠 동기화

  • 교차 계정 Amazon S3 버킷 액세스

  • 고객 제공 ACLs 파일을 사용한 문서 수준 액세스 제어(ACL)

사전 조건

Amazon S3에서 다음 사항을 확인하세요.

  • Amazon S3 버킷 이름과 버킷 소유자의 AWS 계정 ID를 기록해 둡니다. 버킷은 지식 기반과 동일한 AWS 리전의 범용 버킷이어야 하며 액세스 권한이 있어야 합니다.

  • 버킷이 지식 기반과 다른 AWS 계정에 있거나 고객 관리형 KMS 키로 암호화된 경우 지식 기반 서비스 역할에서 액세스를 허용하도록 버킷 정책 및 (해당하는 경우) KMS 키 정책을 구성합니다. 교차 계정 및 KMS 암호화 액세스를 위한 버킷 정책을(를) 참조하세요.

AWS 계정에서 다음을 확인합니다.

  • 지식 기반에 대한 AWS Identity and Access Management (IAM) 역할/권한 정책에 데이터 소스에 연결하는 데 필요한 권한을 포함합니다. 필요한 권한에 대한 자세한 내용은 섹션을 참조하세요데이터 소스에 액세스할 수 있는 권한.

교차 계정 및 KMS 암호화 액세스를 위한 버킷 정책

Amazon S3 버킷이 지식 기반과 다른 AWS 계정에 있거나 고객 관리형 KMS 키로 암호화된 경우 리소스 기반 정책을 추가하여 지식 기반 서비스 역할에 액세스 권한을 부여합니다. 다음 예제에서는 필요한 최소 문을 보여줍니다.

교차 계정 버킷 정책

Amazon S3 버킷을 소유한 계정에서 버킷 정책에 다음 문을 추가합니다. kb-account-id를 지식 기반이 생성된 계정 ID로, kb-service-role을 지식 기반 서비스 역할의 이름으로, bucket-name을 버킷 이름으로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBedrockKnowledgeBaseAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::kb-account-id:role/kb-service-role" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

일반적인 지침은 Amazon S3 버킷에 대한 액세스 구성을 참조하세요.

암호화된 버킷에 대한 KMS 키 정책

Amazon S3 버킷이 고객 관리형 KMS 키로 암호화된 경우 키 정책에 다음 문을 추가합니다. 교차 계정 버킷 정책에서와 동일한 자리 표시자를 사용합니다. 키 정책 변경 사항이 전파될 때까지 몇 분 정도 기다립니다.

{ "Sid": "AllowBedrockKnowledgeBaseKmsAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::kb-account-id:role/kb-service-role" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }

"Resource": "*" 여기서는 정책이 연결된 키의 범위입니다.

Amazon S3 데이터 소스를 설정하는 방법

Amazon S3 데이터 소스 설정에는 다음 단계가 포함됩니다.

  1. 버킷을 준비합니다. 버킷 이름, 계정 ID 및 버킷 정책(교차 계정 액세스의 경우)을 확인합니다. 문서 메타데이터를 사용하려는 경우 .metadata.json 파일이 있는 Amazon S3 접두사를 결정합니다.

  2. 데이터 소스를 연결합니다. AWS Management Console 또는 API를 사용하여 지식 기반에서 Amazon S3 데이터 소스를 생성합니다. 데이터 소스 생성을(를) 참조하세요.

  3. (선택 사항) 문서 수준 액세스 제어를 활성화합니다. 고객 제공 ACL 파일에 정의된 사용자 권한을 기준으로 쿼리 결과를 필터링합니다. 문서 수준 액세스 제어을(를) 참조하세요.

데이터 소스 생성

Console
Amazon S3 버킷을 관리형 지식 기반에 연결하려면
  1. 데이터 소스에서 데이터 소스의 이름을 입력합니다.

  2. 데이터 소스 드롭다운에서 Amazon S3를 선택합니다.

  3. 데이터 소스 위치에서 Amazon S3 버킷이 이 AWS 계정에 있는지 아니면 다른 AWS 계정에 있는지 선택합니다.

  4. 버킷의 Amazon S3 URI를 입력합니다. S3 찾아보기를 선택하여 버킷을 선택할 수 있습니다.

  5. (선택 사항) 메타데이터 파일 접두사 입력 -이 데이터 소스에 대해 문서 메타데이터 파일(.metadata.json)이 저장되는 Amazon S3 접두사입니다.

  6. (선택 사항) S3 접두사 필터 패턴을 확장하여 특정 경로를 포함하거나 제외합니다.

  7. (선택 사항) 파일 필터 패턴을 확장하여 정규식 패턴을 추가하여 특정 파일을 포함하거나 제외합니다.

  8. (선택 사항) 문서 수준 액세스 제어를 활성화하려면 ACLs 사용하여 문서 액세스 제어를 선택하고 글로벌 ACL 파일의 Amazon S3 URI를 제공합니다. 생성 후에는이 옵션을 변경할 수 없습니다. 자세한 내용은 문서 수준 액세스 제어을 참조하세요.

API

Amazon S3 데이터 소스를 생성하려면 Agents for Amazon Bedrock 빌드 타임 엔드포인트를 사용하여 CreateDataSource 요청을 전송합니다. 다음 AWS Command Line Interface 예시에서는 접두사 및 패턴 필터를 사용하여 동일한 계정의 버킷에 대한 데이터 소스를 생성합니다. 각 필드에 대한 설명은 다음 커넥터 파라미터 참조를 참조하세요.

aws bedrock-agent create-data-source \ --name "S3-connector" \ --knowledge-base-id "your-knowledge-base-id" \ --data-source-configuration file://s3-managed-connector.json

s3-managed-connector.json 파일에는 다음이 포함됩니다.

{ "type": "MANAGED_KNOWLEDGE_BASE_CONNECTOR", "managedKnowledgeBaseConnectorConfiguration": { "connectorParameters": { "type": "S3", "version": "1", "connectionConfiguration": { "bucketName": "my-knowledge-base-bucket", "bucketOwnerAccountId": "123456789012" }, "filterConfiguration": { "inclusionPrefixes": ["documents/"], "inclusionPatterns": [".*\\.pdf", ".*\\.txt"], "exclusionPatterns": [".*\\.tmp"] }, "metadataFilesPrefix": "metadata/" } } }

문서 수준 액세스 제어를 활성화하려면 aclEnabled를 로 설정하고 aclConfiguration를 사용하여를 true 추가합니다globalAccessControlListS3Uri. 문서 수준 액세스 제어을(를) 참조하세요.

관리형 지식 기반의 경우 CreateDataSource는 비동기식입니다. 작업이 완료되면 데이터 소스 상태가에서 AVAILABLE CREATING로 전환됩니다.

커넥터 파라미터

데이터 소스 구성은 다음 커넥터 파라미터를 사용합니다. Amazon S3에 연결하려면에서 커넥터 유형S3으로를 지정합니다connectorParameters. 래핑되는 필드connectorParameters(예: deletionProtectionConfigurationmediaExtractionConfiguration)는 섹션을 참조하세요데이터 소스 연결.

connectionConfiguration
Field 필수 설명
bucketName Amazon S3 버킷의 이름입니다.
bucketOwnerAccountId 조건부 버킷 소유자의 AWS 계정 ID입니다. 교차 계정 액세스에 필요합니다.
filterConfiguration(선택 사항)
Field 필수 설명
inclusionPrefixes 아니요 포함할 Amazon S3 키 접두사 목록(예: documents/).
exclusionPrefixes 아니요 제외할 Amazon S3 키 접두사 목록(예: archive/).
inclusionPatterns 아니요 정규식 목록입니다. 키가 하나 이상의 패턴과 일치하는 객체만 수집됩니다.
exclusionPatterns 아니요 정규식 목록입니다. 키가 패턴과 일치하는 객체는 수집되지 않습니다.
maxFileSizeInMegaBytes 아니요 커넥터가 수집하는 단일 파일의 최대 크기입니다. 를 숫자 문자열로 입력합니다(예: "500"). 기본값은 "500"입니다.
최상위 커넥터 파라미터(선택 사항)
Field 필수 설명
metadataFilesPrefix 아니요 문서 메타데이터 파일(.metadata.json)이 저장되는 Amazon S3 접두사입니다.
aclEnabled 아니요 문서 수준 액세스 제어를 활성화true하려면 로 설정합니다. 데이터 소스를 생성한 후에는이 설정을 변경할 수 없습니다. 자세한 내용은 문서 수준 액세스 제어을 참조하세요.
aclConfiguration 조건부 포함 globalAccessControlListS3Uri- 키 접두사를 액세스 제어 항목에 매핑하는 JSON 파일의 Amazon S3 URI입니다. aclEnabled가 인 경우 필수true이고 aclEnabled가 인 경우 무시됩니다false. 문서 수준 액세스 제어을(를) 참조하세요.

문서 메타데이터 파일

각 문서와 함께 사이드카 파일을 업로드하여 메타데이터를 각 문서에 연결할 수 있습니다. 각 문서에 대해 동일한 Amazon S3 경로filename.extension.metadata.json에 라는 파일을 생성합니다. 메타데이터 파일은 10KB를 초과해서는 안 됩니다. 예를 들어 report.pdf와 함께 다음 콘텐츠report.pdf.metadata.json와 함께 업로드합니다.

{ "metadataAttributes": { "company": { "value": { "type": "STRING", "stringValue": "BioPharm Innovations" } }, "created_date": { "value": { "type": "NUMBER", "numberValue": 20221205 } }, "author": { "value": { "type": "STRING", "stringValue": "Lisa Thompson" } } } }

지원되는 속성 데이터 유형 및 쿼리 시 적용할 수 있는 필터링 연산자에 대한 자세한 내용은 메타데이터 및 필터링을 참조하세요.