IBM Cloud Docs
수동으로 루트 키 순환

수동으로 루트 키 순환

당신은 회전 할 수 있습니다 루트 키A symmetric wrapping key that is used for encrypting and decrypting other keys that are stored in a data service. 필요에 따라 사용하여IBM Cloud®Hyper Protect Crypto Services.

루트 키를 순환하는 경우 키의 수명이 줄어들고 해당 키로 보호되는 정보의 양이 제한됩니다.

키 순환을 통해 산업 표준 및 암호화 우수 사례를 충족시키는 방법을 알아보려면 키 순환을 참조하십시오.

UI에서 루트 키 순환

그래픽 인터페이스를 사용하여 루트 키를 순환하려는 경우 UI를 사용할 수 있습니다.

키를 새로 작성하거나 기존 루트 키를 서비스로 가져온 후 다음 단계를 완료하여 키를 순환하십시오.

  1. UI에 로그인하십시오.

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

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

  4. KMS 키 페이지에서 테이블을 사용하여 서비스에서 키를 찾아보십시오.

  5. 순환시킬 키를 선택한 후 조치 아이콘 조치 아이콘을 클릭하여 키에 대한 옵션 목록을 여십시오.

  6. 옵션 메뉴에서 키 순환을 클릭하십시오.

    처음에 키에 대한 키 자료를 제공한 경우 서비스에서 저장하고 관리할 새 base64 인코딩 키 자료를 지정하십시오. 키 자료가 다음 요구사항을 충족시키는지 확인하십시오.

    • 128, 192 또는 256비트여야 합니다.
    • base64 인코딩을 사용하여 데이터 바이트(예: 256비트의 경우 32바이트)를 인코딩해야 합니다.
  7. 확인하려면 키 순환을 클릭하십시오.

API로 루트 키 순환

