키 구성 요소 가져오기 2단계: 퍼블릭 키 다운로드 및 토큰 가져오기 - AWS Key Management Service

키 구성 요소 가져오기 2단계: 퍼블릭 키 다운로드 및 토큰 가져오기

키 구성 요소 없이 대칭 암호화 AWS KMS key을 생성한 후 해당 KMS 키에 대해 퍼블릭 키를 다운로드하고 토큰을 가져옵니다. 키 구성 요소를 가져오려면 이러한 항목이 필요합니다. AWS Management Console 또는 AWS KMS API를 사용해 단일 단계에서 두 항목을 모두 다운로드할 수 있습니다.

동일한 키 구성 요소를 KMS 키로 다시 가져오고자 하는 경우에도 이러한 항목을 다운로드할 수 있습니다. 이 방법으로 키 구성 요소의 만료 시간을 변경하거나 만료되었거나 삭제된 키 구성 요소를 복원할 수 있습니다.

퍼블릭 키의 사용

키 구성 요소를 가져올 때 AWS KMS에 원시 키 구성 요소를 업로드하지 마십시오. 먼저 이 단계에 다운로드한 퍼블릭 키로 키 구성 요소를 암호화한 후, 암호화한 키 구성 요소를 AWS KMS에 업로드해야 합니다. AWS KMS가 암호화한 키 구성 요소를 받으면 해당하는 프라이빗 키를 이용해 해독합니다. AWS KMS에서 받는 퍼블릭 키는 2048비트 RSA 퍼블릭 키로, 항상 AWS 계정별로 고유한 값입니다.

가져오기 토큰 사용

가져오기 토큰에는 키 구성 요소가 올바르게 가져와지도록 보장하는 메타데이터가 포함됩니다. 암호화된 키 구성 요소를 AWS KMS에 업로드할 때 이 단계에 다운로드한 가져오기 토큰을 업로드해야 합니다.

래핑 알고리즘 선택

가져오기 동안 키 구성 요소를 보호하려면 래핑 키와 래핑 알고리즘을 사용해 이를 암호화합니다. 일반적으로 키 구성 요소를 보호하는 하드웨어 보안 모듈(HSM) 또는 키 관리 시스템에서 지원되는 알고리즘을 선택합니다. 다음 선택 항목으로 표현되는 세 가지 패딩 옵션 중 하나와 함께 RSA PKCS #1 암호화 스키마를 사용해야 합니다. 이 선택 항목은 AWS 기본 설정 순으로 나열됩니다. 이러한 선택 항목으로 표현된 스키마의 기술 세부 정보는 PKCS #1 버전 2.1 표준의 섹션 7에서 설명합니다.

  • RSAES_OAEP_SHA_256 – SHA-256 해시 함수와 OAEP(Optimal Asymmetric Encryption Padding)로 구성된 RSA 암호화 알고리즘입니다.

  • RSAES_OAEP_SHA_1 – SHA-1 해시 함수와 OAEP(Optimal Asymmetric Encryption Padding)로 구성된 RSA 암호화 알고리즘입니다.

  • RSAES_PKCS1_V1_5 – PKCS #1 버전 1.5에서 설명한 패딩 형식으로 구성된 RSA 암호화 알고리즘입니다.

참고

3단계에서 OpenSSL 개념 증명으로 키 구성 요소 암호화를 시도하려는 경우 RSAES_OAEP_SHA_1을 사용하십시오.

HSM 또는 키 관리 시스템에서 지원하는 경우, RSAES_OAEP_SHA_256을 이용해 키 구성 요소를 암호화하는 것이 좋습니다. 이 옵션을 사용할 수 없는 경우 RSAES_OAEP_SHA_1을 사용해야 합니다. 두 OAEP 모두 사용할 수 없는 경우 RSAES_PKCS1_V1_5를 사용해야 합니다. 키 구성 요소를 암호화하는 방법에 대한 내용은 키 구성 요소를 보호하는 키 관리 시스템이나 하드웨어 보안 모듈 설명서를 참조하십시오.

