루트 키 작성

IBM® Key Protect for IBM Cloud® 을 사용하여 루트 키를 생성합니다.

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

한 지역에서 작성된 암호화 키를 사용하여 IBM Cloud 내의 임의의 지역에 있는 데이터 저장소를 암호화할 수 있습니다.

콘솔에서 루트 키 작성

서비스의 인스턴스를 작성한 후 다음 단계를 완료하여 루트 키를 IBM Cloud 콘솔에 작성하십시오.

전용 Key Protect 오퍼링을 배포하는 경우 리소스를 생성하기 전에 먼저 인스턴스를 초기화해야 합니다.

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

  1. IBM Cloud 콘솔에 로그인하세요.

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

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

  4. 새 키를 생성하려면 [ 키 추가 ]를 클릭하세요. 사이드 패널이 열립니다. 키 작성 옵션이 선택되었는지 확인하십시오. 이 키에 대해 키 별칭, 키 링 또는 회전 정책을 설정하려면 ‘고급 옵션’ 탭을 클릭하여 해당 항목을 표시해야 합니다.

Manager 가 아닌 경우 (또는 동등한 레벨의 권한이 있는 경우) 순환 정책 옵션이 표시되지 않습니다.

Specify the key's details:
키 만들기 설정에 대해 설명합니다.
설정 설명
유형 Key Protect에서 관리할 키의 유형입니다. 루트 키는 기본적으로 선택됩니다.
키 이름 키를 쉽게 식별할 수 있도록 사람이 읽을 수 있는 표시 이름입니다. 길이는 2 - 90자(포함)여야 합니다. 개인정보를 보호하려면 키 이름에 사용자 이름 또는 위치와 같은 PII(Personally Identifiable Information)가 포함되지 않았는지 확인하십시오. 키 이름은 고유하지 않아도 됩니다.
키 설명 선택사항. 설명은 별명 또는 해당 이름을 사용하여 수행할 수 없는 방식으로 키에 대한 정보 (예: 해당 목적을 설명하는 구문) 를 추가하는 유용한 방법입니다. 이 설명은 2자 이상 240자이하여야 하며 나중에 변경할 수 없습니다. 개인정보 보호를 위해, 키의 설명에 이름이나 위치와 같은 개인 정보를 사용하지 마십시오.
키 별명 선택사항. 키 별명 은 키를 설명하는 방법이기도 합니다. 키의 별명은 최대 5개일 수 있습니다.
키 링 선택사항. 키 링은 필요한 대로 해당 그룹화를 개별적으로 관리하는 데 사용할 수 있는 키 그룹입니다. 모든 키는 키 링의 일부여야 합니다. 키 링이 선택되지 않으면 키가 default 키 링에 배치됩니다. 키 링에 작성 중인 키를 배치하려면 해당 키 링에 대한 관리자 역할이 있어야 합니다. 역할에 대한 자세한 정보는 사용자 액세스 관리를 확인하십시오.
순환 정책 선택사항. 관리자 역할 을 보유하는 경우 키 작성 시 키에 대한 순환 정책을 설정할 수 있습니다. 인스턴스 정책 이 기본적으로 키에 대한 순환 정책을 작성하기 위해 존재하는 경우, 키 작성 시 해당 정책을 다른 간격으로 겹쳐쓸 수도 있습니다. 인스턴스에 순환 정책이 사용으로 설정되어 있고 키 작성 시 순환 정책을 사용 안함으로 설정 하는 경우, 정책은 여전히 사용 안함 상태에서 키에 기록됩니다. 나중에 이 정책을 사용으로 설정하려는 경우 이를 수행할 수 있습니다. 자세한 정보는 키가 작성된 후 순환 정책 설정 을 참조하십시오.

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

키를 넣을 키링을 이미 알고 있고, 해당 키링의 관리자라면 ‘키링’ 패널로 이동하여 ⋯를 선택한 다음 ‘새 키 추가’를 클릭할 수도 있습니다. 그러면 키 링 변수가 키 링 이름으로 채워진 페이지에서 추가를 클릭하면 표시되는 패널과 같은 패널이 열립니다.

