표준 키 가져오기

IBM Cloud 콘솔을 사용하여 기존 암호화 키를 추가할 수 있습니다.

Key Protect API를 사용하여 프로그래밍 방식으로 기존 암호화 키를 추가할 수 있습니다.

콘솔을 사용하여 표준 키 가져오기

서비스 인스턴스를 작성한 후 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로 인코딩되어야 합니다.
키 별명 선택사항. 키 별명은 표시 이름의 한계를 초과하여 식별하고 그룹화하는 데 사용할 수 있는 키를 설명하는 방법입니다. 키의 별명은 최대 5개일 수 있습니다.
키 링 선택사항. 키 링은 필요한 대로 해당 그룹화를 개별적으로 관리하는 데 사용할 수 있는 키 그룹입니다. 모든 키는 키 링의 일부여야 합니다. 키 링이 선택되지 않으면 키가 default 키 링에 배치됩니다. 키 링에 작성 중인 키를 배치하려면 해당 키 링에 대한 관리자 역할이 있어야 합니다. 역할에 대한 자세한 정보는 사용자 액세스 관리를 확인하십시오.

키의 세부 정보를 모두 입력한 후 ‘추가’를 클릭하여 확인하십시오.

특정 키 링의 관리자 라면, ‘키 링 ’ 패널에서 직접 키를 추가할 수 있습니다. 키링의 동작 메뉴(⋯)에서 ‘새 키 추가’를 클릭하세요. ‘키’ 페이지에서 ‘추가’를 클릭했을 때와 동일한 패널이 열리지만, ‘키링’ 필드에는 선택한 키링 이름이 미리 입력되어 있습니다.

여러 계정이나 환경에서 표준 키를 일관되게 가져오고 관리해야 하는 경우 Key Protect 키 모듈을 사용하여 이를 자동화할 수 있습니다. Key Protect 인스턴스와 키 링을 프로비저닝하는 전체 설정은 모든 것이 포함된 Key Protect 모듈을 참조하세요. 개요는 Terraform IBM 모듈을 참조하세요.

표준 키 가져오기

다음 엔드포인트에 대한 POST 호출을 작성하여 표준 키를 가져오십시오.

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" \
        -H "correlation-id: <correlation_ID>" \
        -H "prefer: <return_preference>" \
        -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 인스턴스가 위치한 지리적 영역을 나타냅니다.

자세한 내용은 ‘지역별 서비스 엔드포인트’를 참조하십시오.
IAM_token 필수. 사용자의 IBM Cloud 액세스 토큰입니다. curl 요청에 Bearer 값을 포함하여 IAM 토큰의 전체 컨텐츠를 포함하십시오.

자세한 내용은 ‘액세스 토큰 가져오기’를 참조하십시오.
instance_ID 필수. Key Protect 서비스 인스턴스에 지정된 고유 ID입니다.

자세한 내용은 “인스턴스 ID 가져오기”를 참조하십시오.
correlation_ID 트랜잭션을 추적하고 상관시키는 데 사용되는 고유 ID입니다.
return_preference POST와 DELETE 오퍼레이션에 대한 서버 동작을 변경하는 헤더입니다.

return_preference 변수를 return=minimal로 설정하면 서비스는 응답 엔티티-본문에 키 이름 및 ID 값과 같은 키 메타데이터만 리턴합니다. 변수를 return=representation으로 설정하면 서비스가 키 자료와 키 메타데이터를 모두 리턴합니다.
key_name 필수. 키를 쉽게 식별할 수 있도록 해 주는 사용자가 읽을 수 있는 고유 이름입니다. 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오.
alias_list 선택 사항. 키에 할당된 하나 이상의 고유하고 사람이 읽을 수 있는 별칭입니다.

중요사항: 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오.

각 별칭은 영문자와 숫자로만 구성되어야 하며, 대소문자를 구분하고, 공백이나 - 또는 _ 이외의 특수 문자를 포함할 수 없습니다. 별칭은 UUID일 수 없으며, 다음의 Key Protect 에서 예약된 이름이어서는 안 됩니다: 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 키 자료 서비스를 중단할지 여부를 판별하는 부울 값입니다.

extractable 속성을 true 로 설정하면, 서비스는 해당 키를 앱이나 서비스에 저장할 수 있는 표준 키로 지정합니다.

개인 데이터의 기밀성을 보호하려면 서비스에 키를 추가할 때 사용자 이름 또는 위치와 같은 PII(Personally Identifiable Information)를 입력하지 않도록 하십시오. 개인 식별 정보(PII)에 대한 더 많은 예시는 NIST 특별 간행물 800-122의 2.2절을 참조하십시오.

성공한 POST api/v2/keys 응답은 기타 메타데이터와 함께 키의 ID 값을 리턴합니다. ID는 로컬 키에 지정된 고유 ID이며 Key Protect API.

선택사항: 표준 키 가져오기 확인

목록 키 요청을 발행하여 표준 키를 가져왔는지 확인할 수 있습니다.

$ 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>"

여기서 <instance_ID>은(는) 인스턴스의 이름이고 <IAM_token>은(는) IAM 토큰입니다.

키 자료를 base64로 인코딩

기존 표준 키를 가져올 때 서비스에 저장하고 관리할 암호화된 키 자료를 포함해야 합니다.

OpenSSL을 사용하여 기존 키 자료 암호화

주요 자료를 인코딩하려면 먼저 OpenSSL 다운로드하여 설치해야 합니다.

OpenSSL 다운로드하여 설치한 후에는 키 자료를 인코딩하는 데 권장되는 두 가지 명령어가 있습니다. 두 방법 모두 <key_material_string>이든 , 다음 예시에서 볼 수 있듯이, ‘ base64 ’ 문자열로 변환합니다. 자료가 파일에 있는 경우(예를 들어 암호화된 키뿐만 아니라 자격 증명이 포함된 파일을 Key Protect 저장하려는 경우) 가장 좋은 방법은 발급하는 것입니다:

```sh {: pre}
openssl base64 -in <infile> -out <outfile>
```
Replace the variables in the example request according to the following table.
키 자료를 base64-encode 하기 위해 필요한 변수들을 설명합니다.
가변 설명
infile 키 자료 문자열이 저장된 바이너리 파일의 이름입니다.

파일 크기가 7,500바이트보다 크지 않은지 확인합니다.
outfile 명령이 실행되면 base64로 인코딩된 키 자료가 작성될 파일의 이름입니다.

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

파일에 없는 키 자료를 기본 64 인코딩하려는 경우 발행할 수 있습니다:

```sh {: pre}
echo -n <password> | base64
```
Where "password" is the key material you want to use.

추가 문자(예: 불필요한 줄바꿈)가 포함되는 것을 방지하려면, 특히 base64 문자열을 콘솔에 게시할 경우 base64 을 클립보드에 복사하는 것이 권장되는 방법입니다.

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

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

표준 키와 루트 키의 특성이 같게 하려면 표준 키로 사용할 16-, 24- 또는 32바이트 키 자료를 작성합니다. 표준 키는 서비스를 종료할 수 있는 키입니다. 표준 키는 앱과 서비스에서 자주 사용됩니다.

  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비트 키 자료를 생성합니다.

다음에 수행할 작업