퍼블릭 키와 가져오기 토큰은 24시간 동안 유효합니다. 다운로드한 후 24시간 내에 이를 이용해 키 구성 요소를 가져오지 않을 경우, 새로 다운로드해야 합니다.

AWS Management Console 또는 AWS KMS API를 이용해 퍼블릭 키와 가져오기 토큰을 다운로드할 수 있습니다. AWS SDK, AWS Command Line Interface 또는 AWS Tools for PowerShell을 사용하거나 직접HTTP 요청을 수행해 API를 사용할 수 있습니다.

퍼블릭 키 및 가져오기 토큰을 다운로드할 때 GetParametersForImport 작업을 기록하기 위해 GetParametersForImport 항목이 AWS CloudTrail 로그에 추가됩니다. CloudTrail 항목은 AWS KMS 콘솔을 사용하든 AWS KMS API를 사용하든 동일합니다.

퍼블릭 키 및 가져오기 토큰 다운로드(콘솔)

AWS Management Console을 이용해 퍼블릭 키와 가져오기 토큰을 다운로드할 수 있습니다.

  1. 방금 키 구성 요소 없이 KMS 키를 생성하기 위한 절차를 마쳤고 현재 Download wrapping key and import token(래핑 키 및 가져오기 키 다운로드) 페이지에 있다면 단계 8으로 넘어갑니다.

  2. AWS Management Console에 로그인하고 https://console.aws.amazon.com/kms에서 AWS Key Management Service(AWS KMS) 콘솔을 엽니다.

  3. AWS 리전을 변경하려면 페이지의 오른쪽 상단 모서리에 있는 리전 선택기를 사용합니다.

  4. 탐색 창에서 고객 관리형 키(Customer managed keys)를 선택합니다.

    작은 정보

    키 구성 요소는 오리진(Origin)외부(EXTERNAL)인 대칭 암호화 KMS 키로만 가져올 수 있습니다. 이는 키 구성 요소 없이 KMS 키가 생성되었음을 나타냅니다. 테이블에 Origin(오리진) 열을 추가하려면 페이지의 오른쪽 상단 모서리에서 설정 아이콘( )을 선택합니다. Origin(오리진)을 활성화한 다음, 확인을 선택합니다.

  5. 가져오기가 보류 중인 KMS 키의 별칭 또는 키 ID를 선택합니다.

  6. 암호화 구성(Cryptographic configuration) 탭을 선택하고 해당 값을 봅니다. 일반 구성 섹션 아래에 탭이 있습니다.

    키 유형대칭(Symmetric)이고 출처(Origin)외부(EXTERNAL)인 KMS 키에만 키 구성 요소를 가져올 수 있습니다. 키 구성 요소를 가져와서 KMS 키를 생성하는 방법은 AWS KMS 키에서 키 구성 요소 가져오기 단원을 참조하십시오.

  7. 키 구성 요소(Key material) 탭을 선택하고 래핑 키 및 가져오기 토큰 다운로드(Download wrapping key and import token)를 선택합니다.

    키 구성 요소(Key material) 탭은 오리진(Origin) 값이 외부(EXTERNAL)인 대칭 암호화 KMS 키에 대해서만 표시됩니다.

  8. [Select wrapping algorithm]에서 키 구성 요소 암호화에 사용할 옵션을 선택합니다. 옵션에 대한 자세한 내용은 래핑 알고리즘 선택을 참조하십시오.

    3단계에서 OpenSSL 개념 증명으로 키 구성 요소 암호화를 시도하려는 경우 RSAES_OAEP_SHA_1을 선택합니다.

  9. [Download wrapping key and import token]을 선택한 후 파일을 저장합니다.

    다음 옵션이 있는 경우 지금 프로세스를 계속하려면 다음을 선택합니다. 나중에 계속하려면 취소를 선택합니다. 그렇지 않고 창을 닫으려면 취소를 선택하거나 X를 클릭합니다.

  10. 앞 단계에 저장한 .zip 파일(ImportParameters.zip)의 압축을 해제합니다.

    폴더에는 다음 파일이 포함되어 있습니다.

    • wrappingKey_KMS key_key_ID_timestamp라는 파일의 래핑 키(퍼블릭 키)(예: wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909). 2048비트 RSA 퍼블릭 키입니다.

    • importToken_KMS key_key_ID_timestamp라는 파일의 가져오기 토큰(예: importToken_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909).

    • README_KMS key_key_ID_timestamp.txt라는 텍스트 파일(예: README_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909.txt). 이 파일에는 래핑 키(퍼블릭 키), 키 구성 요소를 암호화하는 데 사용할 래핑 알고리즘, 래핑 키(퍼블릭 키)와 가져오기 토큰이 만료되는 날짜와 시간에 대한 정보가 포함되어 있습니다.

  11. 프로세스를 계속하려면 키 구성 요소를 암호화를 참조하십시오.

