기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
비컨 사용
클라이언트 측 암호화 라이브러리는 AWS 데이터베이스 암호화 SDK로 이름이 변경되었습니다. 이 개발자 안내서는 여전히 DynamoDB Encryption Client에 대한 정보를 제공합니다. |
비컨을 사용하면 쿼리 중인 전체 데이터베이스를 복호화하지 않고도 암호화된 레코드를 검색할 수 있습니다. 비컨은 채워지지 않은 새 데이터베이스에 구현되도록 설계되었습니다. 기존 데이터베이스에 구성된 모든 비컨은 데이터베이스에 기록된 새 레코드만 매핑합니다. 비컨은 필드의 일반 텍스트 값에서 계산됩니다. 필드가 암호화되면 비컨이 기존 데이터를 매핑할 방법이 없습니다. 비컨으로 새 레코드를 작성한 후에는 비컨의 구성을 업데이트할 수 없습니다. 하지만 레코드에 추가하는 새 필드에 새 비컨을 추가할 수 있습니다.
비컨을 구성한 후에는 데이터베이스를 채우고 비컨에 대한 쿼리를 수행하기 전에 다음 단계를 완료해야 합니다.
-
계층적 키링 생성 AWS KMS
검색 가능한 암호화를 사용하려면 AWS KMS 계층적 키링을 사용하여 레코드 보호에 사용되는 데이터 키를 생성, 암호화 및 복호화해야 합니다.
비컨을 구성한 후 계층적 키링 사전 요구 사항을 조합하고 계층적 키링을 생성합니다.
계층적 키링이 필요한 이유에 대한 자세한 내용은 검색 가능한 암호화를 위한 계층적 키링 사용을 참조하세요.
-
비컨 버전 정의
구성한 모든 표준 비콘 목록, 구성한 모든 복합 비콘 목록, 암호화된 부품 목록, 서명된 부품 목록 및 비콘 버전을 지정합니다.
keyStore
keySource
비컨 버전에 대해1
을 지정해야 합니다.keySource
정의에 대한 지침은 비컨 키 소스 정의하기 섹션을 참조하세요.다음 Java 예제는 단일 테넌트 데이터베이스의 비컨 버전을 정의합니다. 멀티테넌트 데이터베이스의 비컨 버전을 정의하는 데 도움이 필요하면 멀티테넌트 데이터베이스의 검색 가능한 암호화를 참조하세요.
-
보조 인덱스 구성
비컨을 구성한 후 암호화된 필드를 검색하려면 먼저 각 비컨을 반영하는 보조 인덱스를 구성해야 합니다. 자세한 정보는 비컨을 사용한 보조 인덱스 구성을 참조하세요.
-
암호화 작업 정의
표준 비컨을 구성하는 데 사용되는 모든 필드를
ENCRYPT_AND_SIGN
으로 표시해야 합니다. 비콘을 구성하는 데 사용되는 다른 모든 필드에는 또는 표시가 있어야 합니다.SIGN_ONLY
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
-
AWS 데이터베이스 암호화 SDK 클라이언트 구성
DynamoDB 테이블의 테이블 항목을 보호하는 AWS 데이터베이스 암호화 SDK 클라이언트를 구성하려면 DynamoDB용 Java 클라이언트 측 암호화 라이브러리를 참조하십시오.
비컨 쿼리
구성하는 비컨의 유형에 따라 수행할 수 있는 쿼리 유형이 결정됩니다. 표준 비컨은 필터 표현식을 사용하여 동등 검색을 수행합니다. 복합 비컨은 리터럴 일반 텍스트 문자열과 표준 비컨을 결합하여 복잡한 쿼리를 수행합니다. 암호화된 데이터를 쿼리할 때는 비컨 이름을 검색합니다.
두 표준 비컨에 동일한 기본 일반 텍스트가 포함되어 있더라도 두 표준 비컨의 값을 비교할 수는 없습니다. 두 개의 표준 비컨은 동일한 일반 텍스트 값에 대해 서로 다른 두 개의 HMAC 태그를 생성합니다. 따라서 표준 비컨은 다음 쿼리를 수행할 수 없습니다.
-
beacon1
=beacon2
-
beacon1
IN (beacon2
) -
value
IN (beacon1
,beacon2
, ...) -
CONTAINS(
beacon1
,beacon2
)
복합 비컨은 다음 쿼리를 수행할 수 있습니다.
-
BEGINS_WITH(
, 여기서a
)
는 조립된 복합 비컨이 시작하는 필드의 전체 값을 반영합니다.a
BEGINS_WITH
연산자를 사용하여 특정 하위 문자열로 시작하는 값을 식별할 수 없습니다. 하지만BEGINS_WITH(
을 사용할 수 있으며, 여기서S_
)
는 조립된 복합 비컨이 시작하는 부분의 접두사를 반영합니다.S_
-
CONTAINS(
, 여기서a
)
는 조립된 복합 비컨에 포함된 필드의 전체 값을 반영합니다.a
CONTAINS
연산자를 사용하여 세트 내의 특정 하위 문자열이나 값이 포함된 레코드를 식별할 수 없습니다.예를 들어
이 세트의 값을 반영하는 쿼리a
CONTAINS(
는 수행할 수 없습니다.path
, "a
" -
복합 비컨의 서명된 부분을 비교할 수 있습니다. 서명된 부분을 비교할 때 선택적으로 하나 이상의 서명된 부분에 암호화된 부분의 접두사를 추가할 수 있지만 암호화된 필드의 값을 쿼리에 포함할 수는 없습니다.
예를 들어 서명된 부분을 비교하고
또는signedField1
=signedField2
에 대해 쿼리할 수 있습니다.value
IN (signedField1
,signedField2
, ...)
에 대한 쿼리에 의해 서명된 부분과 암호화된 부분의 접두사를 비교할 수도 있습니다.signedField1.A_
=signedField2.B_
-
, 여기서field
BETWEENa
ANDb
및a
는 서명된 부분입니다. 암호화된 부분의 접두사를 하나 이상의 서명된 부분에 선택적으로 추가할 수 있지만 암호화된 필드의 값을 쿼리에 포함할 수는 없습니다.b
복합 비컨에 대한 쿼리에 포함시키는 각 부분의 접두사를 포함해야 합니다. 예를 들어, 두 개의 필드, encryptedField
및 signedField
로부터 복합 비컨 compoundBeacon
을 구성한 경우, 비컨을 쿼리할 때 이 두 부분에 대해 구성된 접두사를 포함해야 합니다.
compoundBeacon = E_
encryptedFieldValue
.S_signedFieldValue