View a markdown version of this page

문서 수준 액세스 제어 - Amazon Bedrock

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

문서 수준 액세스 제어

ACL 인식은 권한 부여가 아닙니다.

Bedrock 관리형 지식 기반은 보안 경계가 아닌 ACL 인식 필터링을 제공합니다. Bedrock 관리형 지식 기반은 최종 사용자를 인증하지 않습니다. 애플리케이션은 사용자를 인증하고 확인된 자격 증명 컨텍스트를 전달할 책임이 있습니다. Bedrock 관리형 지식 기반은 사용자가 제공한 사용자 컨텍스트의 신뢰성을 확인할 수 없으므로이 기능은 사용자가 제공한 자격 증명을 기반으로 결과를 필터링하지만 실제 권한 부여를 구성하지는 않습니다. 업스트림 인증 없이이 기능을 유일한 액세스 제어 메커니즘으로 사용해서는 안 됩니다.

사용자 지정 데이터 소스는 선택적으로 문서 수준 액세스 제어를 지원합니다. 크롤링된 커넥터와 달리 사용자 지정 데이터 소스에는 기본 권한 시스템이 없으므로 IngestKnowledgeBaseDocuments 작업과 함께 수집할 때 각 문서에 대한 액세스 제어 목록(ACL)을 제공합니다. 모든 커넥터의 ACL 인식에 대한 개요는 섹션을 참조하세요액세스 제어 목록 인식 활성화.

작동 방식

ACL 지원 사용자 지정 데이터 소스의 경우 Bedrock 관리형 지식 기반은 검색 전 필터링 중에 고객이 제공한 액세스 제어 목록을 적용하여 쿼리 사용자가 액세스할 수 있는 문서만 반환합니다. 고객 제공 ACL 메타데이터가 정확한 소스이므로 사용자 지정 데이터 소스에는 실시간 ACL 확인이 지원되지 않습니다.

ACL 인식 활성화

사용자 지정 데이터 소스에 대한 ACL 인식을 활성화하려면 데이터 소스를 생성하거나 업데이트할 connectorParameterstrue에서를 aclEnabled로 설정합니다. 데이터 소스 구성 구조는 섹션을 참조하세요사용자 지정.

"connectorParameters": { "type": "CUSTOM", "version": "1", "aclEnabled": true }

문서를 수집할 때 액세스 제어 제공

IngestKnowledgeBaseDocuments 요청의 문서에 있는 accessControlList 필드를 통해 문서의 ACLmetadata을 제공합니다. ACL 소스는 메타데이터 속성의 출처metadata.type를 제어하는 것과 동일한 필드인에 의해 결정됩니다.

  • IN_LINE_ATTRIBUTE - ACL은 요청 본문의 accessControlList 배열에서 읽습니다.

  • S3_LOCATION - ACL은 Amazon S3의 문서 .metadata.json 파일에 있는 accessControlList 배열에서 읽습니다.

는의 최상위 필드로 metadata가 아닌 아래에 accessControlList 있기 때문에 KnowledgeBaseDocument문서에는에서 제어하는 단일 ACL 소스가 있습니다metadata.type. 이렇게 하면 충돌하는 ACLs 동일한 문서에 제공되지 않습니다(예: 요청의 인라인 ACL과 S3 파일의 ACL). 단점은 동일한 문서에 대해 인라인 ACL을 S3-based 메타데이터 속성과 혼합하거나 S3-based ACL을 인라인 메타데이터 속성과 혼합할 수 없다는 것입니다.

accessControlList 항목에는 다음이 포함됩니다.

  • name - 사용자의 이메일 주소입니다.

  • type - 이어야 합니다USER.

  • access - ALLOW 또는 DENY. 거부 재정의 허용.

인라인 ACL(metadata.type = IN_LINE_ATTRIBUTE)

인라인 메타데이터 속성과 함께 요청 본문에서 accessControlList 직접를 제공합니다.

