루트 키 가져오기
기존 루트 키를 가져와 보호하고 관리하는 데 IBM® Key Protect for IBM Cloud®을(를) 사용할 수 있습니다.
루트 키는 클라우드에서 암호화된 데이터의 보안을 보호하는 데 사용되는 대칭 키-랩핑 키입니다. Key Protect로 루트 키를 가져오는 데 대한 자세한 정보는 클라우드로 암호화 키 가져오기를 참조하십시오.
키 자료 작성 및 암호화를 위한 옵션을 검토하여 키 가져오기를 계획하십시오. 보안을 추가하려면 클라우드로 키 자료를 가져오기 전에 이 키 자료를 암호화하도록 가져오기 토큰을 사용하여 키 자료의 보안 가져오기를 사용하도록 설정할 수 있습니다.
콘솔을 사용하여 루트 키 가져오기
서비스 인스턴스를 작성한 후 IBM Cloud 콘솔을 사용하여 키를 가져오려면 다음 단계를 완료하십시오.
Key Protect 인스턴스에 대한 이중 권한 부여 설정을 사용으로 설정하는 경우 서비스에 추가한 키를 삭제하려면 두 사용자의 권한이 필요함에 유의하십시오.
-
메뉴 > 리소스 목록으로 이동하여 리소스 목록을 보십시오.
-
IBM Cloud 리소스 목록에서 Key Protect의 프로비저닝된 인스턴스를 선택하십시오.
-
키를 가져오려면 추가를 클릭하고 고유 키 가져오기 창을 선택하십시오.
키의 세부사항을 지정하십시오.
설정 | 설명 |
---|---|
키 유형 | Key Protect에서 관리할 키의 유형입니다. 루트 키 단추를 선택하십시오. |
이름 | 키를 쉽게 식별하기 위한 사용자가 읽을 수 있는 별명입니다. 길이는 2 - 90자(포함)여야 합니다. 개인정보를 보호하려면 키 이름에 사용자 이름 또는 위치와 같은 PII(Personally Identifiable Information)가 포함되지 않았는지 확인하십시오. 키 이름은 고유하지 않아도 됩니다. |
키 자료 | 서비스에 저장하고 관리할 base64로 인코딩된 키 자료입니다(예: 기존 키-랩핑 키). 자세한 정보는 키 자료를 base64로 인코딩을 확인하십시오. 키 자료의 길이가 16, 24 또는 32바이트인지 확인하고 길이가 128, 192 또는 256비트에 해당하는지 확인하십시오. 또한 키는 base64로 인코딩되어야 합니다. |
키 설명 | 선택사항. 설명은 별명 또는 해당 이름을 사용하여 수행할 수 없는 방식으로 키에 대한 정보 (예: 해당 목적을 설명하는 구문) 를 추가하는 유용한 방법입니다. 이 설명은 2자 이상 240자이하여야 하며 나중에 변경할 수 없습니다. 개인 정보를 보호하려면 이름이나 위치와 같은 개인 데이터를 키에 대한 설명으로 사용하지 마십시오. |
키 별명 | 선택사항. 키 별명은 표시 이름의 한계를 초과하여 식별하고 그룹화하는 데 사용할 수 있는 키를 설명하는 방법입니다. 키의 별명은 최대 5개일 수 있습니다. |
키 링 | 선택사항. 키 링은 필요한 대로 해당 그룹화를 개별적으로 관리하는 데 사용할 수 있는 키 그룹입니다. 모든 키는 키 링의 일부여야 합니다. 키 링이 선택되지 않으면 키가 default 키 링에 배치됩니다. 키 링에 작성 중인 키를 배치하려면 해당 키 링에
대한 관리자 역할이 있어야 합니다. 역할에 대한 자세한 정보는 사용자 액세스 관리를 확인하십시오. |
키의 세부사항 채우기를 완료한 후 확인하려면 키 가져오기를 클릭하십시오.
키를 배치하려는 키 링을 알고 있고 해당 키 링의 _관리자_인 경우 키 링 패널로 이동하여 ⋯을 선택하고 키 링에 키 추가를 클릭하십시오. 그러면 키 링 변수가 키 링 이름으로 채워진 키 페이지에서 추가를 클릭하면 표시되는 패널과 같은 패널이 열립니다.
API를 사용하여 루트 키 가져오기
다음 엔드포인트에 대한 POST
호출을 작성하여 대칭 키를 Key Protect로 가져오십시오.
https://<region>.kms.cloud.ibm.com/api/v2/keys
-
다음
curl
명령을 사용하여 Key Protect API 를 호출하십시오.$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/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_name>", "aliases": [alias_list], "description": "<key_description>", "expirationDate": "<expiration_date>", "payload": "<key_material>", "extractable": <key_type> } ] }'
다음 표에 따라 예제 요청의 변수를 대체하십시오.
가변 | 설명 |
---|---|
지역 | 필수. 지역 약어(예: us-south 또는 eu-gb )로, Key Protect 인스턴스가 있는 지리적 영역을 나타냅니다For more information, see 지역 서비스 엔드포인트. |
IAM_token | 필수. 사용자의 IBM Cloud 액세스 토큰입니다. curl 요청에 Bearer 값을 포함하여 IAM 토큰의 전체 컨텐츠를 포함하십시오. For more information, see 액세스 토큰 검색하기. |
instance_ID | 필수. Key Protect 서비스 인스턴스에 지정된 고유 ID입니다. For more information, see 인스턴스 ID 검색하기. |
correlation_ID | 트랜잭션을 추적하고 상관시키는 데 사용되는 고유 ID입니다. |
return_preference | POST와 DELETE 오퍼레이션에 대한 서버 동작을 변경하는 헤더입니다. return_preference 변수를 return=minimal로 설정하면 서비스는 응답 엔티티-본문에 키 이름 및 ID 값과 같은 키 메타데이터만 리턴합니다. 변수를 return=representation으로 설정하면 서비스가 키 자료와 키 메타데이터를 모두 리턴합니다. |
key_name | 필수. 키를 쉽게 식별할 수 있도록 해 주는 사용자가 읽을 수 있는 고유 이름입니다. 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오. |
alias_list | 선택사항. 키에 지정되었으며 사용자가 읽을 수 있는 하나 이상의 고유한 별명입니다. 중요사항: 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오. Each alias must be alphanumeric, case sensitive, and cannot contain spaces or special characters other than - or _. The alias cannot be a UUID and must not be a Key Protect reserved name: allowed_ip, key, keys, metadata, policy, policies. registration, registrations, ring, rings, rotate, wrap, unwrap, rewrap, version, versions. |
key_description | 선택사항. 키에 대한 자세한 설명입니다. 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오. |
expiration_date | 선택사항. 시스템에서 키가 만료되는 날짜 및 시간으로, RFC 3339 형식입니다(YYYY-MM-DD HH:MM:SS.SS , 예: 2019-10-12T07:20:50.52Z ). 키의 만기 날짜 후 1시간 이내에 키가 비활성화됨 상태로 전이됩니다. expirationDate 속성이 생략되면 키가 만료되지 않습니다. |
key_material | 필수. 서비스에 저장하고 관리하려는 기존 키-랩핑 키인 base64로 인코딩된 키 자료입니다. 자세한 내용은 키 자료의Base64 인코딩을 키 자료가 다음 요구사항을 충족하는지 확인하십시오. 표준 키의 크기는 최대 7,500바이트입니다. 키는 base64로 인코딩되어야 합니다. |
key_type | 키 자료 서비스를 중단할지 여부를 판별하는 부울 값입니다. When you set the extractable attribute to false , the service designates the key as a root key that you can use for wrap or unwrap operations. |
개인 데이터의 기밀성을 보호하려면 서비스에 키를 추가할 때 사용자 이름 또는 위치와 같은 PII(Personally Identifiable Information)를 입력하지 않도록 하십시오.
성공한 POST api/v2/keys
응답은 기타 메타데이터와 함께 키의 ID 값을 리턴합니다. ID는 키에 지정되어 있으며 Key Protect API에 대한 후속 호출에 사용되는 고유 ID입니다.
선택사항: Key Protect 인스턴스에서 키를 찾아보기 위해 다음 호출을 실행하여 키가 추가되었는지 확인하십시오.
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys" \
-H "accept: application/vnd.ibm.collection+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
키 자료를 base64로 인코딩
기존 루트 키를 가져오는 경우 서비스에 저장하고 관리할 암호화된 키 자료를 포함해야 합니다.
OpenSSL을 사용하여 기존 키 자료 암호화
이 프로세스를 사용하여 파일에 있는 키 자료의 컨텐츠를 암호화할 수 있습니다.
-
OpenSSL을 다운로드하여 설치하십시오.
-
다음 명령을 실행하여 키 자료 문자열을 base64로 인코딩하십시오.
openssl base64 -in <infile> -out <outfile>
다음 표에 따라 예제 요청의 변수를 대체하십시오.
가변 | 설명 |
---|---|
infile | 키 자료 문자열이 상주하는 파일의 이름입니다. 키 길이는 16, 24 또는 32바이트여야 하며, 128, 192 또는 256비트에 해당합니다. 키는 base64로 인코딩되어야 합니다. |
outfile | 명령이 실행되면 base64로 인코딩된 키 자료가 작성될 파일의 이름입니다. |
파일이 아닌 명령행에서 직접 base64 자료를 출력하려면 openssl enc -base64 <<< '<key_material_string>'
을(를) 실행하십시오. 여기서 key_material_string은 가져온 키에 대한 키 자료 입력입니다.
OpenSSL을 사용하여 새 키 자료 작성 및 인코딩
특정 바이트 길이의 무작위 base64 인코딩 키 자료를 작성하려면 이 프로세스를 사용하십시오. 32바이트(256비트)가 권장됩니다.
-
OpenSSL을 다운로드하여 설치하십시오.
-
다음 명령을 실행하여 키 자료 문자열을 base64로 인코딩하십시오.
openssl rand -base64 <byte_length>
다음 표에 따라 예제 요청의 변수를 대체하십시오.
가변 | 설명 |
---|---|
byte_length | 키의 길이(바이트)입니다. 허용 가능한 바이트 길이는 16, 24 또는 32바이트이며, 128, 192 또는 256비트에 해당합니다. 키는 base64로 인코딩되어야 합니다. |
키 자료 작성 예제
-
openssl rand -base64 16
은 128비트 키 자료를 생성합니다. -
openssl rand -base64 24
는 192비트 키 자료를 생성합니다. -
openssl rand -base64 32
는 256비트 키 자료를 생성합니다.
다음에 수행할 작업
-
엔벨로프 암호화로 키를 보호하는 데 대해 자세히 알아보려면 키 랩핑을 확인하십시오.
-
프로그래밍 방식으로 키를 관리하는 방법에 대해 자세히 알아보려면 Key Protect 확인하세요 API 참조 문서를 참조하세요.