데이터 키 생성 - AWS Key Management Service

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

데이터 키 생성

권한 있는 사용자는 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은 다음 작업을 수행합니다.

  1. 요청된 보안 암호 구성 요소를 생성하고 휘발성 메모리에 보관합니다.

  2. 활성 HBK = Decrypt(DKi, EKT)를 가져오기 위해 요청에 정의된 KMS 키의 키 ID와 일치하는 EKT를 복호화합니다.

  3. 임의의 임시 N을 생성합니다.

  4. HBKN에서 256비트 AES-GCM 파생 암호화 키 K를 생성합니다.

  5. 보안 암호 구성 요소 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를 참조하세요.