이 서비스에서 생성되는 키는 AES_KW 알고리즘이 지원하는 256비트 대칭 키입니다. 보안 강화를 위해 키는 보안 IBM Cloud 데이터 센터에 있는 FIPS 140-2 레벨 3 공인 HSM(Hardware Security Module)에 의해 생성됩니다.

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

API로 루트 키 작성

전용 Key Protect 오퍼링을 배포하는 경우 리소스를 생성하기 전에 먼저 인스턴스를 초기화해야 합니다.

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

https://<region>.kms.cloud.ibm.com/api/v2/keys
  1. 인증 정보를 검색하여 서비스에서 키에 대한 작업을 수행하십시오.

  2. 다음 curl 명령을 실행하여 루트 키를 작성하십시오.

    $ 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 "x-kms-key-ring: <key_ring_ID>" \
        -H "correlation-id: <correlation_ID>" \
        -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>",
                        "extractable": <key_type>
                    }
                ]
            }'
    

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

Key Protect API를 사용하여 루트 키를 추가하는 데 필요한 변수들을 설명합니다.
가변 설명
지역 필수. Key Protect 인스턴스가 있는 지리적 영역을 나타내는 us-south 또는 eu-gb와 같은 지역 약어입니다. 자세한 정보는 지역 서비스 엔드포인트를 참조하십시오.
IAM_token 필수. 사용자의 IBM Cloud 액세스 토큰입니다. curl 요청에 Bearer 값을 포함하여 IAM 토큰의 전체 컨텐츠를 포함하십시오. 자세한 정보는 액세스 토큰 검색을 참조하십시오.
instance_ID 필수. Key Protect 서비스 인스턴스에 지정된 고유 ID입니다. 자세한 정보는 인스턴스 ID 검색을 참조하십시오.
key_ring_ID 선택사항. 새로 작성되는 키가 일부가 되게 할 대상 키 링의 고유 ID입니다. 지정되지 않으면 헤더가 자동으로 '기본값'으로 설정되고 키는 지정된 Key Protect 서비스 인스턴스의 기본 키 링에 있습니다. 자세한 정보는 키 그룹화를 참조하십시오.
correlation_ID 트랜잭션을 추적하고 상관시키는 데 사용되는 고유 ID입니다.
key_name 필수. 키를 쉽게 식별할 수 있도록 사람이 읽을 수 있는 이름입니다. 중요사항: 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오.
alias_list 키에 지정되었으며 사용자가 읽을 수 있는 하나 이상의 고유한 별명입니다. 중요사항: 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오. 각 별명은 영숫자여야 하며, 대소문자를 구분하고, 대시(-) 또는 밑줄(_) 이외의 특수 문자나 공백을 포함할 수 없습니다. 별명은 버전 4 UUID가 될 수 없으며 Key Protect 예약 이름이 아니어야 합니다(allowed_ip, key, keys, metadata, policy, policies, registration, registrations, ring, rings, rotate, wrap, unwrap, rewrap, version, versions). 별명 크기는 2 - 90자(포함)일 수 있습니다.
key_description 키에 대한 자세한 설명입니다. 중요사항: 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오.
expiration_date 선택사항. 시스템에서 키가 만료되는 날짜와 시간으로, RFC 3339 형식(YYYY-MM-DD HH:MM:SS.SS, 예: 2019-10-12T07:20:50.52Z )으로 표시됩니다. 만료 날짜로 생성된 키는 만료 후 1시간 이내에 자동으로 비활성화 상태로 전환되므로 만료 날짜를 설정할 때는 주의하세요. 이 상태에서 키에 허용되는 작업은 래핑 해제, 래핑 다시 하기, 회전, 삭제뿐입니다. 비활성화된 키는 비활성화된 상태에서 회전하더라도 새 데이터를 암호화(래핑)하는 데 사용할 수 없습니다. 로테이션은 만료일을 초기화하거나 연장하지 않으며 날짜 변경도 허용하지 않습니다. 만료되거나 만료된 키로 암호화된 모든 데이터는 서비스 중단을 방지하기 위해 원래 CRK가 만료되기 전에 새 고객 루트 키(CRK)를 사용하여 다시 암호화하는 것이 좋습니다. 비활성화된 키를 삭제했다가 복원해도 다시 활성 상태로 돌아가지 않습니다. expiration_date 속성이 생략된 경우, 해당 키에는 만료 기간이 적용되지 않습니다.
key_type 키 자료 서비스를 중단할지 여부를 판별하는 부울 값입니다. extractable 속성을 false로 설정하면 서비스가 랩핑 또는 랩핑 해제 오퍼레이션에 사용할 수 있는 루트 키를 작성합니다.

