인스턴스, 자격 증명 및 마스터 키를 생성하여 전용 Key Protect 초기화하기

Key Protect 전용이 작동하려면 먼저 인스턴스를 프로비저닝한 다음 암호화 장치를 작동하는 데 사용되는 관리자 자격 증명을 생성한 다음 마스터 키를 생성하고 로드해야 하며, 이를 통해 Key Protect 에서 사용자를 대신하여 암호화 장치에 대한 암호화 작업을 수행할 수 있습니다.

전용 Key Protect 서비스의 주요 개념에 대한 자세한 내용은 표준 및 전용에 대한 정보 Key Protect 에서 확인하세요.

이 주제에서는 각 명령의 세 가지 버전이 소개됩니다: Mac용 Linux, Windows Powershell 또는 Windows 명령 프롬프트(CMD). 사용 중인 시스템에 맞는 명령을 사용하고 있는지 확인하세요.

시작하기 전에

최신 버전의 IBM Cloud CLI가 없는 경우 인스턴스를 초기화하지 못할 수 있습니다. 최신 버전의 CLI 플러그인으로 업데이트하여 초기화에 성공할 수 있도록 도와주세요.

콘솔을 사용하여 인스턴스를 배포하는 경우에도 최신 버전의 CLI를 사용하여 초기화를 완료해야 합니다. 최신 버전의 KP CLI 플러그인을 설치하는 동안 - Unable to obtain plug-in's metadata 오류가 발생하면 문제 해결 단계를 참조하세요.

콘솔에서 인스턴스 프로비저닝하기

콘솔에서 인스턴스를 프로비저닝하려면 여기의 지침에 따라 카탈로그에서 '전용' 타일을 선택하세요. 프로비저닝 프로세스는 몇 분 정도 걸릴 수 있습니다.

인스턴스가 프로비저닝되면 관리자 자격 증명을 생성하고 암호화폐 단위를 청구할 준비가 된 것입니다.

암호화 단위 수를 지정하지 않으면 인스턴스는 두 개로 프로비저닝됩니다. 드롭다운을 사용하여 3개의 암호화폐 단위를 지정할 수도 있습니다. 암호 화폐 단위를 2개 또는 3개 지정하든 나중에 값을 변경할 수 없다는 점에 유의하세요.

CLI에서 인스턴스 프로비저닝하기

암호화폐 단위를 생성하고 인스턴스를 초기화하려면 먼저 인스턴스를 생성해야 합니다. 먼저 발행을 통해 타겟팅할 리소스 그룹을 설정합니다:

ibmcloud target -c <resource-group>

보유하고 있는 리소스 그룹을 모르는 경우 발급을 통해 어떤 리소스 그룹이 있는지 확인할 수 있습니다:

ibmcloud resource groups

리소스 그룹을 설정한 후 발행하여 인스턴스를 생성합니다:

ibmcloud resource service-instance-create <INSTANCE_NAME> kms dedicated us-south

여기서:

  • <INSTANCE_NAME> 인스턴스에 지정하는 이름입니다.

이 명령은 기본적으로 두 개의 암호 화폐 단위로 설정되어 있습니다. 발행 시 3개의 암호화폐 단위를 지정할 수 있습니다:

ibmcloud resource service-instance-create <INSTANCE_NAME> kms dedicated us-south -p '{"crypto_units": 3}'

2 또는 3 이외의 암호화폐 단위를 지정하면 오류가 반환됩니다. 나중에 암호화폐 단위 수를 변경할 수 없습니다.

전용 인스턴스를 프로비저닝하는 데는 몇 분이 걸릴 수 있습니다. 발급을 통해 인스턴스의 상태를 확인할 수 있습니다:

ibmcloud resource service-instance <INSTANCE_NAME>

여기서:

  • <INSTANCE_NAME> 는 이전 단계에서 인스턴스에 지정한 이름입니다.