PUT /knowledgebases/KB12345678/datasources/DS12345678/documents HTTP/1.1 Content-type: application/json { "documents": [ { "content": { "dataSourceType": "CUSTOM", "custom": { "customDocumentIdentifier": { "id": "hr-policy-2026" }, "inlineContent": { "textContent": { "data": "Annual leave policy: All full-time employees are entitled to..." }, "type": "TEXT" }, "sourceType": "IN_LINE" } }, "metadata": { "type": "IN_LINE_ATTRIBUTE", "inlineAttributes": [ { "key": "department", "value": { "stringValue": "HR", "type": "STRING" } } ], "accessControlList": [ { "name": "alice@example.com", "type": "USER", "access": "ALLOW" }, { "name": "bob@example.com", "type": "USER", "access": "DENY" } ] } } ] }

S3-based ACL(metadata.type = S3_LOCATION)

Amazon S3의 .metadata.json 파일에서 문서의 메타데이터를 가리킵니다. 메타데이터 속성과 accessControlList는 모두 해당 파일에서 읽습니다.

"metadata": { "type": "S3_LOCATION", "s3Location": { "uri": "s3://amzn-s3-demo-bucket/hr-policy-2026.metadata.json" } }

.metadata.json 파일은 Amazon S3 데이터 소스에 대한 문서별 메타데이터 파일과 동일한 형식을 사용합니다. 이 파일은 인라인 요청에 사용되는 소문자 필드 이름(Name, Type, Access)과 다른 대문자 ACL 필드 이름(name, type, access)을 사용합니다.

{ "metadataAttributes": {}, "accessControlList": [ { "Name": "alice@example.com", "Type": "USER", "Access": "ALLOW" }, { "Name": "bob@example.com", "Type": "USER", "Access": "DENY" } ] }

구성 확인

사용자 지정 ACLs은를 통해 고객이 제공하므로 쿼리하기 전에 IngestKnowledgeBaseDocuments검증합니다.

  1. aclEnabled가 데이터 소스의 connectorParameters (type CUSTOM)true에 있는지 확인합니다.

  2. 수집된 각 문서에 accessControlList 아래에 ACL 소스(IN_LINE_ATTRIBUTE인라인의 경우 metadata, S3 파일의 S3_LOCATION 경우 )와 metadata.type 일치하는가 포함되어 있는지 확인합니다.

  3. ACL 항목 필드 대소문자가 소스와 일치하는지 확인합니다. 인라인 ACLs의 경우 소문자 name/type/access, S3 .metadata.json 파일의 경우 대문자 Name/Type/Access.

  4. 테스트 사용자의 이메일이 검색하려는 문서의 ALLOW 항목에 name 있는와 정확히 일치하는지 확인합니다.

문제 해결

참고

ACL 구성 오류는 검색 중에 명시적 오류를 생성하지 않습니다. 검색 실패 닫힘: 영향을 받는 문서는 자동으로 생략되므로 쿼리는 오류가 아닌 더 적거나 0의 결과를 반환합니다. 위의 확인 검사를 사용하여 이러한 문제를 진단합니다.

ACL 지원 사용자 지정 증상, 원인 및 수정 사항
증상 가능한 원인 수정
검색은 액세스 권한이 있어야 하는 사용자에 대해 0개의 결과를 반환합니다. userId 이메일이 어떤 accessControlList 항목과도 일치하지 않습니다. 사용자의 이메일을 ALLOW 항목의와 정렬name합니다.
인라인 ACL은 거부되거나 무시됩니다. 필드 대/소문자가 잘못되었거나 metadata.type가 아닙니다IN_LINE_ATTRIBUTE. 소문자 name/type/access를 사용하고를 metadata.type로 설정합니다IN_LINE_ATTRIBUTE.
S3-based ACL은 적용되지 않습니다. metadata.type가가 아니S3_LOCATION거나 .metadata.json 파일에가 없습니다accessControlList. metadata.typeS3_LOCATION 로 설정하고 파일에 accessControlList 포함시킵니다.
문서는 아무에게도 반환되지 않습니다. 문서가 없이 수집되었습니다accessControlList. 를 사용하여 문서를 다시 수집합니다accessControlList.