IBM Cloud Docs
루트 키 가져오기

루트 키 가져오기

기존 루트 키를 가져와 보호하고 관리하는 데 IBM® Key Protect for IBM Cloud®을(를) 사용할 수 있습니다.

루트 키는 클라우드에서 암호화된 데이터의 보안을 보호하는 데 사용되는 대칭 키-랩핑 키입니다. Key Protect로 루트 키를 가져오는 데 대한 자세한 정보는 클라우드로 암호화 키 가져오기를 참조하십시오.

키 자료 작성 및 암호화를 위한 옵션을 검토하여 키 가져오기를 계획하십시오. 보안을 추가하려면 클라우드로 키 자료를 가져오기 전에 이 키 자료를 암호화하도록 가져오기 토큰을 사용하여 키 자료의 보안 가져오기를 사용하도록 설정할 수 있습니다.

콘솔을 사용하여 루트 키 가져오기

서비스 인스턴스를 작성한 후 IBM Cloud 콘솔을 사용하여 키를 가져오려면 다음 단계를 완료하십시오.

Key Protect 인스턴스에 대한 이중 권한 부여 설정을 사용으로 설정하는 경우 서비스에 추가한 키를 삭제하려면 두 사용자의 권한이 필요함에 유의하십시오.

  1. IBM Cloud 콘솔에 로그인합니다.

  2. 메뉴 > 리소스 목록으로 이동하여 리소스 목록을 보십시오.

  3. IBM Cloud 리소스 목록에서 Key Protect의 프로비저닝된 인스턴스를 선택하십시오.

  4. 키를 가져오려면 추가를 클릭하고 고유 키 가져오기 창을 선택하십시오.

    키의 세부사항을 지정하십시오.

나만의 키 설정 가져오기에 대해 설명합니다.
설정 설명
키 유형 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
  1. 서비스 및 인증용 인증 정보를 검색하여 서비스에서 키에 대한 작업을 수행하십시오.

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

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

Key Protect 사용하여 루트 키를 추가하는 데 필요한 변수에 대해 설명합니다 API
가변 설명
지역 필수. 지역 약어(예: 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을 사용하여 기존 키 자료 암호화

이 프로세스를 사용하여 파일에 있는 키 자료의 컨텐츠를 암호화할 수 있습니다.

  1. OpenSSL을 다운로드하여 설치하십시오.

  2. 다음 명령을 실행하여 키 자료 문자열을 base64로 인코딩하십시오.

    openssl base64 -in <infile> -out <outfile>
    

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

주요 자료를 base64-encode 데 필요한 변수에 대해 설명합니다.
가변 설명
infile 키 자료 문자열이 상주하는 파일의 이름입니다. 키 길이는 16, 24 또는 32바이트여야 하며, 128, 192 또는 256비트에 해당합니다. 키는 base64로 인코딩되어야 합니다.
outfile 명령이 실행되면 base64로 인코딩된 키 자료가 작성될 파일의 이름입니다.

파일이 아닌 명령행에서 직접 base64 자료를 출력하려면 openssl enc -base64 <<< '<key_material_string>'을(를) 실행하십시오. 여기서 key_material_string은 가져온 키에 대한 키 자료 입력입니다.

OpenSSL을 사용하여 새 키 자료 작성 및 인코딩

특정 바이트 길이의 무작위 base64 인코딩 키 자료를 작성하려면 이 프로세스를 사용하십시오. 32바이트(256비트)가 권장됩니다.

  1. OpenSSL을 다운로드하여 설치하십시오.

  2. 다음 명령을 실행하여 키 자료 문자열을 base64로 인코딩하십시오.

    openssl rand -base64 <byte_length>
    

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

새 키 자료를 작성하고 인코딩하는 데 필요한 변수를 설명합니다.
가변 설명
byte_length 키의 길이(바이트)입니다. 허용 가능한 바이트 길이는 16, 24 또는 32바이트이며, 128, 192 또는 256비트에 해당합니다. 키는 base64로 인코딩되어야 합니다.

키 자료 작성 예제

  1. openssl rand -base64 16은 128비트 키 자료를 생성합니다.

  2. openssl rand -base64 24는 192비트 키 자료를 생성합니다.

  3. openssl rand -base64 32는 256비트 키 자료를 생성합니다.

다음에 수행할 작업