기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
데이터 모델 업데이트
클라이언트 측 암호화 라이브러리의 이름이 AWS 데이터베이스 암호화 로 변경되었습니다SDK. 이 개발자 안내서는 여전히 DynamoDB Encryption Client에 대한 정보를 제공합니다. |
DynamoDBSDK용 AWS 데이터베이스 암호화를 구성할 때 속성 작업 을 제공합니다. 암호화 시 AWS 데이터베이스 암호화SDK는 속성 작업을 사용하여 암호화 및 서명할 속성, 서명할 속성(암호화하지는 않음) 및 무시할 속성을 식별합니다. 또한 서명에서 제외되는 속성을 클라이언트에게 명시적으로 알리도록 허용된 무서명 속성을 정의합니다. 복호화 시 AWS 데이터베이스 암호화는 사용자가 정의한 서명되지 않은 허용된 속성을 SDK 사용하여 서명에 포함되지 않은 속성을 식별합니다. 속성 작업은 암호화된 항목에 저장되지 않으며 AWS 데이터베이스 암호화SDK는 속성 작업을 자동으로 업데이트하지 않습니다.
속성 작업을 신중하게 선택합니다. 확실하지 않은 경우 Encrypt and sign(암호화 및 서명)을 사용합니다. AWS 데이터베이스 암호화를 사용하여 항목을 SDK 보호한 후에는 기존 , ENCRYPT_AND_SIGN
SIGN_ONLY
또는 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성을 로 변경할 수 없습니다DO_NOTHING
. 그러나 다음과 같이 안전하게 변경할 수 있습니다.
-
새 ENCRYPT_AND_SIGN, SIGN_ONLY및 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT 속성 추가
-
기존 ENCRYPT_AND_SIGN 속성을 SIGN_ONLY 또는 로 변경 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
-
기존 SIGN_ONLY 또는 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT 속성을 로 변경 ENCRYPT_AND_SIGN
-
기존 SIGN_ONLY 속성을 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT로 변경합니다.
-
기존 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT 속성을 SIGN_ONLY로 변경합니다.
검색 가능한 암호화에 대한 고려 사항
데이터 모델을 업데이트하기 전에 업데이트가 속성으로 구성한 모든 비컨에 어떤 영향을 미칠 수 있는지 신중하게 고려해야 합니다. 비컨으로 새 레코드를 작성한 후에는 비컨의 구성을 업데이트할 수 없습니다. 비컨을 구성하는 데 사용한 속성과 관련된 속성 작업은 업데이트할 수 없습니다. 기존 속성 및 관련 비컨을 제거하면 해당 비컨을 사용하여 기존 레코드를 쿼리할 수 없습니다. 레코드에 추가하는 새 필드에 대해 새 비컨을 만들 수 있지만 새 필드를 포함하도록 기존 비컨을 업데이트할 수는 없습니다.
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성 고려 사항
기본적으로 파티션 및 정렬 키는 암호화 컨텍스트에 포함된 유일한 속성입니다. AWS KMS 계층적 키링의 브랜치 키 ID 공급자가 암호화 컨텍스트에서 복호화하는 데 필요한 브랜치 키를 식별할 수 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
있도록 추가 필드를 로 정의하는 것이 좋습니다. 자세한 내용은 브랜치 키 ID 공급자를 참조하세요. SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성을 지정하는 경우 파티션 및 정렬 속성도 여야 합니다SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
.
참고
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
암호화 작업을 사용하려면 AWS 데이터베이스 암호화 버전 3.3 이상을 사용해야 합니다SDK. 를 포함하도록 데이터 모델을 업데이트하기 전에 모든 리더에 새 버전을 배포합니다SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
.
새 ENCRYPT_AND_SIGN
, SIGN_ONLY
및 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성 추가
새 ENCRYPT_AND_SIGN
, SIGN_ONLY
또는 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성을 추가하려면 속성 작업에서 새 속성을 정의합니다.
기존 DO_NOTHING
속성을 제거하고 ENCRYPT_AND_SIGN
, SIGN_ONLY
또는 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성으로 다시 추가할 수 없습니다.
주석이 달린 데이터 클래스 사용
TableSchema
를 사용하여 속성 작업을 정의한 경우 주석이 달린 데이터 클래스에 새 속성을 추가합니다. 새 속성에 속성 작업 주석을 지정하지 않으면 클라이언트는 기본적으로 새 속성을 암호화하고 서명합니다(속성이 프라이머리 키의 일부가 아닌 경우). 새 속성에만 서명하려면 @DynamoDBEncryptionSignOnly
또는 @DynamoDBEncryptionSignAndIncludeInEncryptionContext
주석을 사용하여 새 속성을 추가해야 합니다.
객체 모델 사용
속성 작업을 수동으로 정의한 경우 객체 모델의 속성 작업에 새 속성을 추가하고 ENCRYPT_AND_SIGN
, SIGN_ONLY
또는 를 속성 작업SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
으로 지정합니다.
기존 속성 제거
속성이 더 이상 필요하지 않다고 판단되면 해당 속성에 데이터 쓰기를 중단하거나 속성 작업에서 해당 속성을 공식적으로 제거할 수 있습니다. 속성에 새 데이터 쓰기를 중지해도 해당 속성은 여전히 속성 작업에 표시됩니다. 이는 나중에 속성 사용을 다시 시작해야 하는 경우에 유용할 수 있습니다. 속성 작업에서 속성을 정식으로 제거해도 데이터 세트에서 제거되지는 않습니다. 데이터 세트에는 해당 속성이 포함된 항목이 계속 포함됩니다.
기존 ENCRYPT_AND_SIGN
, SIGN_ONLY
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
, 또는 DO_NOTHING
속성을 공식적으로 제거하려면 속성 작업을 업데이트합니다.
DO_NOTHING
속성을 제거하는 경우 허용된 무서명 속성에서 해당 속성을 제거해서는 안 됩니다. 더 이상 해당 속성에 새 값을 쓰지 않아도 클라이언트가 속성이 포함된 기존 항목을 읽으려면 속성이 서명되지 않았음을 알아야 합니다.
주석이 달린 데이터 클래스 사용
TableSchema
를 사용하여 속성 작업을 정의한 경우 주석이 달린 데이터 클래스에서 해당 속성을 제거합니다.
객체 모델 사용
속성 동작을 수동으로 정의한 경우 객체 모델의 속성 작업에서 속성을 제거합니다.
기존 ENCRYPT_AND_SIGN
속성을 SIGN_ONLY
또는 로 변경 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
기존 ENCRYPT_AND_SIGN
속성을 SIGN_ONLY
또는 로 변경하려면 속성 작업을 업데이트SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
해야 합니다. 업데이트를 배포한 후 클라이언트는 속성에 레코드된 기존 값을 확인하고 복호화할 수 있지만 속성에 기록된 새 값에만 서명합니다.
참고
기존 ENCRYPT_AND_SIGN
속성을 SIGN_ONLY
또는 로 변경하기 전에 보안 요구 사항을 신중하게 고려하세요SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
. 민감한 데이터를 저장할 수 있는 모든 속성은 암호화되어야 합니다.
주석이 달린 데이터 클래스 사용
로 속성 작업을 정의한 경우 주석이 달린 데이터 클래스에 @DynamoDBEncryptionSignOnly
또는 @DynamoDBEncryptionSignAndIncludeInEncryptionContext
주석을 포함하도록 기존 속성을 TableSchema
업데이트합니다.
객체 모델 사용
속성 작업을 수동으로 정의한 경우 기존 속성과 연결된 속성 작업을 에서 ENCRYPT_AND_SIGN
SIGN_ONLY
또는 객체 모델에서 업데이트SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
합니다.
기존 SIGN_ONLY
또는 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성을 로 변경 ENCRYPT_AND_SIGN
기존 SIGN_ONLY
또는 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성을 로 변경하려면 속성 작업을 업데이트ENCRYPT_AND_SIGN
해야 합니다. 업데이트를 배포한 후 클라이언트는 속성에 레코드된 기존 값을 확인하고 속성에 기록된 새 값을 암호화하고 서명할 수 있습니다.
주석이 달린 데이터 클래스 사용
로 속성 작업을 정의한 경우 기존 속성에서 @DynamoDBEncryptionSignOnly
또는 @DynamoDBEncryptionSignAndIncludeInEncryptionContext
주석을 TableSchema
제거합니다.
객체 모델 사용
속성 작업을 수동으로 정의한 경우 객체 모델에서 SIGN_ONLY
또는 에서 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
ENCRYPT_AND_SIGN
로 속성과 연결된 속성 작업을 업데이트합니다.
새 DO_NOTHING
속성 추가
새 DO_NOTHING
속성을 추가할 때 오류가 발생할 위험을 줄이려면 DO_NOTHING
속성의 이름을 지정할 때 고유한 접두사를 지정한 다음 해당 접두사를 사용하여 허용되는 무서명 속성을 정의하는 것이 좋습니다.
주석이 달린 데이터 클래스에서 기존 ENCRYPT_AND_SIGN
SIGN_ONLY
, 또는 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성을 제거한 다음 속성을 속성으로 다시 추가할 수 없습니다DO_NOTHING
. 완전히 새로운 DO_NOTHING
속성만 추가할 수 있습니다.
새 DO_NOTHING
속성을 추가하는 단계는 허용된 서명되지 않은 속성을 목록에 명시적으로 정의했는지 아니면 접두사를 사용하여 정의했는지에 따라 달라집니다.
허용된 무서명 속성 접두사 사용
TableSchema
을 사용하여 속성 작업을 정의한 경우 @DynamoDBEncryptionDoNothing
주석을 사용하여 주석이 달린 데이터 클래스에 새 DO_NOTHING
속성을 추가합니다. 속성 작업을 수동으로 정의한 경우 새 속성을 포함하도록 속성 작업을 업데이트합니다. DO_NOTHING
속성 작업을 사용하여 새 속성을 명시적으로 구성해야 합니다. 새 속성 이름에 동일한 고유 접두사를 포함해야 합니다.
허용된 무서명 속성 목록 사용
-
허용된 무서명 속성 목록에 새
DO_NOTHING
속성을 추가하고 업데이트된 목록을 배포합니다. -
1단계에서 변경한 내용을 배포합니다.
이 데이터를 읽어야 하는 모든 호스트에 변경 내용이 전파되기 전까지는 3단계로 넘어갈 수 없습니다.
-
새
DO_NOTHING
속성을 속성 작업에 추가합니다.-
TableSchema
을 사용하여 속성 작업을 정의한 경우@DynamoDBEncryptionDoNothing
주석을 사용하여 주석이 달린 데이터 클래스에 새DO_NOTHING
속성을 추가합니다. -
속성 작업을 수동으로 정의한 경우 새 속성을 포함하도록 속성 작업을 업데이트합니다.
DO_NOTHING
속성 작업을 사용하여 새 속성을 명시적으로 구성해야 합니다.
-
-
3단계에서 변경한 내용을 배포합니다.
기존 SIGN_ONLY
속성을 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
로 변경합니다.
기존 SIGN_ONLY
속성을 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
로 변경하려면 속성 작업을 업데이트해야 합니다. 업데이트를 배포한 후 클라이언트는 속성에 기록된 기존 값을 확인할 수 있으며 속성에 기록된 새 값에 계속 서명합니다. 속성에 기록된 새 값은 암호화 컨텍스트 에 포함됩니다.
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성을 지정하는 경우 파티션 및 정렬 속성도 여야 합니다SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
.
주석이 달린 데이터 클래스 사용
로 속성 작업을 정의한 경우 속성과 연결된 속성 작업을 에서 @DynamoDBEncryptionSignOnly
로 TableSchema
업데이트합니다@DynamoDBEncryptionSignAndIncludeInEncryptionContext
.
객체 모델 사용
속성 작업을 수동으로 정의한 경우, 객체 모델에서 속성과 연관된 속성 작업을 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
에서 SIGN_ONLY
로 업데이트합니다.
기존 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성을 SIGN_ONLY
로 변경합니다.
기존 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성을 SIGN_ONLY
로 변경하려면 속성 작업을 업데이트해야 합니다. 업데이트를 배포한 후 클라이언트는 속성에 기록된 기존 값을 확인할 수 있으며 속성에 기록된 새 값에 계속 서명합니다. 속성에 기록된 새 값은 암호화 컨텍스트 에 포함되지 않습니다.
기존 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
속성을 로 변경하기 전에 업데이트가 브랜치 키 ID 공급자의 기능에 어떤 영향을 미칠 수 있는지 SIGN_ONLY
신중하게 고려하세요.
주석이 달린 데이터 클래스 사용
로 속성 작업을 정의한 경우 속성과 연결된 속성 작업을 에서 @DynamoDBEncryptionSignAndIncludeInEncryptionContext
로 TableSchema
업데이트합니다@DynamoDBEncryptionSignOnly
.
객체 모델 사용
속성 작업을 수동으로 정의한 경우, 객체 모델에서 속성과 연관된 속성 작업을 SIGN_ONLY
에서 SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
로 업데이트합니다.