인스턴스는 활성 또는 진행 중 두 가지 상태 중 하나를 가질 수 있습니다. 이 항목의 나머지 단계를 완료해야 하므로 활성 인스턴스가 아직 초기화되지 않은 상태라는 점에 유의하세요. 인스턴스를 초기화할 때까지는 마스터 키를 생성하기 위한 암호화 단위로 ID를 아직 구성하지 않았으므로 사용할 수 없습니다.

엔드포인트 가져오기

인스턴스가 활성화되면 발급을 통해 엔드포인트와 GUID를 가져옵니다:

ibmcloud resource service-instance <INSTANCE_NAME> -o json

여기서:

  • <INSTANCE_NAME> 는 이전 단계에서 인스턴스에 지정한 이름입니다.

엔드포인트는 위 json 출력의 endpoints 스탠자에 있는 public 매개변수 값입니다. 형식은 https://<instance-id>.api.<region>.kms.appdomain.cloud 입니다. GUID는 위 출력의 GUID 매개변수 값입니다. UUID 의 형식을 취합니다.

ibmcloud resource service-instance <\kp-instance-id\> --output json | jq -r '.[].extensions.endpoints' 을 발행하여 엔드포인트를 얻을 수 있습니다.

지원되는 세 가지 운영 체제 중 하나에서 두 개의 명령을 실행하여 전체 엔드포인트를 환경 변수로 저장합니다.

다음과 같은 경우 macOS:

export KP_TARGET_ADDR=<ST_INSTANCE_ENDPOINT>

그리고 다음을 추가하십시오.

export KP_INSTANCE_ID=<GUID>

Windows 파워쉘의 경우:

$Env:KP_INSTANCE_ID = <GUID>

그리고 다음을 추가하십시오.

$Env:KP_TARGET_ADDR = <ST_INSTANCE_ENDPOINT>

[Windows의] 경우{: tag-windows} CMD:

set KP_INSTANCE_ID=<GUID>

그리고 다음을 추가하십시오.

set KP_TARGET_ADDR=<ST_INSTANCE_ENDPOINT>

여기서:

  • <ST_INSTANCE_ENDPOINT>https://<instance-id>.api.<region>.kms.appdomain.cloud 형식의 인스턴스의 전체 엔드포인트입니다.
  • <GUID> 는 위 출력의 인스턴스 ID입니다.

이제 관리자 자격 증명을 생성할 준비가 되었습니다.

프로비저닝 후 몇 분 정도 기다려야 암호화폐 유닛을 사용할 수 있습니다.

암호화폐 유닛의 상태에 대한 자세한 내용은 암호화폐 유닛 상태를 참조하세요.

관리자 자격 증명 생성 및 암호화폐 단위 청구하기

암호화 단위는 관리자 또는 관리자가 관리하므로 사용 가능한 ID가 있거나 ID를 만들어야 합니다. 관리자 ID( RSA-2048 )를 사용하여 대칭 256비트 AES 키를 올바르게 포맷한 경우 마스터 키 만들기로 건너뛸 수 있습니다.

관리자 자격 증명 생성하기

관리자 자격 증명을 만들어야 하는 경우 발급합니다:

ibmcloud kp crypto-unit sig-key generate --file <ADMIN_KEY_FILE> --passphrase <PWD> --algo RSA-2048

여기서:

  • <ADMIN_KEY_FILE> 는 ID가 생성된 컴퓨터의 위치입니다(예: admin-keyfile.key).
  • <PWD> 는 저장된 파일을 암호화하는 데 사용되는 선택적 비밀번호 또는 암호 구문입니다. 암호를 입력하라는 메시지가 표시되면 '-'를 지정합니다.

이 키 파일의 사본을 저장하고 비밀번호를 기억하세요. 암호화 장치와 상호 작용할 때 인증된 모든 명령에 필요합니다.

ibmcloud kp crypto-unit 명령이 오류 코드 e00bad05 를 반환하는 경우 문제 해결 단계 를 참조하세요.

암호화폐 단위 청구하기