다음 엔드포인트에 대한 POST 호출을 수행하여 루트 키를 순환할 수 있습니다.

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate
  1. 서비스 및 인증용 인증 정보를 검색하여 서비스에서 키에 대한 작업을 수행하십시오.

  2. 순환할 루트 키의 ID를 복사하십시오.

    다음을 통해 서비스 인스턴스의 키 ID를 찾을 수 있습니다.키 목록 검색, 또는 UI에 액세스하여.

  3. 다음 cURL 명령을 실행하여 키를 새 키 자료로 대체하십시오.

    curl -X POST \
      'https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate' \
      -H 'accept: application/vnd.ibm.kms.key_action+json' \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H "x-kms-key-ring: <key_ring_ID>" \
      -H 'content-type: application/vnd.ibm.kms.key_action+json' \
      -d '{
            "payload": "<key_material>"
          }'
    

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

    표 2. 지정된 키를 회전하는 데 필요한 변수를 설명합니다.Hyper Protect Crypto Services
    가변 설명
    region 필수입니다. Hyper Protect Crypto Services 서비스 인스턴스가 상주하는 지리적 영역을 표시하는 지역 약어(예: us-south 또는 au-syd)입니다. 자세한 정보는 지역 서비스 엔드포인트를 참조하십시오.
    port 필수입니다. API 엔드포인트의 포트 번호입니다.
    key_ID 필수입니다. 순환할 루트 키의 고유 ID입니다.
    IAM_token 필수입니다. 사용자의 IBM Cloud 액세스 토큰입니다. cURL 요청에 Bearer 값 등 IAM 토큰의 전체 컨텐츠를 포함하십시오. 자세한 정보는 액세스 토큰 검색을 참조하십시오.
    instance_ID 필수입니다. Hyper Protect Crypto Services 서비스 인스턴스에 지정된 고유 ID입니다. 자세한 정보는 인스턴스 ID 검색을 참조하십시오.
    key_ring_ID 선택사항. 키가 속한 키 링의 고유 ID입니다. 지정되지 않은 경우 Hyper Protect Crypto Services은(는) 지정된 인스턴스와 연관된 모든 키 링에서 키를 검색합니다. 따라서 더욱 최적화된 요청을 위해 키 링 ID를 지정하는 것이 좋습니다.

    참고: x-kms-key-ring 헤더 없이 작성된 키의 키 링 ID는 default입니다. 자세한 정보는 키 링 관리를 참조하십시오.

    key_material

    선택사항. 서비스에 저장하고 관리할 새 base64로 인코딩된 키 자료입니다. 이 값은 키를 서비스에 추가할 때 초기에 키 자료를 가져온 경우 필수입니다.

    처음에 생성된 키를 순환하려면Hyper Protect Crypto Services, 생략 payload 속성을 지정하고 빈 요청 엔터티 본문을 전달합니다. 가져온 키를 순환하려면 다음 요구 사항을 충족하는 키 자료를 제공하세요.

    • 키는 128, 192 또는 256비트여야 합니다.
    • base64 인코딩을 사용하여 데이터 바이트(예: 256비트의 경우 32바이트)를 인코딩해야 합니다.

    성공한 순환 요청은 루트 키가 새 키 자료로 바뀌었음을 표시하는 HTTP 204 No Content 응답을 리턴합니다.

  4. 선택사항: Hyper Protect Crypto Services 서비스 인스턴스에서 키를 찾아보는 다음 호출을 실행하여 키가 순환되었는지 확인하십시오.

    curl -X GET \
    https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys \
    -H 'accept: application/vnd.ibm.collection+json' \
    -H 'authorization: Bearer <IAM_token>' \
    -H 'bluemix-instance: <instance_ID>' \
    

    응답 엔티티-본문에 있는 lastRotateDate 값을 검토하여 키가 마지막으로 순환된 날짜 및 시간을 검사하십시오.

    {
      "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",
          "state": 1,
          "extractable": false,
          "crn": "crn:v1:bluemix:public:hs-crypto:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
          "imported": false,
          "creationDate": "2020-03-12T03:50:12Z",
          "createdBy": "...",
          "algorithmType": "AES",
          "algorithmMetadata": {
            "bitLength": "256",
            "mode": "CBC_PAD"
          },
          "algorithmBitSize": 256,
          "algorithmMode": "CBC_PAD",
          "lastUpdateDate": "2020-03-12T03:50:12Z",
          "lastRotateDate": "2020-03-12T03:49:01Z",
          "keyVersion": {
            "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
            "creationDate": "2020-03-12T03:50:12Z"
          },
          "dualAuthDelete": {
            "enabled": false
          },
          "deleted": false
        }
      ]
    }
    

    keyVersion 속성에는 최신 루트 키 버전에 대해 설명하는 식별 정보가 포함되어 있습니다.

    다음 항목을 사용하여 키에 사용 가능한 버전을 나열할 수도 있습니다. Hyper Protect Crypto Services 키 관리 서비스 API. 자세한 내용은 키 버전 보기를 참조하십시오.

가져오기 토큰을 사용하여 키 순환

