루트 키를 사용하여 데이터 암호화 다시 랩핑
IBM Cloud® Hyper Protect Crypto Services 키 관리 서비스 API를 사용하여 데이터 암호화 키를 다시 암호화하십시오.
Hyper Protect Crypto Services에서 루트 키를 순환시키는 경우 해당 루트 키와 연관된 데이터 암호화 키(DEK)를 보호하기 위해 새 암호화 키 자료를 사용할 수 있게 됩니다. 다시 랩핑 API를 사용하면 일반 텍스트 양식으로 키를 노출하지 않고 DEKS를 다시 암호화하거나 다시 랩핑할 수 있습니다.
엔벨로프 암호화를 통해 클라우드에서 저장 데이터의 보안을 제어하는 방법을 알아보려면 엔벨로프 암호화로 데이터 보호를 참조하십시오.
API를 사용하여 키 다시 랩핑
일반 텍스트 양식으로 DEK를 노출하지 않고 Hyper Protect Crypto Services에서 관리하는 루트 키를 사용하여 지정된 데이터 암호화 키 (DEK) 를 다시 암호화할 수 있습니다.
키 랩핑 해제는 서비스에 대한 unwrap 및 wrap 호출을 결합하여 작동됩니다. 예를 들어, 먼저 DEK에 액세스하도록 rewrap API를 호출한 후 최신 루트 키 자료를 사용하여 DEK를 다시 암호화하도록 unwrap API를 호출하여 wrap 오퍼레이션을 에뮬레이트할 수 있습니다.
서비스에서 루트 키를 순환한 후 다음 엔드포인트에 대한 POST 호출을 작성하여 루트 키와 연관된 데이터 암호화 키를 다시 랩핑하십시오.
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rewrap
-
초기 랩핑 요청을 수행하는 데 사용한 순환된 루트 키의 ID를 복사하십시오.
GET api/v2/keys요청을 작성하거나 UI에서 키를 보고 키의 ID를 검색할 수 있습니다. -
최신 랩핑 요청 중에 리턴된
ciphertext값을 복사하십시오. -
다음 cURL 명령을 실행하여 최신 루트 키 자료로 키를 다시 순환하십시오.
curl -X POST \ 'https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rewrap' \ -H 'accept: application/vnd.ibm.kms.key_action+json' \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' \ -H 'content-type: application/vnd.ibm.kms.key_action+json' \ -H "x-kms-key-ring: <key_ring_ID>" \ -H 'correlation-id: <correlation_ID>' \ -d '{ "ciphertext": "<encrypted_data_key>" }'다음 표에 따라 예제 요청의 변수를 대체하십시오.
표 1. Hyper Protect Crypto Services에서 키를 다시 랩핑하는 데 필요한 변수를 설명합니다. 가변 설명 region필수입니다. Hyper Protect Crypto Services 서비스 인스턴스가 상주하는 지리적 영역을 나타내는 지역 약어 (예: us-south또는eu-de) 입니다. 자세한 정보는 지역 서비스 엔드포인트를 참조하십시오.port필수입니다. API 엔드포인트의 포트 번호입니다. key_ID필수입니다. 초기 랩핑 요청에 사용한 루트 키의 고유 ID입니다. IAM_token필수입니다. 사용자의 IBM Cloud 액세스 토큰입니다. cURL 요청에 Bearer 값 등 IAM토큰의 전체 컨텐츠를 포함하십시오. 자세한 정보는 액세스 토큰 검색을 참조하십시오.instance_ID필수입니다. Hyper Protect Crypto Services 서비스 인스턴스에 지정된 고유 ID입니다. 자세한 정보는 인스턴스 ID 검색을 참조하십시오. key_ring_ID선택사항. 키가 속한 키 링의 고유 ID입니다. 지정되지 않은 경우 Hyper Protect Crypto Services은(는) 지정된 인스턴스와 연관된 모든 키 링에서 키를 검색합니다. 따라서 더욱 최적화된 요청을 위해 키 링 ID를 지정하는 것이 좋습니다. 참고:
x-kms-key-ring헤더 없이 작성된 키의 키 링 ID는 default입니다. 자세한 정보는 키 링 관리를 참조하십시오.correlation_ID트랜잭션을 추적하고 상관시키는 데 사용되는 고유 ID입니다. encrypted_data_key필수입니다. 원래 랩 조작으로 리턴된 ciphertext값입니다.새로 랩핑된 데이터 암호화 키, 제공된 암호화 텍스트와 연관된 원래의 키 버전(
keyVersion) 및 새 암호화 텍스트와 연관된 최신 키 버전(rewrappedKeyVersion)은 응답 엔티티 본문에 리턴됩니다. 다음 JSON 오브젝트는 예제 리턴값을 표시합니다.{ "ciphertext": "eyJjaX ... h0Ijoi ... c1ZCJ9", "keyVersion": { "id": "02fd6835-6001-4482-a892-13bd2085f75d" }, "rewrappedKeyVersion": { "id": "12e8c9c2-a162-472d-b7d6-8b9a86b815a6" } }데이터가 최신 루트 키로 보호되도록 추후 엔벨로프 암호화 오퍼레이션에 대한 새
ciphertext값을 저장하고 사용하십시오.