기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
비컨
| 클라이언트 측 암호화 라이브러리의 이름이 AWS Database Encryption SDK로 변경되었습니다. 이 개발자 안내서는 여전히 DynamoDB Encryption Client에 대한 정보를 제공합니다. |
비컨은 데이터베이스의 암호화된 데이터와 함께 저장된 암호화되고 검색 가능한 식별자에 일반 텍스트 필드 값을 매핑하는 잘린 해시 기반 메시지 인증 코드(HMAC) 태그입니다. 비컨은 필드의 암호화된 상태를 변경하지 않습니다. 검색 가능한 암호화를 위해 구성된 필드에 값을 쓰면 AWS Database Encryption SDK는 일반 텍스트 값을 통해 HMAC를 계산하고 파티션의 컨텍스트에서 비컨을 추출합니다. 전체 HMAC는 일반 텍스트 값에 고유하게 해당하지만 SDK는 의도적으로 출력을 잘라내 여러 개의 고유한 일반 텍스트 값을 동일한 비컨에 매핑할 수 있습니다. 이러한 충돌(거짓 긍정)은 권한이 없는 사용자가 기본 일반 텍스트에 대한 구별되는 정보를 유추할 수 있는 능력을 제한합니다.
참고
해시 기반 메시지 인증 코드(HMAC)는 무결성과 신뢰성을 제공하는 데 일반적으로 사용되는 키형 암호화 해시 함수입니다. 검색 가능한 암호화 시스템에서 HMAC는 인덱싱 및 쿼리할 수 있도록 일반 텍스트 값에서 비컨을 결정론적으로 도출하는 데 자주 사용됩니다.
전체 길이 HMAC는 결정적입니다. 지정된 키에 대해 동일한 일반 텍스트 값은 항상 동일한 비컨을 생성합니다. 이 결정론은 일반 텍스트 값과 비컨 간의 one-to-one 매핑을 초래하여 데이터의 원래 주파수 분포를 유지합니다. 동일한 일반 텍스트 값을 공유하는 모든 레코드는 동일한 비컨에 매핑되므로 동등성 클래스를 형성합니다. 각 동등성 클래스의 크기는 해당 일반 텍스트 값이 데이터 세트에 표시되는 빈도를 직접 반영합니다.
이 주파수 보존은 빈도 분석 공격을 가능하게 합니다.이 공격에서는 관찰자가 관찰된 비컨 빈도를 알려진 또는 예상되는 데이터 분포와 상호 연관시켜 일반 텍스트 값을 유추할 수 있습니다.
SDK는 빈도 분석 공격을 완화하기 위해 잘림 및 파티셔닝을 사용하여 비컨을 추출합니다. HMAC를 잘라내면 제어된 충돌이 발생하므로 동등성 클래스 내의 모든 레코드가 반드시 동일한 비컨 값을 공유하는 것은 아닙니다. 또한 파티션 식별자를 비컨 파생에 통합하면 동일한 일반 텍스트 값을 파티션 전반의 다양한 비컨에 매핑할 수 있습니다. 이러한 기술을 함께 사용하면 올바르고 효율적인 쿼리 동작을 유지하면서 고르지 않은 분산 데이터 세트의 무작위성을 높일 수 있습니다.
비컨은 암호화 작업SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT에서 ENCRYPT_AND_SIGN, SIGN_ONLY또는 로 표시된 필드로만 구성할 수 있습니다. 비컨 자체는 서명되거나 암호화되지 않습니다. DO_NOTHING로 표시된 필드로는 비컨을 구성할 수 없습니다.
비컨을 구성한 후 암호화된 필드를 검색하려면 먼저 각 비컨에 대한 보조 인덱스를 구성해야 합니다. 자세한 내용은 비컨을 사용한 보조 인덱스 구성 단원을 참조하십시오.
파티션 간 비컨 파생 이해
파티셔닝은 비컨 구성의 핵심 부분이며 단일 파티션을 사용하는 비컨을 포함한 모든 비컨에 적용됩니다. 이 모델은 모든 데이터에서 일관되고 전방 호환되는 비컨 파생을 보장하며 데이터 볼륨 또는 배포가 변경될 때 시간 경과에 따라 파티션 수를 늘릴 수 있습니다. 이렇게 하면 기존 항목을 다시 작성하지 않고도 빈도 누출을 줄이고 고르지 않게 분산된 데이터 세트에 대한 보호를 강화할 수 있습니다.
파티션은 여러 논리 그룹에 항목을 분산하여 제어된 무작위성을 도입합니다. 이렇게 하면 빈도 누출이 줄어들고, 비컨 동등성 클래스의 크기가 제한되며, 왜곡된 배포가 있는 속성의 보안 및 개인 정보 보호가 향상됩니다.
항목이 파티션에 할당되면 파티션 번호가 비컨 파생에 통합됩니다. 동일한 파티션 내에서 동일한 일반 텍스트 값은 동일한 비컨을 생성하여 동등 검색 의미 체계를 유지합니다. 서로 다른 파티션에서 동일한 일반 텍스트 값은 서로 다른 비컨 값을 생성합니다. 이렇게 하면 대규모 동등성 클래스가 파티션당 더 작은 그룹으로 나뉘어 비컨의 전체 주파수 분포를 평면화하는 데 도움이 됩니다.
각 데이터베이스 항목이 파티션에 할당되는 방식을 완전히 제어할 수 있습니다. 항목을 특정 파티션에 결정론적으로 배치하거나 무작위로 배포하여 고르지 않은 데이터 배포를 완화할 수 있습니다. 무작위 할당은 여러 파티션에 해당 값을 분산하고 단일 파티션에서 가시적인 농도를 줄이기 때문에 고주파수 값에 특히 유용합니다. 도메인 지식에 따라 특정 값을 더 적은 파티션으로 제한해야 하는 경우 결정적 할당을 사용할 수 있습니다.
파티션 식별자는 암호화된 레코드에 노출되지 않습니다. 대신 파티션 번호는 일반 텍스트 값과 함께 해시되는 비컨 파생 프로세스에 통합되므로 암호화된 데이터 또는 비컨 자체를 검사하여 추론할 수 없습니다. 이 설계를 통해 분할된 비컨의 배포 및 개인 정보 보호 이점을 제공하면서 파티션 할당을 기밀로 유지할 수 있습니다.
- 쿼리에 대한 파티셔닝 영향
-
파티셔닝은
Query작업 수행 방식에 영향을 미칩니다. DynamoDB 쿼리는 인덱싱된 비컨 값과 정확히 일치해야 하고 비컨 값은 파티션마다 다르기 때문에 호출자는 각 파티션을 독립적으로 쿼리해야 합니다. 테이블에N파티션이 있는 경우:-
일치하는 모든 항목을 검색하려면
N별도의 쿼리가 필요합니다. -
만
Query영향을 받습니다. -
Scan및Get작업은 이전과 같이 작동합니다.
이유는 구조적입니다.는 모든 항목을
Scan읽고 특정 키에서Get작동합니다.는 인덱스의 정확한 동등성에만Query의존하며, 이는 파티션별로 다릅니다.참고
팬아웃은 파티셔닝된 비컨을 사용할 때 단일 논리적 요청을 충족하기 위해 실행해야 하는 DynamoDB 쿼리 수를 나타냅니다. 시스템은 제한된 팬아웃을 제공합니다. 즉, 최대 파티션 수준 쿼리 수가 수정되고 구성된 파티션 수에 따라 예측할 수 있습니다.
성능 고려 사항
파티션 사용은 논리적 요청당 필요한 DynamoDB 쿼리 수에 영향을 줍니다. 성능 영향은 예상 결과 크기에 따라 달라집니다.
-
대규모 결과 집합: 쿼리가 많은 페이지를 반환하면 추가 파티션 수준 쿼리는 오버헤드를 거의 추가하지 않습니다.
-
단일 항목 조회: 요청이 일반적으로 하나의 항목을 반환하고 5개의 파티션이 구성된 경우 4개의 결과가 반환되지 않는 5개의 쿼리가 실행되어 거의 선형적인 속도가 느려집니다.
-
감소된 로캘: 항목이 파티션에 분산되어 검색 시간이 늘어날 수 있습니다.
각 파티션은 추가 쿼리를 트리거하므로 팬아웃은 성능과 용량을 계획하는 데 중요한 요소입니다.
성능 이점
추가 쿼리 오버헤드에도 불구하고 파티션은 특정 시나리오에서 성능을 개선할 수 있습니다.
-
대규모 동등성 클래스 감소: 드문 값이 잘린 비컨을 자주 발생하는 값과 공유하는 경우 드문 값에 대한 쿼리는 많은 관련 없는 일치를 처리해야 합니다. 파티셔닝은 각 동등성 클래스의 크기를 제한하고이 오버헤드를 줄입니다.
-
더 긴 비컨 길이 지원: 더 많은 파티션을 구성하면 더 긴 비컨 길이를 사용할 수 있으므로 오탐률을 낮추고 필요한 암호 해독 후 필터링 양을 줄일 수 있습니다.
-
비컨 유형
구성하는 비컨의 유형에 따라 수행할 수 있는 쿼리 유형이 결정됩니다. 검색 가능한 암호화를 지원하는 두 가지 유형의 비컨이 있습니다. 표준 비컨은 동등 검색을 수행합니다. 복합 비컨은 기본적 일반 텍스트 문자열과 표준 비컨을 결합하여 복잡한 데이터베이스 작업을 수행합니다.
표준 비컨
표준 비컨은 데이터베이스에서 검색 가능한 암호화를 구현하는 가장 간단한 방법입니다. 암호화된 필드 또는 가상 필드 하나에 대해서만 동등 검색을 수행할 수 있습니다. 표준 비컨을 구성하는 방법을 알아보려면 표준 비컨 구성을 참조하세요. 기본 데이터의 분포가 고르지 않은 경우 비컨이 있는 파티션을 사용하여 무작위성을 높일 수도 있습니다.
다음은 표준 비컨의 중요한 개념입니다.
- 비컨 소스
-
표준 비컨을 구성하는 필드를 비컨 소스라고 합니다. 비컨이 매핑해야 하는 데이터의 위치를 식별합니다. 비컨 소스는 암호화된 필드 또는 가상 필드일 수 있습니다. 각 표준 비컨의 비컨 소스는 고유해야 합니다. 동일한 비컨 소스로 두 개의 비컨을 구성할 수 없습니다.
표준 비컨을 사용하여 암호화된 필드 또는 가상 필드를 동등하게 검색할 수 있습니다. 또는 복합 비컨을 구성하여 더 복잡한 데이터베이스 작업을 수행하는 데 사용할 수 있습니다. 표준 비컨을 구성하고 관리하는 데 도움이 되도록 AWS Database Encryption SDK는 표준 비컨의 용도를 정의하는 다음과 같은 선택적 비컨 스타일을 제공합니다. 자세한 내용은 비컨 스타일 정의를 참조하세요.
암호화된 단일 필드에 대한 등식 검색을 수행하는 표준 비컨을 생성하거나 가상 필드를 생성하여 여러
ENCRYPT_AND_SIGN,SIGN_ONLY및SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT필드의 연결에 대한 등식 검색을 수행하는 표준 비컨을 생성할 수 있습니다.
- 가상 필드
-
가상 필드는 하나 이상의 소스 필드로 구성된 개념적 필드입니다. 가상 필드를 생성해도 레코드에 새 필드가 기록되지는 않습니다. 가상 필드는 데이터베이스에 명시적으로 저장되지 않습니다. 표준 비컨 구성에서 필드의 특정 세그먼트를 식별하는 방법 또는 레코드 내의 여러 필드를 연결하여 특정 쿼리를 수행하는 방법에 대한 지침을 비컨에 제공하는 데 사용됩니다. 가상 필드에는 하나 이상의 암호화된 필드가 필요합니다.
참고
예를 들어,
FirstName및LastName필드의 연결에 대해 동등 검색을 수행하려는 경우 다음 가상 필드 중 하나를 만들 수 있습니다.-
FirstName필드의 첫 번째 문자와 그 뒤에LastName필드가 오는 가상NameTag필드(모두 소문자)입니다. 이 가상 필드를 사용하면NameTag=mjones을 쿼리할 수 있습니다. -
LastName필드와 그 뒤에FirstName필드로 구성된 가상LastFirst필드입니다. 이 가상 필드를 사용하면LastFirst=JonesMary을 쿼리할 수 있습니다.
또는 암호화된 필드의 특정 세그먼트에서 동등 검색을 수행하려는 경우 쿼리하려는 세그먼트를 식별하는 가상 필드를 만드세요.
예를 들어 IP 주소의 처음 세 세그먼트를 사용하여 암호화된
IPAddress필드를 쿼리하려면 다음 가상 필드를 만듭니다.-
Segments(‘.’, 0, 3)로 구성된 가상IPSegment필드. 이 가상 필드를 사용하면IPSegment=192.0.2을 쿼리할 수 있습니다. 쿼리는IPAddress값이 “192.0.2"로 시작하는 모든 레코드를 반환합니다.
가상 필드는 고유해야 합니다. 정확히 동일한 소스 필드로 두 개의 가상 필드를 구성할 수는 없습니다.
가상 필드 및 가상 필드를 사용하는 비컨을 구성하는 데 도움이 필요하면 가상 필드 만들기를 참조하세요.
-
복합 비컨
복합 비컨은 쿼리 성능을 향상시키고 더 복잡한 데이터베이스 작업을 수행할 수 있도록 인덱스를 생성합니다. 복합 비컨을 사용하여 리터럴 일반 텍스트 문자열과 표준 비컨을 결합하여 암호화된 레코드에 대해 복잡한 쿼리(예: 단일 인덱스에서 서로 다른 두 레코드 유형을 쿼리하거나 정렬 키로 필드 조합을 쿼리하는 등)를 수행할 수 있습니다. 복합 비컨 솔루션 예제에 대한 자세한 내용은 비컨 유형 선택을 참조하세요.
복합 비컨은 표준 비컨 또는 표준 비컨과 서명된 필드의 조합으로 구성할 수 있습니다. 부분 목록으로 구성됩니다. 모든 복합 비컨에는 비컨에 포함된 ENCRYPT_AND_SIGN 필드를 식별하는 암호화된 부분 목록이 포함되어야 합니다. 모든 ENCRYPT_AND_SIGN 필드는 표준 비컨으로 식별되어야 합니다. 더 복잡한 복합 비컨에는 비컨에 포함된 일반 텍스트 SIGN_ONLY 또는 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT 필드를 식별하는 서명된 부분 목록과 복합 비컨이 필드를 조합할 수 있는 가능한 모든 방법을 식별하는 생성자 부분 목록이 포함될 수도 있습니다.
참고
AWS Database Encryption SDK는 일반 텍스트 SIGN_ONLY 및 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT 필드에서 완전히 구성할 수 있는 서명된 비컨도 지원합니다. 서명된 비컨은 서명되었지만 암호화되지 않은 필드에 대해 복잡한 쿼리를 인덱싱하고 수행하는 복합 비컨의 한 유형입니다. 자세한 내용은 서명된 비컨 만들기 단원을 참조하십시오.
복합 비컨 구성에 대한 도움말은 복합 비콘 구성을 참조하세요.
복합 비컨을 구성하는 방식에 따라 수행할 수 있는 쿼리 유형이 결정됩니다. 예를 들어, 일부 암호화되고 서명된 부분을 선택 사항으로 설정하여 쿼리의 유연성을 높일 수 있습니다. 복합 비컨이 수행할 수 있는 쿼리 유형에 대한 자세한 내용은 비컨 쿼리 섹션을 참조하세요.