초기에 가져오기 토큰을 사용하여 루트 키를 가져온 경우 다음 엔드포인트에 대한 POST 호출을 수행하여 키를 순환할 수 있습니다.

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate
  1. 인증용 인증 정보를 검색하여 서비스에서 키에 대한 작업을 수행하십시오.

    키를 순환시키려면 인스턴스 또는 키에 대한 작성자 또는 관리자 액세스 정책이 지정되어 있어야 합니다. IAM 역할이 Hyper Protect Crypto Services 서비스 조치에 맵핑하는 방법을 알아보려면 서비스 액세스 역할을 확인하십시오.

  2. 순환할 키의 ID를 검색하십시오.

    다음을 수행하여 지정된 키의 ID를 검색할 수 있습니다.GET /v2/keys 요청하거나 UI에서 키를 확인하세요.

  3. 가져오기 토큰을 작성 및 검색하십시오.

  4. 가져오기 토큰을 사용하여 기존 키를 순환하는 데 사용할 키 자료를 암호화하십시오.

    가져오기 토큰을 사용하는 방법을 알아보려면 튜토리얼: 암호화 키 작성 및 가져오기를 확인하십시오.

  5. 다음 cURL 명령을 실행하여 기존 키를 새 키 자료로 대체하십시오.

    curl -X POST \
      https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>/actions/rotate \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'accept: application/vnd.ibm.kms.key_action+json' \
      -H 'content-type: application/vnd.ibm.kms.key_action+json' \
      -d '{
      "type": "application/vnd.ibm.kms.key+json",
      "name": "<key_alias>",
      "description": "<key_description>",
      "extractable": <key_type>,
      "payload": "<encrypted_key>",
      "encryptionAlgorithm": "RSAES_OAEP_SHA_1",
      "encryptedNonce": "<encrypted_nonce>",
      "iv": "<iv>"
    }'
    

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

    표 3. Hyper Protect Crypto Services API를 사용하여 키를 복원하는 데 필요한 변수를 설명합니다.
    가변 설명
    region 필수입니다. Hyper Protect Crypto Services 서비스 인스턴스가 상주하는 지리적 영역을 표시하는 지역 약어(예: us-south 또는 au-syd)입니다. 자세한 정보는 지역 서비스 엔드포인트를 참조하십시오.
    port 필수입니다. API 엔드포인트의 포트 번호입니다.
    key_ID 필수입니다. 순환할 키의 고유 ID입니다.
    IAM_token 필수입니다. 사용자의 IBM Cloud 액세스 토큰입니다. cURL 요청에 Bearer 값 등 IAM 토큰의 전체 컨텐츠를 포함하십시오. 자세한 정보는 액세스 토큰 검색을 참조하십시오.
    instance_ID 필수입니다. Hyper Protect Crypto Services 서비스 인스턴스에 지정된 고유 ID입니다. 자세한 정보는 인스턴스 ID 검색을 참조하십시오.
    key_alias 필수입니다. 키를 쉽게 식별할 수 있도록 해 주는 사용자가 읽을 수 있는 고유 이름입니다. 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오.
    key_description 키에 대한 자세한 설명입니다. 개인정보를 보호하려면 개인 데이터를 키의 메타데이터로 저장하지 마십시오.
    encrypted_key 필수입니다. 가져오기 토큰으로 암호화된 새 키 자료입니다. 값은 base64로 인코딩되어야 합니다. 키 자료가 다음 요구사항을 충족하는지 확인하십시오.

    • 키는 128, 192또는 256비트여야합니다.
    • base64 인코딩을 사용하여 데이터 바이트(예: 256비트의 경우 32바이트)를 인코딩해야 합니다.

    자세히 알아보려면 튜토리얼: 암호화 키 작성 및 가져오기를 참조하십시오.

    key_type 키 자료 서비스를 중단할지 여부를 판별하는 부울 값입니다. 설정하면 extractable ~에 귀속하다 false, 서비스는 해당 키를 다음에 사용할 수 있는 루트 키로 지정합니다.wrap 또는 unwrap 운영.
    encrypted_nonce 필수입니다. 요청의 일부로 전송하는 비트가 수신하는 비트와 정확하게 일치하도록 보장하는 AES-GCM 암호화된 난스(nonce)입니다. 난스(nonce)는 복원하는 키를 유효성 검증합니다. 자세한 정보는 학습서: 암호화 키 작성 및 가져오기를 참조하십시오.
    iv 필수입니다. 난스(nonce)를 암호화할 때 AES-GCM 알고리즘으로 생성되는 초기화 벡터(IV)입니다. 이 값은 Hyper Protect Crypto Services 시스템에 저장하기 위해 키를 디코딩하는 데 사용됩니다. 자세한 정보는 학습서: 암호화 키 작성 및 가져오기를 참조하십시오.

    성공한 순환 요청은 루트 키가 새 키 자료로 바뀌었음을 표시하는 HTTP 204 No Content 응답을 리턴합니다.

  6. 선택사항: 키에 대한 세부사항을 검색하여 키가 순환되었는지 확인하십시오.

    curl -X GET \
    https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_id>/metadata \
    -H 'authorization: Bearer <IAM_token>' \
    -H 'bluemix-instance: <instance_ID>'
    -H 'accept: application/vnd.ibm.kms.key+json'
    

    응답 엔티티-본문에 있는 lastRotateDatekeyVersion 값을 검토하여 키가 마지막으로 순환된 날짜 및 시간을 검사하십시오.

    Hyper Protect Crypto Services API를 사용하여 키에 사용할 수 있는 버전을 나열할 수도 있습니다. 자세한 내용은 키 버전 보기를 참조하십시오.

다음에 수행할 작업