루트 키 가져오기
UI를 사용하거나 Hyper Protect Crypto Services 키 관리 서비스 API를 사용하여 프로그래밍 방식으로 기존 루트 키를 보호하기 위해 IBM Cloud® Hyper Protect Crypto Services 를 사용할 수 있습니다.
루트 키는 클라우드에서 암호화된 데이터의 보안을 보호하는 데 사용되는 대칭 키-랩핑 키입니다. 루트 키 가져오기에 대한 자세한 정보는 클라우드로 암호화 키 가져오기를 참조하십시오.
키 자료 작성 및 암호화를 위한 옵션을 검토하여 키 가져오기를 계획하십시오. 보안을 추가하려면 클라우드로 키 자료를 가져오기 전에 이 키 자료를 암호화도록 가져오기 토큰을 사용하여 키 자료의 보안 가져오기를 사용으로 설정할 수 있습니다.
UI를 사용하여 루트 키 가져오기
서비스의 인스턴스를 작성한 후 다음 단계를 완료하여 Hyper Protect Crypto Services GUI로 기존 루트 키를 추가하십시오.
-
메뉴 > 리소스 목록으로 이동하여 리소스 목록을 보십시오.
-
IBM Cloud 리소스 목록에서 Hyper Protect Crypto Services의 프로비저닝된 인스턴스를 선택하십시오.
-
키를 가져오려면 사이드 메뉴에서 KMS 키 탭을 선택하십시오.
-
키 테이블에서 키 추가를 클릭한 후 키 가져오기를 선택하십시오.
키의 세부사항을 지정하십시오.
표 1. 루트 키 가져오기에 대한 설정을 설명합니다. 설정 설명 키 유형 Hyper Protect Crypto Services에서 관리할 키의 유형입니다. 키 유형 목록에서 **루트 키**를 선택하십시오. 키 이름 키를 쉽게 식별할 수 있도록 해 주는 사용자가 읽을 수 있는 고유 별명입니다. 개인정보를 보호하려면 키 이름에 사용자 이름 또는 위치와 같은 PII(Personally Identifiable Information)가 포함되지 않았는지 확인하십시오. 키 별명 (선택 사항) 쉽게 인식할 수 있도록 키에 할당하려는 하나 이상의 사람이 읽을 수 있는 고유한 별명입니다. 별명 크기는 2 - 90자가 될 수 있습니다. 키에 대해 각각 쉼표로 구분하여 최대 다섯 개의 키 별명을 설정할 수 있습니다. 참고: 각 별명은 대소문자를 구분하는 영숫자여야 하며 대시 (-) 또는 밑줄 (_) 이외의 공백이나 특수 문자를 포함할 수 없습니다. 별명은 버전 4 UUID일 수 없으며 Hyper Protect Crypto Services 예약 이름
allowed_ip,key,keys,metadata,policy,policies,registration,registrations,ring,rings,rotate,wrap,unwrap,rewrap,version,versions이 아니어야 합니다.키 링 ID 기존 키 링이 포함된 목록에서 키 링을 선택하십시오. 키 링을 지정하지 않으면 키가 default키 링에 추가됩니다. 키 링에 대한 자세한 정보는 키 링 관리를 참조하십시오.키 자료 서비스에 저장하고 관리할 base64로 인코딩된 키 자료입니다(예: 기존 키-랩핑 키). 자세한 정보는 키 자료를 Base64로 인코딩을 참조하십시오. 키 자료가 다음 요구사항을 충족하는지 확인하십시오.
- 키는 128, 192또는 256비트에 해당하는 16, 24또는 32바이트길이여야 합니다.
- 키는 base64로 인코딩되어야 합니다.
만기 날짜 (선택사항) 키가 만료되는 날짜 및 시간을 설정하십시오. 만기 날짜 이후에는 키가 비활성화 상태로 이동합니다. 키 상태에 대한 자세한 정보는 암호화 키의 라이프사이클 모니터링을 참조하십시오. 설명 (선택사항) 키에 대한 자세한 설명을 추가하십시오. 길이는 2-240자여야 합니다. -
키의 세부사항 채우기를 완료한 후 키 가져오기를 클릭하여 확인하십시오.
API를 사용하여 루트 키 가져오기
다음 엔드포인트에 대한 POST 호출을 작성하여 대칭 키를 Hyper Protect Crypto Services에 가져오십시오.
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys
-
다음 cURL 명령을 사용하여 Hyper Protect Crypto Services 키 관리 서비스 API 를 호출하십시오.
curl -X POST \ https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' \ -H 'content-type: application/vnd.ibm.kms.key+json' \ -d '{ "metadata": { "collectionType": "application/vnd.ibm.kms.key+json", "collectionTotal": 1 }, "resources": [ { "type": "application/vnd.ibm.kms.key+json", "name": "<key_alias>", "description": "<key_description>", "expirationDate": "<YYYY-MM-DDTHH:MM:SS.SSZ>", "payload": "<key_material>", "extractable": <key_type> } ] }'다음 표에 따라 예제 요청의 변수를 대체하십시오.
표 2. API를 사용하여 루트 키를 추가하는 데 필요한 변수를 설명합니다. 가변 설명 region필수입니다. Hyper Protect Crypto Services 인스턴스가 있는 지리적 영역을 나타내는 지역 약어 (예: us-south또는au-syd) 입니다. 자세한 정보는 지역 서비스 엔드포인트를 참조하십시오.port필수입니다. API 엔드포인트의 포트 번호입니다. IAM_token필수입니다. 사용자의 IBM Cloud 액세스 토큰입니다. cURL 요청에 Bearer 값 등 IAM토큰의 전체 컨텐츠를 포함하십시오. 자세한 정보는 액세스 토큰 검색을 참조하십시오.instance_ID필수입니다. Hyper Protect Crypto Services 인스턴스에 지정된 고유 ID입니다. 자세한 정보는 인스턴스 ID 검색을 참조하십시오. correlation_ID트랜잭션을 추적하고 상관시키는 데 사용되는 고유 ID입니다. key_alias필수입니다. 키를 쉽게 식별할 수 있도록 해 주는 사용자가 읽을 수 있는 고유 이름입니다. 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오. key_description키에 대한 자세한 설명입니다. 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오. YYYY-MM-DDHH:MM:SS.SS시스템에서 키가 만료되는 날짜 및 시간입니다(RFC 3339 형식). expirationDate속성이 생략되면 키가 만료되지 않습니다.key_material서비스에 저장하고 관리할 base64로 인코딩된 키 자료입니다(예: 기존 키-랩핑 키). 자세한 정보는 키 자료를 Base64로 인코딩을 참조하십시오. 키 자료가 다음 요구사항을 충족하는지 확인하십시오.
- 키는 128, 192또는 256비트에 해당하는 16, 24또는 32바이트길이여야 합니다.
- 키는 base64로 인코딩되어야 합니다.
key_type키 자료 서비스를 중단할지 여부를 판별하는 부울 값입니다. extractable속성을false로 설정하면 서비스가 키를wrap또는unwrap조작에 사용할 수 있는 루트 키로 지정합니다.개인 데이터의 기밀성을 보호하려면 서비스에 키를 추가할 때 사용자 이름 또는 위치와 같은 PII(Personally Identifiable Information)를 입력하지 않도록 하십시오. PII의 추가 예제는 NIST Special Publication 800-122의 2.2 절을 참조하십시오.
성공한
POST api/v2/keys응답은 기타 메타데이터와 함께 키의 ID 값을 리턴합니다. 이 ID는 키에 지정된 고유 ID이며 Hyper Protect Crypto Services 키 관리 서비스 API에 대한 후속 호출 시 사용됩니다. -
선택사항: Hyper Protect Crypto Services 서비스 인스턴스에서 키를 찾아보는 다음 호출을 실행하여 키가 추가되었는지 확인하십시오.
curl -X GET \ https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys \ -H 'accept: application/vnd.ibm.collection+json' \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>'
CLI를 사용하여 루트 키 가져오기
Hyper Protect Crypto Services에 통합된 Key Protect CLI를 사용하여 루트 키를 가져오려면 다음 단계를 완료하십시오.
-
Key Protect CLI를 설정하십시오.
-
다음 명령을 사용하여 루트 키를 가져오십시오.
ibmcloud kp key createKey Protect CLI 참조에서 이 명령에 대한 추가 매개변수를 찾을 수 있습니다.
키 자료를 base64로 인코딩
기존 루트 키를 가져오는 경우 서비스에 저장하고 관리할 암호화된 키 자료를 포함해야 합니다.
OpenSSL을 사용하여 기존 키 자료 인코딩
-
OpenSSL을 다운로드하여 설치하십시오.
-
다음 명령을 실행하여 키 자료를 base64로 인코딩하십시오.
$ openssl base64 -in <infile> -out <outfile>다음 표에 따라 예제 요청의 변수를 대체하십시오.
표 3. 키 자료를 base64 인코드하는 데 필요한 변수를 설명합니다. 가변 설명 infile키 자료 문자열이 있는 파일의 이름입니다. 키가 128, 192 또는 256비트에 해당하는 16, 24 또는 32바이트인지 확인하십시오. outfile명령 실행 시 base64 인코딩 키 자료가 작성되는 파일의 이름입니다. 파일이 아닌 명령행에서 base64 자료를 출력하려면
openssl enc -base6<<< '<key_material_string>'명령을 실행하십시오. 여기서 key_material al_string은 가져온 키에 대한 키 자료 입력입니다.
OpenSSL을 사용하여 새 키 자료 작성 및 인코딩
-
OpenSSL을 다운로드하여 설치하십시오.
-
다음 명령을 실행하여 키 자료를 base64로 인코딩하십시오.
$ openssl rand <byte_length> -base64예제 요청의
byte_length변수를 바이트 단위로 측정되는 키의 길이로 대체하십시오. 허용 가능한 바이트 길이는 128, 192 또는 256비트에 해당하는 16, 24 또는 32바이트입니다.
다음에 수행할 작업
- 엔벨로프 암호화로 키를 보호하는 데 대해 자세히 알아보려면 키 랩핑을 확인하십시오.
- 키 작성에 대한 지시사항을 찾으려면 루트 키 작성 또는 표준 키 작성을 확인하십시오.
- 프로그래밍 방식으로 키를 관리하는 방법에 대해 자세히 알아보려면 Hyper Protect Crypto Services 키 관리 서비스 API 참조 문서를 확인하십시오.
- Key Protect CLI 사용에 대해 자세히 알아보려면 Key Protect CLI 참조 문서를 확인하십시오.