

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

# 6단계: 원장에 있는 문서 검증
6단계: 문서 검증

**중요**  
지원 종료 알림: 기존 고객은 07/31/2025에 지원이 종료될 때까지 Amazon QLDB를 사용할 수 있습니다. 자세한 내용은 [Amazon QLDB 원장을 Amazon Aurora PostgreSQL로 마이그레이션](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)을 참조하세요.

Amazon QLDB를 사용하면 SHA-256 암호화 해싱을 사용하여 원장 저널에 있는 문서의 무결성을 효율적으로 검증할 수 있습니다. 이 예에서 알렉시스와 브렌트는 자동차 대리점에서 VIN이 `1N4AL11D75C109151`인 차량을 트레이드하여 새 모델로 업그레이드하기로 결정합니다. 딜러는 등록 사무소를 통해 차량 소유권을 확인하는 것으로 절차를 시작합니다.

QLDB에서 검증 및 암호화 해싱이 작동하는 방식에 대한 자세한 내용은 [Amazon QLDB에서의 데이터 확인](verification.md)을 참조하세요.

이 단계에서는 `vehicle-registration` 원장의 문서 개정을 확인합니다. 먼저 다이제스트를 요청합니다. 다이제스트는 출력 파일로 반환되며 원장의 전체 변경 내역에 대한 서명 역할을 합니다. 그런 다음 해당 다이제스트와 관련된 개정 증거를 요청합니다. 이 증거를 사용하면 모든 유효성 검사를 통과한 경우 개정 내용의 무결성을 확인할 수 있습니다.

## 다이제스트를 요청하려면


1. [https://console.aws.amazon.com/qldb](https://console.aws.amazon.com/qldb)에서 Amazon QLDB 콘솔을 엽니다.

1. 탐색 창에서 **원장**을 선택합니다.

1. 원장 목록에서 `vehicle-registration`을 선택합니다.

1. **다이제스트 가져오기**를 선택합니다. **다이제스트 가져오기** 대화 상자에는 다음과 같은 다이제스트 세부 정보가 표시됩니다.
   + **다이제스트** - 요청한 다이제스트의 SHA-256 해시 값.
   + **다이제스트 팁 주소** - 요청한 다이제스트에 포함된 저널의 최신 [블록](verification.md#verification.structure) 위치. 주소에는 다음과 같은 두 가지 필드가 있습니다.
     + `strandId` - 블록을 포함하는 저널 스트랜드의 고유 ID입니다.
     + `sequenceNo` - 스트랜드 내 블록의 위치를 지정하는 인덱스 번호.
   + **원장** - 다이제스트를 요청한 원장 이름.
   + **날짜** - 다이제스트를 요청한 시점의 타임스탬프.

1. 다이제스트 정보를 검토합니다. 그런 다음 **저장**을 선택합니다. 기본 파일 이름을 유지하거나 새 이름을 입력할 수 있습니다.

   이 단계는 콘텐츠가 포함된 일반 텍스트 파일을 [Amazon Ion](ion.md) 형식으로 저장합니다. 파일의 파일 이름 확장자는 `.ion.txt`이며 이전 대화 상자에 나열된 모든 다이제스트 정보를 포함합니다. 다음은 다이제스트 파일의 내용을 보여주는 예제입니다. 필드 순서는 브라우저에 따라 다를 수 있습니다.

   ```
   {
     "digest": "42zaJOfV8iGutVGNaIuzQWhD5Xb/5B9lScHnvxPXm9E=",
     "digestTipAddress": "{strandId:\"BlFTjlSXze9BIh1KOszcE3\",sequenceNo:73}",
     "ledger": "vehicle-registration",
     "date": "2019-04-17T16:57:26.749Z"
   }
   ```

1. 나중에 액세스할 수 있는 위치에 이 파일을 저장하세요. 다음 단계에서는 이 파일을 사용하여 문서 개정을 검증합니다.

원장 다이제스트를 저장한 후 해당 다이제스트를 기준으로 문서 개정을 확인하는 프로세스를 시작할 수 있습니다.

**참고**  
검증을 위한 프로덕션 사용 사례에서는 두 작업을 연속해서 수행하는 대신 이전에 저장한 다이제스트를 사용합니다. 가장 좋은 방법은 나중에 확인하려는 개정 내용이 저널에 기록되는 즉시 다이제스트를 요청하여 저장하는 것입니다.

## 문서 개정을 검증하려면


1. 먼저 검증하려는 문서 개정의 `id` 및 `blockAddress`를 원장에서 쿼리하세요. 이 필드는 문서의 메타데이터에 포함되며 커밋된 뷰에서 쿼리할 수 있습니다.

   문서 `id`는 시스템에서 할당한 고유 ID 문자열입니다. `blockAddress`는 개정이 커밋된 블록 위치를 지정하는 Ion 구조입니다.

   QLDB 콘솔의 탐색 창에서 **PartiQL 편집기**를 선택합니다.

1. `vehicle-registration` 원장을 선택합니다.

1. 쿼리 편집기 창에서 다음 문을 입력한 후 **실행**을 선택합니다.

   ```
   SELECT r.metadata.id, r.blockAddress
   FROM _ql_committed_VehicleRegistration AS r 
   WHERE r.data.VIN = '1N4AL11D75C109151'
   ```

1. 쿼리가 반환하는 `id` 및 `blockAddress` 값을 복사하여 저장합니다. `id` 필드의 큰따옴표는 반드시 생략하세요. Amazon Ion에서 문자열 데이터 유형이 큰따옴표로 구분됩니다.

1. 이제 문서 수정본을 선택했으니 확인 프로세스를 시작할 수 있습니다.

   탐색 창에서 **검증**을 선택합니다.

1. **문서 검증** 양식의 **검증하려는 문서 지정**에 다음 입력 파라미터를 입력합니다.
   + **원장** - `vehicle-registration`를 선택합니다.
   + **블록 주소** - 3단계에서 쿼리를 통해 반환된 `blockAddress` 값.
   + **문서 ID** - 3단계에서 쿼리를 통해 반환된 `id` 값.

1. **확인에 사용할 다이제스트 지정**에서 **다이제스트 선택**을 선택하여 이전에 저장한 다이제스트를 선택합니다. 파일이 유효하면 콘솔의 모든 다이제스트 필드가 자동으로 채워집니다. 또는 다이제스트 파일에서 직접 다음 값을 수동으로 복사하여 붙여넣을 수 있습니다.
   + **다이제스트** - 다이제스트 파일의 `digest` 값.
   + **다이제스트 팁 주소** - 다이제스트 파일의 `digestTipAddress` 값.

1. 문서 및 다이제스트 입력 파라미터를 검토한 다음 **검증**을 선택합니다.

   콘솔은 다음 두 단계를 자동화합니다.

   1. 지정된 문서에 대한 증거를 QLDB에 요청합니다.

   1. QLDB에서 반환한 증거를 사용하여 제공된 다이제스트에 대해 문서 개정을 검증하는 클라이언트 측 API를 호출합니다.

   콘솔은 **검증 결과** 카드에 요청 결과를 표시합니다. 자세한 내용은 [확인 결과](verification.results.md)을 참조하세요.

1. 확인 로직을 테스트하려면 **문서 개정 확인하기**에서 6\$18단계를 반복하되, **다이제스트** 입력 문자열에서 한 글자만 변경합니다. 그러면 **검증** 요청이 실패하고 적절한 오류 메시지가 표시됩니다.

`vehicle-registration` 원장을 더 이상 사용할 필요가 없는 경우 [7단계(선택 사항): 리소스 정리](getting-started-step-7.md)로 진행하세요.