키 관리 상호 운용성 프로토콜(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 ’ 역할을 보유하고 있는지 확인하십시오.

어댑터를 만들려면 다음과 같이 하세요:

  1. 탐색 메뉴에서 ‘KMIP 어댑터’를 클릭합니다. 이 어댑터를 처음 사용하는 경우, 표는 비어 있습니다.

  2. 작성을 클릭하십시오.

  3. 측면 패널에 다음 정보를 기재하십시오:

    • 이름- 어댑터의 이름을 입력하세요(2~40자).
    • 설명 (선택 사항)- 어댑터에 대한 설명을 입력하세요(2~240자).
    • 근본 키- 이 어댑터에 사용할 근본 키를 선택합니다. 루트 키는 어댑터가 생성하는 KMIP 키를 암호화합니다. 어댑터가 정상적으로 작동하려면 루트 키가 ‘ active ’ 상태여야 합니다.
  4. 선택 사항: 해당 개인 인증서 소유자가 KMIP 어댑터를 통해 Key Protect 과 통신할 수 있도록 공개 인증서( TLS )를 추가합니다. 승인된 인증서만이 해당 인스턴스에 대해 KMIP 프로토콜 요청을 보낼 수 있습니다.

    인증서를 추가하려면:

    1. 추가 를 클릭하십시오.
    2. 인증서 이름을 입력하십시오.
    3. 인증서 내용을 PEM 형식으로 입력하십시오. 이때 BEGIN CERTIFICATEEND CERTIFICATE 태그도 포함해야 합니다.
    4. '인증서 추가'를 클릭합니다.

    인증서 연결에는 몇 분 정도 걸릴 수 있습니다. 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.create
  • kms.kmip-management.list
  • kms.kmip-management.read
  • kms.kmip-management.delete

각 작업은 세분화 없이 인스턴스의 모든 kmip_adapter certificatekmip_object 리소스에 대해 언급된 동작을 부여합니다.

어댑터 세부 정보 보기 및 업데이트

어댑터 세부 정보 패널에는 어댑터에 대한 정보가 표시되며, 여기서 인증서 추가와 같은 작업을 수행할 수 있습니다.

어댑터 세부 정보를 확인하려면:

  1. 어댑터의 작업 메뉴(⋯)를 클릭하세요.
  2. '상세 정보'를 선택하세요.

세부 정보 패널에는 어댑터의 이름, 설명, 관련 KMIP 대칭 키 및 업로드된 인증서가 표시됩니다. 이 패널에서 추가 인증서를 업로드할 수도 있습니다.

콘솔을 사용하여 KMIP 대칭 키를 삭제할 수 없습니다. 키를 삭제하려면 CLI 를 사용하십시오. Active 상태가 아닌 KMIP 대칭 키(상태 1)만 삭제할 수 있습니다. Active 상태의 키가 포함된 어댑터는 삭제할 수 없습니다.

각 어댑터의 리소스는 루트 키로 보호됩니다. 활성 상태이며 어댑터에 연결된 루트 키는 삭제할 수 없습니다.

생성된 각 KMIP 대칭 키는 단일 키 버전으로 간주되며, 키 버전 1개에 대한 요금이 부과됩니다. KMIP 대칭 키를 삭제하면 복구할 수 없습니다.

KMIP 지원 개체 및 작업

지원되지 않는 작업에 대한 요청 등 예상되는 실패 사유는 KMIP 버전 1.4 문서의 결과 사유를 참조하세요.

KMIP 지원 작업

다음 작업만 지원됩니다.

지원되는 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 만 반환됩니다.

지원되는 개체

지원되는 KMIP 객체
섹션 오브젝트
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
  1. 인증용 인증 정보를 검색하여 서비스에서 키에 대한 작업을 수행하십시오.

  2. KMIP 어댑터를 만드는 데 사용할 루트 키의 ID를 복사합니다.

    다음 Key Protect 인스턴스의 키에 대한 ID를 키 목록을 검색하거나 Key Protect 대시보드.

  3. 다음 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>"
                    }
                    }
                ]
            }'
    

    다음 표에 따라 예제 요청의 변수를 대체하십시오.

Key Protect KMIP 어댑터를 만드는 데 필요한 변수에 대해 설명합니다.
가변 설명
지역 필수. 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 어댑터의 설명란에 이름이나 위치와 같은 개인 정보를 기재하지 마십시오.
  1. 선택 사항: 다음 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 또는 어댑터 이름을 사용할 수 있습니다.

  2. 다음 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분이 소요될 수 있습니다. 인증서는 같은 지역 내에서 고유해야 합니다.

  1. 인증용 인증 정보를 검색하여 서비스에서 키에 대한 작업을 수행하십시오.

  2. 인증서를 추가할 KMIP 어댑터를 확인합니다.

  3. 다음 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>"
                    }
                ]
            }'
    

    다음 표에 따라 예제 요청의 변수를 대체하십시오.

Key Protect KMIP 클라이언트 인증서를 만드는 데 필요한 변수에 대해 설명합니다.
가변 설명
지역 필수. 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일 수 없습니다.
  1. 선택 사항: 다음 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 또는 인증서 이름을 사용하여 특정 어댑터를 가져올 수 있습니다.

  2. 다음 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를 통해 만들 수는 없지만 조회 및 삭제는 가능합니다.

  1. 인증용 인증 정보를 검색하여 서비스에서 키에 대한 작업을 수행하십시오.

  2. 인증서를 추가할 KMIP 어댑터를 확인합니다.

  3. 다음 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>"
    
  4. 다음 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>"
    
  5. 다음 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 개체는 삭제할 수 없습니다.