암호화폐 유닛의 상태에 대한 자세한 내용은 암호화폐 유닛 상태를 참조하세요.

사용자에게 할당된 암호화폐 단위는 지워진 상태에서 시작됩니다. 서비스 인스턴스의 모든 암호화 단위는 동일하게 구성해야 합니다. 인스턴스가 있는 지역에서 하나의 가용성 구역에 액세스할 수 없는 경우 로드 밸런싱 또는 고가용성을 위해 운영 암호화 장치를 교환하여 사용할 수 있습니다.

단일 서비스 인스턴스 내의 모든 암호화 유닛에 대한 마스터 키는 동일하게 설정되어야 합니다. 모든 암호화 유닛에 동일한 관리자 그룹을 추가해야 하며, 모든 암호화 유닛은 동시에 초기화되어야 합니다.

현재 사용자 계정 아래의 대상 리소스 그룹에 서비스 인스턴스 및 암호화 단위를 표시하려면 다음 명령을 사용하십시오.

ibmcloud kp crypto-units

다음은 표시된 출력 예입니다. 출력 테이블의 ID 열은 KP CLI 플러그인에서 나중에 실행되는 관리 명령의 대상이 되는 암호화 단위를 식별합니다.

*******************************************************  
Id                                     InstanceID                             State  
6e0aead3-9d44-4c92-a4c4-f7a1ab415420   c28a8939-3980-4697-a80c-50b1f8bbf160   reserved  
3bb363fc-b1f9-4237-b37b-2c9e07784e3c   c28a8939-3980-4697-a80c-50b1f8bbf160   reserved  
*******************************************************  

RSA 키 쌍의 공개 키는 인증서에 포함되며, 이 인증서는 대상 암호화 장치에 설치되어 해당 장치의 관리자를 지정합니다. 클레임 명령을 사용하여 암호화폐 단위, 발행의 기본 관리자로 업로드합니다:

ibmcloud kp crypto-unit claim --credential <ADMIN_KEY_FILE>

여기서:

  • <ADMIN_KEY_FILE> 는 ID가 저장된 파일입니다.

모든 crypto-unit 명령은 모든 암호화폐 유닛에 적용됩니다. 이들은 사실상 서로의 복제본입니다.

마스터 키 생성 및 가져오기

마스터 키 자격 증명을 가져오기 때문에 Key Protect 에는 해당 키에 대한 액세스 권한이나 백업이 없습니다. 마스터 키의 기록은 안전한 장소에 보관하세요.

이제 인스턴스와 관리자 ID를 만들었으므로 이를 사용하여 마스터 키를 만들 수 있습니다. HSM 마스터 키라고도 하는 마스터 키는 키 스토리지에 대한 서비스 인스턴스를 암호화하기 위해 사용됩니다. 이 키는 대칭 256비트 AES 키입니다. 마스터 키를 통해 사용자는 클라우드 HSM의 소유권을 확보하게 되며, 키 관리 키스토어에 포함된 루트 키와 표준 키를 포함한 전체 암호화 키 계층 구조를 암호화하는 신뢰의 근간을 소유하게 됩니다. 하나의 서비스 인스턴스에는 하나의 마스터 키만 있을 수 있습니다. 서비스 인스턴스의 마스터 키를 삭제하면 서비스에서 관리되는 키로 암호화된 모든 데이터의 암호를 효과적으로 제거할 수 있습니다.

전용 Key Protect 은 보안성을 높이기 위해 암호화 키를 여러 조각으로 나누는 “키 분할” 방식을 사용합니다. 사용 사례에 따라 더 많이 사용할 수 있지만 최소 2 "키셰어"를 만들어야 합니다.

로컬에서 마스터 키를 생성하려면 지원되는 세 가지 운영 체제 중 하나에서 명령을 실행합니다.

다음과 같은 경우 macOS:

ibmcloud kp crypto-unit master-key generate --keyshare-files '["<KEYSHARE_FILE_1>#<PASSWORD1>", "<KEYSHARE_FILE_2>#<PASSWORD2>"]' --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSOWRD3>"}]'

