키 관리 상호 운용성 프로토콜(KMIP) 사용
IBM® Key Protect for IBM Cloud® 키 관리 상호운용성 프로토콜(KMIP)을 기본적으로 지원하므로, Key Protect 콘솔을 통해 KMIP 어댑터를 생성하고 인증서를 직접 업로드할 수 있습니다.
이 솔루션은 VMware® 인스턴스를 보호하기 위한 Key Protect 의 네이티브 KMIP 지원 아키텍처를 설명합니다. Key Protect 의 네이티브 KMIP 지원은 VMware 의 네이티브 vSphere 암호화 및 vSAN™ 암호화와 연동되어, IBM Cloud® Key Protect 의 고객 관리 키가 제공하는 보안성과 유연성을 바탕으로 간소화된 스토리지 암호화 관리 기능을 제공합니다.
이 솔루션은 IBM Cloud 에서 제공되는 ‘ VMware ’용 KMIP의 대체 솔루션입니다. 이 문서에서는 이러한 기반 솔루션의 구성에 대해서는 다루지 않습니다. 파운데이션 솔루션 아키텍처에 대한 자세한 내용은 ‘ VMware Solutions 개요’를 참조하십시오.
이 기능은 현재 제공되는 ‘ VMware ’용 KMIP 솔루션과 병행하여 작동합니다. VMware 솔루션으로 생성된 어댑터를 Key Protect 로 가져올 수 없으며, 그 반대의 경우도 마찬가지입니다.
이점
Key Protect KMIP에 대한 기본 지원은 다음과 같은 이점을 제공합니다:
- VMware 인증
- Key Protect 의 KMIP 지원 기능은 VMware 에서 인증을 받았으며, KMIP KMS 서버를 통해 암호화를 지원하는 모든 서비스나 플랫폼과 직접 연동할 수 있습니다. Key Protect 에서 KMIP 지원을 통합 및 관리하므로, 타사 KMIP 서버 지원이 필요하지 않습니다.
- 하이퍼바이저 수준 암호화
- VMware vSAN 암호화 및 vSphere 암호화와의 연동을 통해 스토리지 또는 가상 머신 계층이 아닌 하이퍼바이저 계층에서 암호화가 제공됩니다. 이 접근 방식은 관리를 간소화하고 스토리지 솔루션 및 애플리케이션에 대한 투명성을 제공합니다.
- 완전 관리형 서비스
- 키 관리 서버는 완전 관리형 서비스이며, 여러 IBM Cloud 멀티존 리전(MZR)에서 이용할 수 있습니다.
- 고객이 직접 관리하는 키
- 사용자는 암호화 키에 대한 완전한 통제권을 가지며, 언제든지 해당 키를 취소할 수 있습니다.
- 높은 비용 대비 효과
- KMIP 대칭 키는 단일 키 버전으로 요금이 부과되므로, 실제로 사용한 만큼만 비용을 지불하면 됩니다.
어댑터 만들기
단일 인스턴스에서 최대 200개의 어댑터를 만들 수 있습니다. 각 어댑터에는 최대 200개의 인증서를 연결할 수 있습니다.
KMIP 어댑터는 Key Protect 루트 키를 사용하여 만들어집니다. 루트 키가 없는 경우, 생성 하세요.
시작하기 전에, 해당 인스턴스에서 ‘ Manager ’ 역할 또는 ‘ KmipAdapterManager ’ 역할을 보유하고 있는지 확인하십시오.
어댑터를 만들려면 다음과 같이 하세요:
-
탐색 메뉴에서 ‘KMIP 어댑터’를 클릭합니다. 이 어댑터를 처음 사용하는 경우, 표는 비어 있습니다.
-
작성을 클릭하십시오.
-
측면 패널에 다음 정보를 기재하십시오:
- 이름- 어댑터의 이름을 입력하세요(2~40자).
- 설명 (선택 사항)- 어댑터에 대한 설명을 입력하세요(2~240자).
- 근본 키- 이 어댑터에 사용할 근본 키를 선택합니다. 루트 키는 어댑터가 생성하는 KMIP 키를 암호화합니다. 어댑터가 정상적으로 작동하려면 루트 키가 ‘
active’ 상태여야 합니다.
-
선택 사항: 해당 개인 인증서 소유자가 KMIP 어댑터를 통해 Key Protect 과 통신할 수 있도록 공개 인증서( TLS )를 추가합니다. 승인된 인증서만이 해당 인스턴스에 대해 KMIP 프로토콜 요청을 보낼 수 있습니다.
인증서를 추가하려면:
- 추가 를 클릭하십시오.
- 인증서 이름을 입력하십시오.
- 인증서 내용을 PEM 형식으로 입력하십시오. 이때
BEGIN CERTIFICATE및END CERTIFICATE태그도 포함해야 합니다. - '인증서 추가'를 클릭합니다.
인증서 연결에는 몇 분 정도 걸릴 수 있습니다. Key Protect 리전 내에서는 하나의 인증서를 하나의 어댑터에만 연결할 수 있습니다.
KMIP 프로토콜을 통해 관리되는 리소스는 HTTP API를 통해 액세스할 수 없습니다.
업로드한 모든 인증서의 개인 키를 안전하게 보관하십시오. KMIP 어댑터에 업로드된 모든 인증서는 지원되는 모든 KMIP 작업을 수행할 수 있습니다.
어댑터와 통신하도록 KMIP 클라이언트 구성하기
어댑터와 통신하려면, VMware 을 설정하거나, TCP 을 통해 mTLS 과 통신할 수 있으며 KMIP 사양에 설명된 대로 TTLV 메시지 형식을 사용하여 메시지를 전송할 수 있는 KMIP 클라이언트를 생성해야 합니다.
VMware vSphere 의 경우, ‘ vSphere 클라이언트를 사용하여 표준 키 공급자 추가’에 설명된 단계를 따르십시오. 표준 키 공급자를 추가할 때는 인스턴스가 속한 리전에 해당하는
Key Protect 엔드포인트를 사용하십시오. 예를 들어, us-south 리전에 있는 Key Protect 인스턴스의 경우, 주소로 us-south.kms.cloud.ibm.com 을, 포트로 5696 을 사용합니다.
vSphere 클라이언트는 KMIP 어댑터와 통신하기 위해 자신의 클라이언트 인증서를 어댑터에 업로드해야 합니다. “인증서 옵션을 사용하여 표준 키 공급자에 대한 신뢰할 수 있는 연결 설정”의 단계에 따라 클라이언트 인증서를 다운로드한 다음, 이를 어댑터에 업로드하십시오.
KMIP에 대한 액세스 권한 부여
역할 및 권한을 검토하여 IBM Cloud IAM 역할이 Key Protect 조치에 맵핑되는 방법을 알아보십시오.
다음 IAM 작업은 KMIP 리소스에 대한 액세스를 관리하는 데 사용되는 리소스를 관리합니다:
kms.kmip-management.createkms.kmip-management.listkms.kmip-management.readkms.kmip-management.delete
각 작업은 세분화 없이 인스턴스의 모든 kmip_adapter certificate 및 kmip_object 리소스에 대해 언급된 동작을 부여합니다.
어댑터 세부 정보 보기 및 업데이트
어댑터 세부 정보 패널에는 어댑터에 대한 정보가 표시되며, 여기서 인증서 추가와 같은 작업을 수행할 수 있습니다.
어댑터 세부 정보를 확인하려면:
- 어댑터의 작업 메뉴(⋯)를 클릭하세요.
- '상세 정보'를 선택하세요.
세부 정보 패널에는 어댑터의 이름, 설명, 관련 KMIP 대칭 키 및 업로드된 인증서가 표시됩니다. 이 패널에서 추가 인증서를 업로드할 수도 있습니다.
콘솔을 사용하여 KMIP 대칭 키를 삭제할 수 없습니다. 키를 삭제하려면 CLI 를 사용하십시오. Active 상태가 아닌 KMIP 대칭 키(상태 1)만 삭제할 수 있습니다. Active 상태의 키가 포함된 어댑터는 삭제할 수 없습니다.
각 어댑터의 리소스는 루트 키로 보호됩니다. 활성 상태이며 어댑터에 연결된 루트 키는 삭제할 수 없습니다.
생성된 각 KMIP 대칭 키는 단일 키 버전으로 간주되며, 키 버전 1개에 대한 요금이 부과됩니다. KMIP 대칭 키를 삭제하면 복구할 수 없습니다.
KMIP 지원 개체 및 작업
지원되지 않는 작업에 대한 요청 등 예상되는 실패 사유는 KMIP 버전 1.4 문서의 결과 사유를 참조하세요.
KMIP 지원 작업
다음 작업만 지원됩니다.
| 섹션 | 오퍼레이션 | 요약 |
|---|---|---|
| 4.1 | 작성 | KMIP 객체를 생성합니다. |
| 4.9 | 찾기 | 지정된 기준이나 속성 메타데이터에 부합하는 개체를 검색합니다. |
| 4.11 | Get | 객체 정보, 특히 키 자료를 가져옵니다. |
| 4.12 | 속성 가져오기 | 객체에 대한 속성 메타데이터를 가져옵니다. |
| 4.14 | 속성 추가 | 객체에 속성 메타데이터를 추가합니다. |
| 4.19 | 활성화 | 객체를 “활성” 상태로 설정합니다. 객체가 활성 상태인 동안에는 해당 객체를 소멸시킬 수 없습니다. |
| 4.20 | 권한 취소 | 취소 사유 코드가 “키 유출” 또는 “CA 유출”인 경우, 해당 객체를 “유출됨” 상태로 설정합니다. 그렇지 않은 경우, 해당 객체를 “비활성화” 상태로 설정합니다. |
| 4.21 | 영구 삭제 | 객체의 키 자료를 파기합니다. This action cannot be reversed. |
| 4.26 | 버전 살펴보기 | 서버에 지원되는 KMIP 프로토콜 버전을 요청합니다. v1.4 만 반환됩니다. |
지원되는 개체
| 섹션 | 오브젝트 |
|---|---|
| 2.2 | 대칭 키 |
API에서 KMIP 어댑터 생성 및 사용
이 섹션에서는 프로필 native_1.0 의 KMIP 어댑터를 API와 함께 사용하는 방법, 즉 KMIP 클라이언트 인증서를 추가 및 제거하고 KMIP 개체를 조회 및 삭제하는 방법을 설명합니다.
다음 엔드포인트에 대해 POST 호출을 수행하여 KMIP 어댑터를 생성할 수 있습니다.
https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters
KMIP 클라이언트 인증서 및 KMIP 개체를 포함한 KMIP 어댑터 하위 리소스에 대한 작업은 다음 엔드포인트에서 이루어집니다:
https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>/certificates
https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>/kmip_objects
-
KMIP 어댑터를 만드는 데 사용할 루트 키의 ID를 복사합니다.
다음 Key Protect 인스턴스의 키에 대한 ID를 키 목록을 검색하거나 Key Protect 대시보드.
-
다음
curl명령으로 KMIP 어댑터를 만듭니다:$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters" \ -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.kmip_adapter+json" \ -d '{ "metadata": { "collectionType": "application/vnd.ibm.kms.kmip_adapter+json", "collectionTotal": 1 }, "resources": [ { "name": "<adapter_name>", "description": "<adapter_description>", "profile": "native_1.0", "profile_data": { "crk_id": "<root_keyID_or_alias>" } } ] }'다음 표에 따라 예제 요청의 변수를 대체하십시오.
| 가변 | 설명 |
|---|---|
| 지역 | 필수. us-south 또는 eu-gb 과 같은 지역 약어는 Key Protect 인스턴스가 위치한 지리적 영역을 나타냅니다.자세한 정보는 지역 서비스 엔드포인트를 참조하십시오. |
| root_keyID_or_alias | 필수. 어댑터에 사용하려는 루트 키의 고유 식별자 또는 별칭입니다. |
| IAM_token | 필수. 사용자의 IBM Cloud 액세스 토큰입니다. curl 요청에 Bearer 값을 포함하여 IAM 토큰의 전체 컨텐츠를 포함하십시오. 자세한 내용은 ‘액세스 토큰 가져오기’를 참조하세요. |
| instance_ID | 필수. Key Protect 서비스 인스턴스에 지정된 고유 ID입니다. 자세한 내용은 “인스턴스 ID 가져오기”를 참조하십시오. |
| adapter_name | 선택사항. KMIP 인스턴스 내에서 사람이 읽을 수 있는 KMIP 어댑터의 고유 이름입니다. 지정하지 않으면 kmip_adapter_<random_string> 형식으로 자동 생성됩니다. 개인정보 보호를 위해 KMIP 어댑터의 이름으로 이름이나 위치와 같은 개인 정보를 사용하지 마십시오. 이름은 영숫자이어야 하며 - 또는 _ 이외의 공백이나 특수 문자를
포함할 수 없습니다. 이름은 UUID일 수 없습니다. |
| 어댑터_설명 | 선택 사항 KMIP 어댑터의 설명입니다. 최대 길이는 240자입니다. 개인정보 보호를 위해 KMIP 어댑터의 설명란에 이름이나 위치와 같은 개인 정보를 기재하지 마십시오. |
-
선택 사항: 다음
curl명령을 사용하여 인스턴스에 존재하는 KMIP 어댑터를 나열할 수 있습니다:$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters" \ -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.kmip_adapter+json"다음
curl명령을 사용하여 특정 KMIP 어댑터를 가져올 수도 있습니다:$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>" \ -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.kmip_adapter+json"특정 어댑터를 가져오려면 어댑터의 UUID 또는 어댑터 이름을 사용할 수 있습니다.
-
다음
curl명령으로 KMIP 어댑터를 삭제할 수 있습니다:$ curl -X DELETE \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>" \ -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.kmip_adapter+json"어댑터 아래의 모든 KMIP 개체가 삭제된 경우에만 KMIP 어댑터를 삭제할 수 있습니다.
KMIP 어댑터에 KMIP 클라이언트 인증서 추가하기
KMIP 어댑터를 생성한 후에는 해당 어댑터와 연결할 KMIP 클라이언트 인증서를 추가할 수 있습니다. 인증서가 등록된 후에는 KMIP 사양에 설명된 대로 mTLS 을 통해 KMIP 서버와 통신하는 데 해당 인증서를 사용할 수 있습니다. 인증서 등록에는 최대 5분이 소요될 수 있습니다. 인증서는 같은 지역 내에서 고유해야 합니다.
-
인증서를 추가할 KMIP 어댑터를 확인합니다.
-
다음
curl명령으로 KMIP 클라이언트 인증서를 추가합니다:$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/certificates" \ -H "accept: application/vnd.ibm.kms.kmip_client_certificate+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.kmip_client_certificate+json" \ -d '{ "metadata": { "collectionType": "application/vnd.ibm.kms.kmip_client_certificate+json", "collectionTotal": 1 }, "resources": [ { "certificate": "<certificate_pem>", "name": "<certificate_name>" } ] }'다음 표에 따라 예제 요청의 변수를 대체하십시오.
| 가변 | 설명 |
|---|---|
| 지역 | 필수. us-south 또는 eu-gb 과 같은 지역 약어는 Key Protect 인스턴스가 위치한 지리적 영역을 나타냅니다.자세한 정보는 지역 서비스 엔드포인트를 참조하십시오. |
| ADAPTER_ID | 필수. 인증서를 등록하려는 KMIP 어댑터의 고유 식별자 또는 이름입니다. |
| IAM_token | 필수. 사용자의 IBM Cloud 액세스 토큰입니다. curl 요청에 Bearer 값을 포함하여 IAM 토큰의 전체 컨텐츠를 포함하십시오. 자세한 내용은 ‘액세스 토큰 가져오기’를 참조하세요. |
| instance_ID | 필수. Key Protect 서비스 인스턴스에 지정된 고유 ID입니다. 자세한 내용은 “인스턴스 ID 가져오기”를 참조하십시오. |
| 인증서_pem | 필수 KMIP 클라이언트 인증서의 내용입니다. x509 PEM 형식이어야 합니다. 명시적으로 BEGIN CERTIFICATE 및 END CERTIFICATE 태그가 있어야 합니다. |
| certificate_name | 선택사항. 지정된 어댑터 내에서 인증서를 고유하게 식별하는 사람이 읽을 수 있는 이름입니다. 지정하지 않으면 kmip_cert_<random_string> 형식으로 자동 생성됩니다. 개인정보 보호를 위해 KMIP 어댑터의 이름으로 이름이나 위치와 같은 개인 정보를 사용하지 마십시오. 이름은 영숫자이어야 하며 - 또는 _ 이외의 공백이나 특수 문자를 포함할
수 없습니다. 이름은 UUID일 수 없습니다. |
-
선택 사항: 다음
curl명령을 사용하여 어댑터와 연결된 KMIP 클라이언트 인증서를 나열할 수 있습니다:$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/certificates" \ -H "accept: application/vnd.ibm.kms.kmip_client_certificate+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>"다음
curl명령을 사용하여 특정 KMIP 클라이언트 인증서를 얻을 수도 있습니다:$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/certificates/<certificate_name_or_id>" \ -H "accept: application/vnd.ibm.kms.kmip_client_certificate+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>"인증서의 UUID 또는 인증서 이름을 사용하여 특정 어댑터를 가져올 수 있습니다.
-
다음
curl명령으로 KMIP 클라이언트 인증서를 삭제할 수 있습니다:$ curl -X DELETE \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_name_or_ID>" \ -H "accept: application/vnd.ibm.kms.kmip_adapter+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>"어댑터 아래의 모든 KMIP 개체가 삭제된 경우에만 KMIP 어댑터를 삭제할 수 있습니다.
어댑터 내에서 KMIP 개체 보기 및 삭제하기
KMIP 개체는 REST API를 통해 만들 수는 없지만 조회 및 삭제는 가능합니다.
-
인증서를 추가할 KMIP 어댑터를 확인합니다.
-
다음
curl명령을 사용하여 KMIP 어댑터 내에서 KMIP 개체를 볼 수 있습니다:$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/kmip_objects" \ -H "accept: application/vnd.ibm.kms.kmip_object+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" -
다음
curl명령을 사용하여 KMIP 어댑터 내에서 특정 KMIP 개체를 볼 수 있습니다:$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/kmip_objects/<object_id>" \ -H "accept: application/vnd.ibm.kms.kmip_object+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" -
다음
curl명령을 사용하여 KMIP 어댑터 내에서 특정 KMIP 개체를 삭제할 수 있습니다:$ curl -X DELETE \ "https://<region>.kms.cloud.ibm.com/api/v2/kmip_adapters/<adapter_id>/kmip_objects/<object_id>" \ -H "accept: application/vnd.ibm.kms.kmip_object+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>"여기서
<object_id>은 KMIP 개체의 UUID입니다. 활성(state=2) 상태의 KMIP 개체는 삭제할 수 없습니다.