만료 날짜로 생성된 키는 만료 후 1시간 이내에 자동으로 비활성화 상태로 전환되므로 만료 날짜를 설정할 때는 주의하세요. 이 상태에서 키에 허용되는 작업은 래핑 해제, 래핑 다시 하기, 회전, 삭제뿐입니다. 비활성화된 키는 비활성화된 상태에서 회전하더라도 새 데이터를 암호화(래핑)하는 데 사용할 수 없습니다. 로테이션은 만료일을 초기화하거나 연장하지 않으며 날짜 변경도 허용하지 않습니다. 만료되거나 만료된 키로 암호화된 모든 데이터는 서비스 중단을 방지하기 위해 원래 CRK가 만료되기 전에 새 고객 루트 키(CRK)를 사용하여 다시 암호화하는 것이 좋습니다. 비활성화된 키를 삭제했다가 복원해도 다시 활성 상태로 되돌리지는 않습니다. expiration_date 속성이 생략된 경우, 해당 키에는 만료 기간이 적용되지 않습니다.

를 사용하여 만료일이 있는 키의 사용을 모니터링할 수 있습니다 IBM Cloud Logs. 로그는 만료일이 있는 키와 다음 action 값에 대해 responseData.expirationDateresponseData.daysToKeyExpire JSON 속성을 사용하여 만료일과 남은 일 수를 표시합니다: kms.secrets.wrap, kms.secrets.unwrap, kms.secrets.rewrap, kms.secrets.read, kms.secrets.readmetadata, kms.secrets.create, kms.secrets-with-policy-overrides.createkms.secrets.expire 입니다. 또한 GET /api/v2/keys 로의 REST 호출이 성공하면 만료 날짜가 있는 각 키에 대한 expirationDate 속성이 반환됩니다.

개인 데이터의 기밀성을 보호하려면 서비스에 키를 추가할 때 사용자 이름 또는 위치와 같은 PII(Personally Identifiable Information)를 입력하지 않도록 하십시오.

성공한 POST api/v2/keys 응답은 기타 메타데이터와 함께 키의 ID 값을 리턴합니다. ID는 키에 지정되어 있으며 Key Protect API에 대한 후속 호출에 사용되는 고유 ID입니다.

{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.key+json",
        "collectionTotal": 1
    },
    "resources": [
        {
            "type": "application/vnd.ibm.kms.key+json",
            "id": "02fd6835-6001-4482-a892-13bd2085f75d",
            "name": "test-root-key",
            "aliases": [
                "alias-1",
                "alias-2"
              ],
            "description": "A test root key",
            "state": 1,
            "extractable": false,
            "crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
            "imported": false,
            "creationDate": "2020-03-12T03:37:32Z",
            "createdBy": "...",
            "algorithmType": "Deprecated",
            "algorithmMetadata": {
                "bitLength": "256",
                "mode": "Deprecated"
            },
            "algorithmBitSize": 256,
            "algorithmMode": "Deprecated",
            "lastUpdateDate": "2020-03-12T03:37:32Z",
            "keyVersion": {
                "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
                "creationDate": "2020-03-12T03:37:32Z"
            },
            "dualAuthDelete": {
                "enabled": false
            },
            "deleted": false
        }
    ]
}

응답 매개변수에 대한 자세한 설명은 Key Protect REST API 참조 문서를 참조하십시오.

다음에 수행할 작업