키 구성 요소 가져오기 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 콘솔을 이용해 퍼블릭 키와 가져오기 토큰을 다운로드할 수 있습니다.
-
방금 키 구성 요소 없이 KMS 키를 생성하기 위한 절차를 마쳤고 현재 Download wrapping key and import token(래핑 키 및 가져오기 키 다운로드) 페이지에 있다면 단계 8으로 넘어갑니다.
-
AWS Management Console에 로그인하고 https://console.aws.amazon.com/kms
에서 AWS Key Management Service(AWS KMS) 콘솔을 엽니다. -
AWS 리전을 변경하려면 페이지의 오른쪽 상단 모서리에 있는 리전 선택기를 사용합니다.
-
탐색 창에서 고객 관리형 키(Customer managed keys)를 선택합니다.
작은 정보 키 구성 요소는 오리진(Origin)이 외부(EXTERNAL)인 대칭 암호화 KMS 키로만 가져올 수 있습니다. 이는 키 구성 요소 없이 KMS 키가 생성되었음을 나타냅니다. 테이블에 Origin(오리진) 열을 추가하려면 페이지의 오른쪽 상단 모서리에서 설정 아이콘(
)을 선택합니다. Origin(오리진)을 활성화한 다음, 확인을 선택합니다.
-
가져오기가 보류 중인 KMS 키의 별칭 또는 키 ID를 선택합니다.
-
암호화 구성(Cryptographic configuration) 탭을 선택하고 해당 값을 봅니다. 일반 구성 섹션 아래에 탭이 있습니다.
키 유형이 대칭(Symmetric)이고 오리진(Origin)이 외부(EXTERNAL)인 KMS 키에만 키 구성 요소를 가져올 수 있습니다. 키 구성 요소를 가져와서 KMS 키를 생성하는 방법은 AWS KMS 키에서 키 구성 요소 가져오기 섹션을 참조하십시오.
-
키 구성 요소(Key material) 탭을 선택하고 래핑 키 및 가져오기 토큰 다운로드(Download wrapping key and import token)를 선택합니다.
키 구성 요소(Key material) 탭은 오리진(Origin) 값이 외부(EXTERNAL)인 대칭 암호화 KMS 키에 대해서만 표시됩니다.
-
[Select wrapping algorithm]에서 키 구성 요소 암호화에 사용할 옵션을 선택합니다. 옵션에 대한 자세한 내용은 래핑 알고리즘 선택을 참조하십시오.
3단계에서 OpenSSL 개념 증명으로 키 구성 요소 암호화를 시도하려는 경우 RSAES_OAEP_SHA_1을 선택합니다.
-
[Download wrapping key and import token]을 선택한 후 파일을 저장합니다.
다음 옵션이 있는 경우 지금 프로세스를 계속하려면 다음을 선택합니다. 나중에 계속하려면 취소를 선택합니다. 그렇지 않고 창을 닫으려면 취소를 선택하거나 X를 클릭합니다.
-
앞 단계에 저장한
.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
). 이 파일에는 퍼블릭 키, 키 구성 요소를 암호화하는 데 사용할 래핑 알고리즘, 래핑 키(퍼블릭 키)와 가져오기 토큰이 만료되는 날짜와 시간에 대한 정보가 포함되어 있습니다.
-
-
프로세스를 계속하려면 키 구성 요소를 암호화를 참조하십시오.
퍼블릭 키 다운로드 및 토큰 가져오기(AWS KMS API)
GetParametersForImport API를 이용해 퍼블릭 키와 가져오기 토큰을 다운로드할 수 있습니다. 가져온 키 구성 요소와 연결될 KMS 키를 지정합니다. 이 KMS 키에는 EXTERNAL
의 오리진 값이 있어야 합니다.
이 예에서는 RSAES_OAEP_SHA_1
의 래핑 알고리즘 값을 지정합니다. 다른 옵션을 지정하려면 RSAES_OAEP_SHA_1
을 RSAES_OAEP_SHA_256
또는 RSAES_PKCS1_V1_5
로 바꿉니다.
을 퍼블릭 키를 다운로드하고 토큰을 가져올 KMS 키의 키 ID로 바꿉니다. 이 작업에 키 ID나 키 ARN을 사용할 수 있지만 별칭 이름이나 별칭 ARN은 사용할 수 없습니다.1234abcd-12ab-34cd-56ef-1234567890ab
3단계의 OpenSSL로 키 구성 요소 암호화 개념 증명 예시를 사용하려는 경우 RSAES_OAEP_SHA_1을 지정하십시오.
$
aws kms get-parameters-for-import \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --wrapping-algorithmRSAES_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로 디코딩하려면
-
base64로 인코딩된 퍼블릭 키(예제 출력에
퍼블릭 키(base64로 인코딩됨)
로 표시됨)를 복사하여 새 파일에 붙여넣은 후 파일을 저장합니다.PublicKey.b64
와 같은 파일을 설명하는 이름을 지정합니다. -
OpenSSL
을 이용해 파일의 콘텐츠를 base64로 디코딩하고 디코딩된 데이터를 새 파일에 저장합니다. 다음 예제는 앞의 단계에서 저장한 파일( PublicKey.b64
)의 데이터를 디코딩하고 출력을PublicKey.bin
이라는 새 파일에 저장합니다.$
openssl enc -d -base64 -A -in PublicKey.b64 -out PublicKey.bin
-
base64로 인코딩된 가져오기 토큰(예제 출력에
가져오기 토큰(base64로 인코딩됨)
로 표시됨)을 복사하여 새 파일에 붙여넣은 후 파일을 저장합니다.ImportToken.b64
처럼 파일을 설명하는 이름을 지정합니다. -
OpenSSL
을 이용해 파일의 콘텐츠를 base64로 디코딩하고 디코딩된 데이터를 새 파일에 저장합니다. 다음 예제는 앞의 단계에서 저장한 파일( ImportToken.b64
)의 데이터를 디코딩하고 출력을ImportToken.bin
이라는 새 파일에 저장합니다.$
openssl enc -d -base64 -A -in ImportToken.b64 -out ImportToken.bin
3단계: 키 구성 요소 암호화 항목으로 이동합니다.