Windows 파워쉘의 경우:

ibmcloud kp crypto-unit master-key generate --keyshare-files '["""<KEYSHARE_FILE_1>#<PASSWORD1>""","""<KEYSHARE_FILE_2>#<PASSWORD2>"""]' --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSOWRD3>"""}]'

[Windows의] 경우{: tag-windows} CMD:

ibmcloud kp crypto-unit master-key generate --keyshare-files"[\"<KEYSHARE_FILE_1>#<PASSWORD1>\", \"<KEYSHARE_FILE_2>#<PASSWORD2>\"]" --keyshare-minimum 2 --algo AES-256 --key-name <KEY_NAME> --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSOWRD3>\"}]"

여기서:

  • <KEYSHARE_FILE_1>#<PASSWORD1> 는 생성된 파일의 암호와 함께 키 공유 중 하나의 위치입니다. 비밀번호는 필수이며 6~255자 사이여야 합니다. 비밀번호를 입력하라는 메시지가 표시되면 #<PASSWORD1> 을 생략합니다.
  • <KEYSHARE_FILE_2>#<PASSWORD2> 는 생성되는 파일의 암호와 함께 다른 키쉐어의 위치입니다. 비밀번호는 필수이며 6~255자 사이여야 합니다. 비밀번호를 입력하라는 메시지가 표시되면 #<PASSWORD2> 을 생략합니다. 비밀번호를 입력하라는 메시지가 표시되면 #<PASSWORD2> 을 생략합니다.
  • <KEY_NAME> 는 마스터 키의 이름입니다.
  • <ADMIN_KEY_FILE>#<PASSOWRD3> 는 관리자 위치 및 이전에 생성한 비밀번호(본인 아이디를 가져오지 않는 경우)입니다. 비밀번호를 입력하라는 메시지가 표시되면 #<PASSWORD3> 을 생략합니다.

기본적으로 2 으로 설정되어 있지만 더 늘릴 수 있는 keyshare-minimum 은 지정해야 하는 최소 키 공유 수(위치별)를 나타냅니다.

마스터 키를 인스턴스의 암호화 장치에 업로드하려면 지원되는 세 가지 운영 체제 중 하나에서 명령을 실행하세요.

다음과 같은 경우 macOS:

ibmcloud kp crypto-unit master-key import --keyshare-files '["<KEYSHARE_FILE_1>#<PASSWORD1>", "<KEYSHARE_FILE_2>#<PASSWORD2"]' --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSWORD3>"}]'

Windows용 PowerShell:

ibmcloud kp crypto-unit master-key import --keyshare-files '["""<KEYSHARE_FILE_1>#<PASSWORD1>""","""<KEYSHARE_FILE_2>#<PASSWORD2>"""]' --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSWORD3>"""}]'

[Windows의] 경우{: tag-windows} CMD:

ibmcloud kp crypto-unit master-key import --keyshare-files "[\"<KEYSHARE_FILE_1>#<PASSWORD1>\", \"<KEYSHARE_FILE_2>#<PASSWORD2\"]" --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSWORD3>\"}]"

여기서:

  • <KEYSHARE_FILE_1>#<PASSWORD1> 는 키 공유 중 하나의 위치와 생성될 파일의 암호 구문입니다. 비밀번호는 필수이며 6~255자 사이여야 합니다. 비밀번호를 입력하라는 메시지가 표시되면 #<PASSWORD1> 을 생략합니다.
  • <KEYSHARE_FILE_2>#<PASSWORD2> 는 생성될 파일의 암호와 함께 다른 키쉐어의 위치입니다. 비밀번호는 필수이며 6~255자 사이여야 합니다. 비밀번호를 입력하라는 메시지가 표시되면 #<PASSWORD2> 을 생략합니다.
  • <ADMIN_KEY_FILE>#<PASSWORD3> 는 관리자 위치 및 이전에 생성한 비밀번호(본인 아이디를 가져오지 않는 경우)입니다. 비밀번호를 입력하라는 메시지가 표시되면 #<PASSWORD3> 을 생략합니다.