퍼블릭 키 다운로드 및 토큰 가져오기(AWS KMS API)

AWS KMS API를 이용해 퍼블릭 키와 가져오기 토큰을 다운로드하려면 이러한 항목을 다운로드할 KMS 키를 지정하는 GetParametersForImport 요청을 보냅니다. 다음 예에서는 AWS CLI에서 이 작업을 수행하는 방법을 보여줍니다.

이 예제는 RSAES_OAEP_SHA_1을 암호화 옵션으로 지정합니다. 다른 옵션을 지정하려면 RSAES_OAEP_SHA_1RSAES_OAEP_SHA_256 또는 RSAES_PKCS1_V1_5로 바꿉니다. 1234abcd-12ab-34cd-56ef-1234567890ab을 퍼블릭 키를 다운로드하고 토큰을 가져올 KMS 키의 키 ID로 바꿉니다. KMS 키의 키 ID나 Amazon 리소스 이름(ARN)을 사용할 수 있지만, 이 작업에 대한 별칭을 사용할 수 없습니다.

참고

3단계에서 OpenSSL 개념 증명으로 키 구성 요소 암호화를 시도하려는 경우 RSAES_OAEP_SHA_1을 지정하십시오.

$ aws kms get-parameters-for-import --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --wrapping-algorithm RSAES_OAEP_SHA_1 \ --wrapping-key-spec RSA_2048

명령이 제대로 실행되면 다음과 비슷한 출력이 표시됩니다.

{ "ParametersValidTo": 1568290320.0, "PublicKey": "public key base64 encoded data", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "ImportToken": "import token base64 encoded data" }

이 출력을 받으면 base64 인코딩된 퍼블릭 키와 가져오기 토큰을 별개의 파일에 저장합니다. 그러면 base64가 각 파일을 이진 데이터로 디코딩하고 새 파일에 이진 데이터를 저장합니다. 그러면 이러한 항목을 이후 단계에 사용할 준비가 완료됩니다. 다음 예를 참조하세요.

이후 단계에 사용할 퍼블릭 키 및 가져오기 토큰을 준비하려면

  1. 퍼블릭 키의 base64 인코딩된 데이터(예제 출력에 퍼블릭 키 base64 인코딩된 데이터로 표시)를 복사하여 새 파일에 붙여넣은 후 파일을 저장합니다. PublicKey.b64처럼 파일을 설명하는 이름을 지정합니다.

  2. OpenSSL을 이용해 파일의 콘텐츠를 base64로 디코딩하고 디코딩된 데이터를 새 파일에 저장합니다. 다음 예제는 앞의 단계에서 저장한 파일(PublicKey.b64)의 데이터를 디코딩하고 출력을 PublicKey.bin이라는 새 파일에 저장합니다.

    $ openssl enc -d -base64 -A -in PublicKey.b64 -out PublicKey.bin

가져온 토큰에 대해 이 두 단계를 반복한 후 3단계: 키 구성 요소 암호화 단계로 넘어갑니다.