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

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

키 구성 요소 없이 대칭 암호화 AWS KMS key을 생성한 후 해당 KMS 키에 대해 퍼블릭 키를 다운로드하고 토큰을 가져옵니다. AWS KMS 콘솔 또는 GetParametersForImport API를 사용해 한 번에 두 항목을 모두 다운로드할 수 있습니다. 퍼블릭 키와 가져오기 토큰은 24시간 동안 유효합니다. 다운로드한 후 24시간 내에 이를 이용해 키 구성 요소를 가져오지 않을 경우, 새로 다운로드해야 합니다.

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

퍼블릭 키의 사용

다운로드에는 래핑 키라고도 하는 퍼블릭 키가 포함되어 있습니다.

키 구성 요소를 가져오기 전에 퍼블릭 키로 키 구성 요소를 암호화한 후, 암호화된 키 구성 요소를 AWS KMS에 업로드합니다. AWS KMS가 암호화한 키 구성 요소를 받으면 해당하는 프라이빗 키를 이용해 해독합니다. AWS KMS에서 제공하는 퍼블릭 키는 2048비트 RSA 퍼블릭 키로 AWS 계정에 고유합니다.

가져오기 토큰 사용

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

래핑 알고리즘 선택

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

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

참고

3단계OpenSSL로 키 구성 요소 암호화 개념 증명 예시를 실행하려면 RSAES_OAEP_SHA_1을(를)사용하십시오.

  • 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 암호화 알고리즘입니다.

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

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

  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라는 파일의 2048비트 RSA 퍼블릭 키(예: wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909).

    • 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)

GetParametersForImport API를 이용해 퍼블릭 키와 가져오기 토큰을 다운로드할 수 있습니다. 가져온 키 구성 요소와 연결될 KMS 키를 지정합니다. 이 KMS 키에는 EXTERNAL오리진 값이 있어야 합니다.

이 예에서는 RSAES_OAEP_SHA_1의 래핑 알고리즘 값을 지정합니다. 다른 옵션을 지정하려면 RSAES_OAEP_SHA_1RSAES_OAEP_SHA_256 또는 RSAES_PKCS1_V1_5로 바꿉니다. 1234abcd-12ab-34cd-56ef-1234567890ab을 퍼블릭 키를 다운로드하고 토큰을 가져올 KMS 키의 키 ID로 바꿉니다. 이 작업에 키 ID키 ARN을 사용할 수 있지만 별칭 이름이나 별칭 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)", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "ImportToken": "import token (base64 encoded)" }

다음 단계를 위한 데이터를 준비하려면 퍼블릭 키와 가져오기 토큰을 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. base64로 인코딩된 가져오기 토큰(예제 출력에 가져오기 토큰(base64로 인코딩됨)로 표시됨)을 복사하여 새 파일에 붙여넣은 후 파일을 저장합니다. ImportToken.b64처럼 파일을 설명하는 이름을 지정합니다.

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

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

3단계: 키 구성 요소 암호화 항목으로 이동합니다.