이제 마스터 키가 생성되었으므로 Key Protect 서비스에서 암호화 장치에 대한 작업(예: 키 생성)을 수행할 수 있도록 허용해야 합니다. Key Protect 에게 부여된 권한 수준은 관리자 권한보다 낮다는 점에 유의하십시오. 지원되는 세 가지 운영 체제 중 하나를 사용하여 명령을 실행합니다.

다음과 같은 경우 macOS:

ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PASSWORD>"}]'

Windows용 PowerShell:

ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth '[{"""ADMIN""": """<ADMIN_KEY_FILE>#<PASSWORD>"""}]'

[Windows의] 경우{: tag-windows} CMD:

ibmcloud kp crypto-unit user add --type kmsCryptoUser --auth "[{\"ADMIN\": \"<ADMIN_KEY_FILE>#<PASSWORD>\"}]"

여기서:

  • <ADMIN_KEY_FILE>#<PASSWORD> 는 앞서 생성한 관리자 키 파일의 위치 및 비밀번호 문구입니다(본인 인증 정보를 가져오지 않는 경우). 비밀번호를 입력하라는 메시지가 표시되면 #<PASSWORD> 을 생략합니다.

이 명령은 --type admin 을 만들고 소유한 관리자 아이디를 가리키는 --name--file 을 추가하여 암호화폐 유닛에 관리자를 추가하는 데에도 사용할 수 있습니다. kmsCryptoUser 을 추가할 때 --name 또는 --file 을 추가하지 마십시오. 예를 들어, 다음과 같습니다.

ibmcloud kp crypto-unit user add --type admin --name <USERNAME> --credential "<USERNAME_KEY_FILE>" --auth '[{"ADMIN": "<ADMIN_KEY_FILE>#<PWD>"}]'

여기서:

  • <USERNAME> 는 추가하려는 관리자 아이디의 이름입니다.
  • <USERNAME_KEY_FILE> 는 새 사용자와 연결할 자격 증명의 파일 경로입니다.
  • <ADMIN_KEY_FILE>#<PWD> 는 기존 관리자의 위치 및 이전에 생성한 비밀번호(본인 아이디를 가져오지 않는 경우)입니다. 비밀번호를 입력하라는 메시지가 표시되면 #<PWD> 을 생략합니다.

관리자로 kmsCryptoUser 을 추가할 때 --name 또는 --file 을 추가하지 마세요.

축하합니다. 인스턴스가 완전히 초기화되었습니다.

인스턴스를 사용할 수 있게 되기까지 최대 5~10분이 소요될 수 있습니다.

다음 단계

이제 인스턴스가 생성되었으므로 인스턴스를 운영하는 데 사용할 수 있는 관리자 ID가 있고, 마스터 키를 생성하고 Key Protect 에 인스턴스에서 작업을 수행할 수 있는 액세스 권한을 부여했으므로 다음과 같은 작업을 수행할 준비가 된 것입니다:

Key Protect 전용에서는 토큰 가져오기를 지원하지 않습니다.

지원되지 않는 기능

문제점 해결

Unable to obtain plug-in's metadata kP CLI 플러그인 설치 또는 업그레이드 중 오류 발생

IBM Key Protect CLI 플러그인을 설치할 때 다음 오류가 표시되는 경우:

Installing binary...
FAILED
Unable to obtain plug-in's metadata. Error: exit status 1

Linux 환경

배포판의 패키지 관리자에서 libstdc++ 시스템 라이브러리를 설치 또는 업데이트하여 3.4.26 버전 이상을 설치하세요. 다음 예제 설치 명령을 사용합니다:

  • Ubuntu/Debian: apt-get update && apt-get install libstdc++6
  • RHEL/Fedora/CentOS: yum install libstdc++
  • Alpine: apk add --no-cache gcompat libstdc++

