기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
데이터 키 생성
권한 있는 사용자는 GenerateDataKey API와 관련 API를 사용하여 특정 유형의 데이터 키 또는 임의의 길이의 임의의 키를 요청합니다. 이 주제에서는 이 API 작업의 단순화된 보기를 제공합니다. 자세한 내용은 AWS Key Management Service API 참조의 GenerateDataKey API를 참조하세요.
다음은 GenerateDataKey 요청 구문입니다.
{ “EncryptionContext”: {“string” : “string”}, “GrantTokens”: [“string”], “KeyId”: “string”, “NumberOfBytes”: “number” }
요청은 JSON 형식으로 다음 데이터를 받습니다.
- KeyId
-
데이터 키를 암호화하는 데 사용되는 키의 식별자입니다. 이 값은 대칭 암호화 KMS 키를 식별해야 합니다.
이 파라미터는 필수 사항입니다.
- NumberOfBytes
-
생성할 바이트 수를 나타내는 정수입니다. 이 파라미터는 필수 사항입니다.
호출자는
KeySpec또는NumberOfBytes중 하나를 제공해야 하며 둘 다 지정할 수는 없습니다. - EncryptionContext
-
(선택 사항) 암호화 및 복호화 프로세스 중에 인증할 추가 데이터가 포함된 이름-값 페어입니다.
- GrantTokens
-
(선택 사항) 키를 생성하거나 사용할 권한을 제공하는 권한 부여를 나타내는 권한 부여 토큰 목록입니다. 권한 부여 및 권한 부여 토큰에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드에서 AWS KMS의 인증 및 액세스 제어를 참조하세요.
명령을 인증한 후 AWS KMS는 KMS 키와 연결된 현재 활성 EKT를 획득합니다. 제공된 요청 및 암호화 컨텍스트와 함께 EKT를 AWS KMS 호스트와 도메인의 HSM 간의 보호된 세션을 통해 HSM에 전달합니다.
HSM은 다음 작업을 수행합니다.
-
요청된 보안 암호 구성 요소를 생성하고 휘발성 메모리에 보관합니다.
-
활성 HBK = Decrypt(DKi, EKT)를 가져오기 위해 요청에 정의된 KMS 키의 키 ID와 일치하는 EKT를 복호화합니다.
-
임의의 임시 N을 생성합니다.
-
HBK 및 N에서 256비트 AES-GCM 파생 암호화 키 K를 생성합니다.
-
보안 암호 구성 요소 ciphertext = Encrypt(K, context, secret)를 암호화합니다.
GenerateDataKey는 AWS KMS 호스트와 HSM 간의 보안 채널을 통해 일반 텍스트 보안 구성 요소와 사이퍼텍스트를 반환합니다. AWS KMS 그런 다음는 TLS 세션을 통해 이를 전송합니다. AWS KMS 는 일반 텍스트 또는 사이퍼텍스트를 유지하지 않습니다. KMS 키를 사용하기 위한 암호화 텍스트, 암호화 컨텍스트 및 권한 부여를 소유한 경우가 아니면, 기본 보안 암호가 반환되지 않습니다.
응답 구문은 다음과 같습니다.
{ "CiphertextBlob": "blob", "KeyId": "string", "Plaintext": "blob" }
데이터 키의 관리는 애플리케이션 개발자로서 사용자가 맡습니다. AWS KMS 데이터 키(데이터 키 페어는 아님)를 사용한 클라이언트 측 암호화 모범 사례를 위해를 사용할 수 있습니다AWS Encryption SDK.
데이터 키 교체 빈도는 제약이 없습니다. 또한 ReEncrypt API 작업을 통해 데이터 키를 다른 KMS 키 또는 교체된 KMS 키로 다시 암호화할 수 있습니다. 자세한 내용은 AWS Key Management Service API 참조의 ReEncrypt를 참조하세요.