DynamoDB Encryption Client 애플리케이션의 문제 해결 - AWS 데이터베이스 암호화 SDK

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

DynamoDB Encryption Client 애플리케이션의 문제 해결

참고

클라이언트 측 암호화 라이브러리는 데이터베이스 암호화로 AWS 이름이 변경되었습니다. SDK 다음 주제에서는 Java용 DynamoDB Encryption Client 버전 1.x~2.x 와 Python용 DynamoDB Encryption Client 버전 1.x~3.x에 대한 정보를 제공합니다. 자세한 내용은 DynamoDB AWS 버전 지원을 SDK 위한 데이터베이스 암호화를 참조하십시오.

이 섹션에서는 DynamoDB Encryption Client를 사용할 때 발생할 수 있는 문제를 설명하고 문제 해결을 위한 제안을 제공합니다.

DynamoDB 암호화 클라이언트에 대한 피드백을 제공하려면 또는 리포지토리에 aws-dynamodb-encryption-java문제를 제출하십시오. aws-dynamodb-encryption-python GitHub

이 설명서에 대한 피드백을 제공하려면 이 페이지의 피드백 링크를 사용하십시오.

액세스 거부됨

문제: 필요한 리소스에 대한 애플리케이션의 액세스가 거부됩니다.

제안: 필요한 권한에 대해 알아보고 이러한 권한을 애플리케이션이 실행되는 보안 컨텍스트에 추가합니다.

세부 정보

DynamoDB Encryption Client 라이브러리를 사용하는 애플리케이션을 실행하려면, 호출자에게 해당 구성 요소를 사용할 수 있는 권한이 있어야 합니다. 그렇지 않으면 필수 요소에 대한 액세스가 거부됩니다.

서명 확인 실패

문제: 서명 확인 실패로 인해 항목을 복호화할 수 없습니다. 또한 항목이 의도한 대로 암호화 및 서명되지 않을 수도 있습니다.

제안: 제공하는 속성 작업에서 항목의 모든 속성을 고려해야 합니다. 항목을 복호화할 때는 항목을 암호화하는 데 사용된 작업과 일치하는 속성 작업을 제공해야 합니다.

세부 정보

제공하는 속성 작업은 암호화하고 서명할 속성, 서명할(암호화하지 않음) 속성, 무시할 속성을 DynamoDB Encryption Client에 알려줍니다.

지정한 속성 작업이 항목의 모든 속성을 고려하지 않는 경우 항목이 의도한 방식으로 암호화되고 서명되지 않을 수 있습니다. 항목 복호화 시 제공하는 속성 작업과 항목 암호화 시 제공했던 속성 작업이 다른 경우 서명 확인이 실패할 수 있습니다. 이는 새 속성 동작이 모든 호스트에 전파되지 않았을 수 있는 분산 애플리케이션에서 특히 발생하는 문제입니다.

서명 유효성 검사 오류는 해결하기 어렵습니다. 이를 방지하기 위해 데이터 모델을 변경할 때 추가 예방 조치를 취하십시오. 세부 정보는 데이터 모델 변경을 참조하세요.

이전 버전 글로벌 테이블 관련 문제

문제: 서명 확인에 실패하여 이전 버전의 Amazon DynamoDB 글로벌 테이블의 항목을 복호화할 수 없습니다.

제안: 예약된 복제 필드가 암호화되거나 서명되지 않도록 속성 작업을 설정합니다.

세부 정보

DynamoDB Encryption Client를 DynamoDB 글로벌 테이블과 함께 사용할 수 있습니다. 다중 지역 KMS 키가 포함된 글로벌 테이블을 사용하고 글로벌 테이블이 복제되는 모든 AWS 리전 위치에 KMS 키를 복제하는 것이 좋습니다.

글로벌 테이블 버전 2019.11.21부터 DynamoDB Encryption Client에서 특별한 구성 없이 글로벌 테이블을 사용할 수 있습니다. 하지만 글로벌 테이블 버전 2017.11.29를 사용하는 경우 예약된 복제 필드가 암호화되거나 서명되지 않았는지 확인해야 합니다.

글로벌 테이블 버전 2017.11.29를 사용하는 경우 다음 속성에 대한 속성 작업을 Java의 DO_NOTHING 또는 Python@DoNotTouch으로 설정해야 합니다.

  • aws:rep:deleting

  • aws:rep:updatetime

  • aws:rep:updateregion

다른 버전의 글로벌 테이블을 사용하는 경우에는 별도의 조치가 필요하지 않습니다.

Most Recent Provider의 성능 저하

문제: 특히 최신 버전의 DynamoDB Encryption Client로 업데이트한 후 애플리케이션의 응답성이 떨어집니다.

제안: time-to-live 값과 캐시 크기를 조정하세요.

세부 정보

Most Recent Provider는 암호화 자료의 재사용을 제한적으로 허용하여 DynamoDB Encryption Client를 사용하는 애플리케이션의 성능을 개선하도록 설계되었습니다. 애플리케이션에 Most Recent Provider를 구성할 때는 성능 향상과 캐싱 및 재사용으로 인해 발생하는 보안 문제 사이에서 균형을 맞춰야 합니다.

최신 버전의 DynamoDB 암호화 클라이언트에서는 TTL () 값에 따라 캐시된 암호화 자료 제공자 () 를 사용할 수 있는 기간이 결정됩니다. time-to-live CMPs TTL또한 가장 최근 제공자가 새 버전의 서버를 확인하는 빈도도 결정됩니다. CMP

TTL길이가 너무 길면 애플리케이션이 비즈니스 규칙이나 보안 표준을 위반할 수 있습니다. TTL명령이 너무 짧으면 제공자 스토어에 자주 전화를 걸면 제공자 스토어가 애플리케이션 및 서비스 계정을 공유하는 다른 애플리케이션의 요청을 제한할 수 있습니다. 이 문제를 해결하려면 지연 시간 TTL 및 가용성 목표를 충족하고 보안 표준을 준수하는 값으로 및 캐시 크기를 조정하세요. 세부 정보는 time-to-live 값 설정을 참조하세요.