이 방법으로 오류가 해결되지 않으면 Key Protect 지원팀에 문의하십시오.

Windows 또는 macOS 환경

Key Protect 지원팀에 문의하세요.

command failed with error code: e00bad05 오류

ibmcloud kp crypto-unit 명령이 다음 오류를 반환하는 경우

FAILED
command failed with error code: e00bad05

이 오류는 시스템이 ibmcloud kp crypto-unit 기능과 호환되지 않는다는 것을 나타낼 수 있습니다. 권장 시스템 요구 사항은 다음과 같습니다:

  • Windows: AMD64 (Windows 10 이상)
  • Linux: AMD64 (Debian, Ubuntu, Red Hat)
  • macOS: ARM64 (Apple 실리콘)

이 목록에 없는 시스템도 ibmcloud kp crypto-unit 기능과 호환될 수 있습니다. 특정 시스템과의 호환성을 확인하거나 권장 시스템 요구 사항을 충족함에도 불구하고 e00bad05 오류가 지속되는 경우 Key Protect 지원팀에 문의하세요.

HTTP 503 no healthy upstream 오류

Key Protect 호출이 no healthy upstream: no crypto units are in kms-initialized state at this time 메시지와 함께 HTTP 503을 반환하는 경우 다음과 같은 원인이 있을 수 있습니다:

  • 아직 전용 초기화 단계를 완료하지 않았습니다.
  • 전용 초기화 단계를 완료했지만 Key Protect 에서 새로 생성된 kms-initialized 암호화폐 단위를 인식할 때까지 몇 분 정도 기다려야 합니다.
  • kms-initialized 상태의 암호화폐 유닛이 하나뿐이며 해당 암호화폐 유닛이 유지보수를 위해 다운되었습니다.
  • 일치하지 않는 마스터 키 자료를 하나 이상의 암호화폐 유닛에 업로드했습니다.

context deadline exceeded 오류

CLI 명령이 context deadline exceeded (Client.Timeout exceeded while awaiting headers) 오류를 반환하는 경우 비공개 엔드포인트 요구 사항을 충족하지 않는 시스템에서 KP_TARGET_ADDR 을 비공개 엔드포인트로 설정한 것입니다.

이 오류를 해결하려면 다음을 수행하십시오.

암호화 단위 명령이 모든 암호화 단위에 적용되지 않음

crypto-unit claim, crypto-unit master-key import, crypto-unit user add --type kmsCryptoUser 명령이 모든 암호화 단위에 적용되지 않으면 다음 예제와 유사한 출력이 표시될 수 있습니다:

Executing operation Generate Master Key against CryptoUnit with ID fadedbee-0000-0000-0000-1234567890ab
OK
Executing operation Generate Master Key against CryptoUnit with ID addedace-0000-0000-0000-1234567890ab
FAILED

이 문제를 해결하려면 다음과 같이 하십시오.

  1. 기본적으로 claim, master-key import, user add 명령은 모든 암호화 단위에 적용하려고 시도합니다. 이러한 명령이 부분적으로만 성공한 경우(인스턴스에 있는 암호화 단위의 하위 집합에만 적용된 경우) 실패를 반환한 암호화 단위에 대해서만 명령을 다시 시도합니다. 이러한 각 명령은 특정 암호화폐 단위를 대상으로 하도록 구성할 수 있습니다. 특정 암호화폐 단위를 타겟팅하는 방법을 확인하려면 crypto-unit 명령어에 -h 을 추가하여 도움말 텍스트를 보거나 CLI 참조를 참조하세요.

  2. CLI 참조에서 kp crypto-units 명령을 실행하여 모든 암호화 단위가 동일한 상태인지 확인합니다.

    • 암호화 단위 상태가 일치하지 않는 경우 암호화 단위 상태를 참조하세요.
    • 암호 단위가 maintenance 상태인 경우 나중에 kp crypto-unit 명령을 다시 시도하세요.