

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

# 암호화된 객체 다시 암호화
<a name="reencrypting-an-encrypted-object"></a>

단일 KMS 키로 암호화된 기존 고객 암호화 텍스트는 reencrypt 명령을 통해 다른 KMS 키로 다시 암호화할 수 있습니다. reencrypt 명령은 클라이언트 측에서 키의 일반 텍스트를 노출하지 않으면서 새 KMS 키로 서버 측의 데이터를 암호화합니다. 데이터 암호화가 해제된 후 다시 암호화됩니다.

요청 구문은 다음과 같습니다.

```
{
	"CiphertextBlob": "blob",
	"DestinationEncryptionContext": { "string" : "string" },
	"DestinationKeyId": "string",
	"GrantTokens": ["string"],
       "SourceKeyId": "string",
	"SourceEncryptionContext": { "string" : "string"}
}
```

요청은 JSON 형식으로 다음 데이터를 받습니다.

**CiphertextBlob**  
다시 암호화할 데이터의 암호화 텍스트입니다.

** DestinationEncryptionContext**  
(선택 사항) 데이터를 다시 암호화할 때 사용할 암호화 컨텍스트입니다.

**DestinationKeyId**  
데이터를 다시 암호화하는 데 사용되는 키의 식별자입니다.

**GrantTokens**  
(선택 사항) 복호화 작업을 수행할 권한을 제공하는 권한 부여를 나타내는 권한 부여 토큰 목록입니다.

**SourceKeyId**  
(선택 사항) 데이터를 복호화하는 데 사용되는 키의 키 식별자입니다.

**SourceEncryptionContext**  
(선택 사항) `CiphertextBlob` 파라미터에 지정된 데이터를 암호화하고 복호화하는 데 사용되는 암호화 컨텍스트입니다.

이 프로세스는 앞서 설명한 복호화 및 암호화 작업을 결합합니다. 즉, 고객 암호화 텍스트가 고객 암호화 텍스트에서 참조하는 초기 HBK를 사용하여 의도한 KMS 키를 사용한 현재 HBK로 복호화됩니다. 이 명령에 사용된 두 KMS 키가 동일한 경우 이 명령은 고객 암호화 텍스트를 이전 버전의 HBK에서 최신 버전의 HBK로 업데이트합니다.

응답 구문은 다음과 같습니다.

```
{
    "CiphertextBlob": blob,
    "DestinationEncryptionAlgorithm": "string",
    "KeyId": "string",
    "SourceEncryptionAlgorithm": "string",
    "SourceKeyId": "string"
}
```

호출 애플리케이션이 기본 일반 텍스트의 신뢰성을 확인하려는 경우 반환되는 SourceKeyId가 올바른 ID인지 확인해야 합니다.