네이버 클라우드 플랫폼의 상품 사용 방법을 보다 상세하게 제공하고, 다양한 API의 활용을 돕기 위해 [설명서][API 참조서]를 구분하여 제공하고 있습니다.

Key Management Service API 참조서 바로가기 >>
Key Management Service 설명서 바로가기 >>

Key Management Service란?

Key Management Service는 암호 기능 운용/구현을 위해 반드시 필요한 요소인 '암호 키 관리' 기능을 제공하는 서비스입니다. 안전성을 최우선으로 고려한 고가용성 시스템에서 엄격하게 관리되는 키를 이용해 고객님의 크리덴셜을 안전하게 보호할 수 있습니다. 키 사용 권한 및 상태 관리는 콘솔에서 편리하게 이용할 수 있으며, Rest API를 이용해 키를 이용한 암/복호화 기능을 사용할 수 있습니다.

일반적으로 데이터를 보호하기 위해서는 암호화를 이용합니다. 하지만 암호화를 적용했다고 해서 데이터가 완벽하게 보호되는 것은 아닙니다. 데이터 보호가 얼마나 잘 되어있나의 기준은 단순히 암호화가 적용되었는지가 되어서는 안 됩니다. 데이터 보호는 암호화 키가 어떻게 관리되고 있는지가 가장 중요합니다. 키는 안전한 키 관리 솔루션을 이용하여 관리하는 것이 가장 좋습니다. 이 경우 중요하게 고려해야 할 요소는 데이터 통제권의 보장입니다. 데이터 통제권의 보장이란, 필요한 시점에 데이터에 접근할 수 있어야 함은 물론이고 허가 되지 않은 접근은 원천적으로 차단되어야 함을 의미하는 접근 제어의 원칙입니다. 키를 외부에 위탁하여 보관하는 경우, 데이터 복호화가 가능한 외부 접점이 늘어나게 되므로 데이터 통제권에 대한 위협이 증가하게 됩니다.

가장 잘 알려진 안전한 암호화 키 관리의 사례 중 하나는 키를 계층적으로 관리하는 것입니다. 즉, 데이터 암호화에 직접 이용되는 키를 또 다른 키로 암호화하여 보호합니다. 이때 키를 암호화하는 또 다른 키를 일반적으로 마스터키라는 용어로 부르게 됩니다. 마스터키를 조직 내/외부의 키 관리 솔루션을 이용하여 관리하면 데이터 통제권에 대한 위협을 감소시킬 수 있습니다. 이러한 암호화 방식을 '봉투 암호화(Envelope Encryption)'라고도 부릅니다. 즉, 데이터를 직접 암호화하여 보호하는 것이 아니라 데이터를 암호화한 암호 방식을 보호함으로써 데이터 기밀성과 통제권을 모두 만족시킬 수 있습니다.

이렇듯, Key Management Service는 데이터 보호 서비스라기보다는 데이터 보호를 위한 기반 기능을 제공하는 서비스입니다. 아래 내용을 통해 조금 더 자세히 알아보도록 하겠습니다.

시작하기 전에

용어

본 설명서(구, 사용자 가이드)에서 사용하는 용어에 대한 설명은 다음과 같습니다.

  • 암호화
    키를 이용해 데이터(평문)를 무작위로 조작하여 의미를 파악할 수 없는 정보(암호문)로 변환하는 과정입니다.
  • 복호화
    암호화를 통해 변환된 암호문을 원래의 데이터(평문)으로 변환하는 과정입니다.
  • 대칭키 방식 암호화
    암호화와 복호화에 동일할 키를 이용하는 암호 방식입니다. 데이터 비트에 치환과 전치를 반복 수행하여 암호문/평문을 생성합니다. 데이터 기밀성 보장을 위한 암호화는 일반적으로 대칭키 방식을 이용합니다.
  • 비대칭키 방식 암호화
    데이터 암/복호화키 암호화와 복호화에 다른 키를 이용하는 암호 방식입니다. 데이터와 키를 수학적 원리를 이용해 계산함으로써 암호문/평문을 생성합니다. 이때 이용되는 키는 공개되는 키값과 기밀성을 유지해 보호해야 하는 키값의 쌍으로 이루어져 있으며, 공개키 방식 암호화라고도 불립니다.
  • 크리덴셜
    데이터키 뿐만 아니라 패스워드, 인증서의 개인키 등 자격 증명에 이용되는 모든 데이터를 지칭합니다.
  • 마스터키(또는 키)
    고객이 Key Management Service에 생성하여 관리하는 키를 의미합니다. 어떠한 경우에도(시스템 운영자라 할지라도) 키값을 직접적으로 확인할 수 없으며, Key Management Service시스템 외부로 노출되지 않습니다. 일반적으로 데이터키 또는 크리덴셜을 봉인하는 용도로 사용하는 것이 좋습니다. Key Management Service 이용 가이드에서는 키 또는 마스터키라는 용어로 지칭합니다.
  • 데이터키
    데이터 암호화에 직접적으로 적용되는 키입니다. 고객이 직접 관리하는 키를 의미하며, 본 가이드에서는 데이터키라는 용어로 구분하여 지칭합니다.
  • 루트키
    Key Management Service 시스템을 보호하는 시스템 최상위 키입니다. Key Management Service의 모든 키 데이터는 루트키로 암호화되어 스토리지에 저장됩니다.
  • 봉인
    데이터키 또는 크리덴셜을 암호화하는 행위를 의미합니다.
  • 회전
    여러 암호학적 위협에 대비하여 키를 갱신하는 작업입니다.
  • 키 저장소
    Key Management Service 이용 고객당 하나씩 생성되는 키 저장 공간입니다. 고객이 생성하는 키는 이곳에 생성되며, Key Management Service콘솔을 통해 접근하여 관리할 수 있습니다.

Key Management Service 키 관리 정책

데이터키

고객에 의해 관리되는 키로, 데이터 암/복호화에 직접 이용됩니다. Key Management Service를 이용해 관리되는 키로 보호된다면 관리적 측면에서 부담을 덜 수 있습니다. Key Management Service를 이용해 데이터키를 보호하는 방법에는 두 가지가 있습니다. 데이터키를 고객이 직접 만들어 마스터키로 봉인하는 방법과, Key Management Service의 데이터키 생성 API를 이용하는 방법입니다. 후자의 방법을 이용하면, 안전하게 생성된 임의의 데이터키를 마스터키로 봉인된 형태로 얻을 수 있기 때문에 유용합니다.

마스터키

고객이 Key Management Service에 생성한 키로, 생성 및 회전, 삭제까지 모두 고객의 관리하에 운영됩니다. 키 저장소 내의 모든 키를 관리하는 Key Management Service 관리자 또는 할당된 키만을 관리하는 키 매니저 권한을 가진 사용자는 콘솔을 이용해 편리하게 키를 관리할 수 있습니다.

루트키

고객이 생성한 키는 시스템 운영 키 또는 루트키라고 불리는 키로 암호화되어 Key Management Service 내부 스토리지에 저장됩니다. 루트키는 안전한 키 생성 절차를 통해 생성됩니다. 이후에는 루트키 역시 고객의 키와 동일한 관리 정책으로 운영됩니다. 예를 들어, 루트키 역시 1년 이내에 회전되어 갱신되며, 오프라인으로 설정된 접근권한을 가진 소수의 인원만 관리적 목적하에 접근 가능합니다. 루트키의 분실 또는 혹시 모를 루트키 관리자의 악의적 행위에 대비하여, 루트키는 다수의 조각으로 분할되어 각각 물리적 보안 매체에 저장됩니다. 이 키 조각을 관리하는 3명의 관리자는 물리적 보안 매체를 봉인한 후, 시스템이 운영되는 IDC에 설치된 내화 데이터 금고에 지역적으로 격리되어 보관됩니다. 한번 봉인된 키는 엄격한 절차를 거쳐 접근 제어가 이루어집니다.

Key Management Service 사용하기

Key Management Service 이용 신청을 마친 고객은 고유한 키 저장소가 생성됩니다. 생성된 키는 모두 고객의 키 저장소 내에 생성되며, 보유 권한에 따라 키를 관리하고 사용할 수 있습니다. 키 저장소에 키를 생성하고 관리하기 위해서는 콘솔 접근 권한 설정이 필요합니다.

1. Key Management Service 콘솔 접속

Key Management Service 콘솔을 이용하여 키 저장소에 접근하기 위해서는 Key Management Service 관리자 또는 사용자 권한 중 하나가 필요합니다. Key Management Service 관리자는 Key Management Service 키 저장소 내의 모든 키를 관리하는 사용자로, 콘솔 접속을 통해 모든 키에 대해 관리 기능을 이용할 수 있습니다. Key Management Service 사용자는 키 저장소의 사용 권한을 가진 사용자로, 콘솔을 통해 사용 권한을 가진 키에 대해서만 확인이 가능합니다.

Key Management Service 관리자 권한 부여하기

① 특정 사용자에게 Key Management Service 관리자 권한을 부여하기 위해서는 먼저 Sub Accounts 서비스를 선택합니다.

② Key Management Service 관리자 권한을 부여하고자 하는 서브 계정을 선택합니다.

③ 서브 계정 상세 화면에서 정책의 추가를 선택합니다.

④ 선택된 서브 계정의 정책에 NCP_KMS_MANAGER 정책을 추가합니다.

Key Management Service 사용자 권한 부여하기

① 특정 사용자에게 Key Management Service 사용자 권한을 부여하기 위해서는 먼저 Sub Accounts 서비스를 선택한 후, Key Management Service 사용자 권한을 부여하고자 하는 서브 계정을 선택합니다.

② 서브 계정 상세 화면에서 정책의 추가를 선택합니다.

③ 선택된 서브 계정의 정책에 NCP_KMS_USER 정책을 추가합니다.

2. 키 생성

키 생성을 위해서는 NCP_KMS_MANAGER(Key Management Service 관리자) 권한이 필요합니다.

① 먼저, 키 생성 버튼을 눌러 키 저장소에 키를 생성합니다.

② 키를 생성하기 위해서 키 정보를 입력합니다.

  • 키 이름
    키의 고유한 이름입니다. 한 고객의 키 저장소에서 다른 키의 이름과 동일한 이름을 중복해서 가질 수 없습니다.
  • 용도
    크게 대칭키 방식과 비대칭키 방식의 두 가지 타입이 있으며, 각각 '암/복호화'와 '서명/검증'에 이용될 수 있습니다. 암/복호화는 최대 32KB 크기의 데이터를 보호할 수 있으며, 주로 크리덴셜 봉인에 사용합니다. 서명/검증은 최대 8KB 크기 메시지의 서명값을 생성하고, 검증할 수 있습니다. 각각에 사용되는 키 방식은 아래와 같습니다.

    암/복호화 : AES256-GCM96
    암/복호화 및 서명/검증 : RSA-2048
    서명/검증 : ECDSA-P256

  • 회전 주기
    암호학적 공격에 대비하여 암호화 키는 주기적으로 '회전'이라는 작업을 통해 갱신되어야 합니다. 키는 1년(365일) 이내 회전될 것을 권고하고 있습니다. 키가 회전되어 새로운 버전으로 갱신되면, 이전 버전의 키를 이용하던 사용자들은 가급적 빠른 시일내에 새로운 버전의 키로 갱신(reencrypt) 처리해야 합니다.
  • 메모
    키에 대한 간략한 설명을 추가할 수 있습니다.

③ 타이틀에서 총 키의 개수를 바로 확인할 수 있습니다. 생성된 키의 정보를 확인합니다.

  • 상태
    현재 키의 상태와 가장 최근 사용된 시기를 확인할 수 있습니다. 상태에 대한 자세한 내용은 5. 키 상태 관리를 참고하세요.
  • 키 Tag
    키 이름과 더불어 키를 구분하는 고유한 정보입니다. 키 Tag는 Rest API 암/복호화 기능을 이용할 때 사용합니다. 기밀 정보로 취급되지 않습니다.
  • 타입
    키가 사용하는 암호 방식을 표시합니다.
  • 버전
    현재 버전을 확인합니다. 상세 표시 창에서는 키에 연결된 전체 버전과 갱신 일시를 확인할 수 있습니다. 버전에 대한 자세한 내용은 4. 키 버전 관리를 참고하세요.
  • 회전 주기
    키가 자동으로 회전되는 주기를 '일'단위로 표시합니다.
  • 사용 횟수
    키를 이용해 암/복호화 기능이 호출 된 횟수를 표시합니다. (Client Rest API 호출 횟수와 같습니다.)

3. 키 사용 권한 관리

키를 사용하기 위해서는 사용 권한이 필요하며, 권한은 계정에 역할을 매핑하여 관리합니다(권한 = 서브 계정 + 역할). 키 사용 권한은 서브 계정에게만 부여될 수 있습니다. 서브 계정 생성이 필요하다면 Sub Accounts를 참고하세요. 키 권한 관리를 위해서는 NCP_KMS_MANAGER(Key Management Service 관리자) 또는 KMS_KEY_MANAGER(키 관리자) 권한이 필요합니다.

역할

  • Manager
    키의 관리자로, 키의 관리 및 삭제가 가능합니다. 뿐만 아니라, 키를 이용해 수행할 수 있는 모든 기능을 사용할 수 있습니다.
  • Encryptor
    키를 통해 암호화 및 서명 기능만 사용할 수 있는 사용자입니다.
  • Decryptor
    키를 통해 복호화 및 검증 기능만 사용할 수 있는 사용자입니다.
  • Encryptor/Decryptor
    키를 통해 암/복호화 및 서명/검증 기능을 모두 사용할 수 있는 사용자입니다.
  • Reviewer
    키의 사용 이력을 조회할 수 있는 사용자입니다. 예를 들어, 키를 이용해 암/복호화는 직접 이용하지 않지만 키가 잘 사용되고 있는지 등에 관한 현황을 조회하고자 하는 사용자에게 부여합니다.

서브 계정에게 키 사용 권한 부여하기

키 권한 관리를 선택합니다.

키 권한 관리 창에서는 현재 키의 사용 권한 목록을 확인할 수 있습니다. 현재 아무도 사용 권한이 없습니다.

③ 서브 계정과 키를 사용할 역할을 선택하고 키 사용 권한을 추가합니다. 키 사용 권한이 부여된 서브 계정으로 권한 부여 알림이 발송됩니다.

서브 계정의 키 사용 권한 삭제하기

① 키 사용 권한 목록에서 삭제할 권한을 확인하여 삭제합니다. 이제 삭제된 권한의 서브 계정 사용자는 삭제된 역할로 키 사용이 불가합니다. 키 사용 권한이 삭제된 서브 계정으로 권한 삭제 알림이 발송됩니다.

4. 키 버전 관리

모든 키는 버전으로 구분됩니다. 키가 처음 생성되면 버전 1이며 이후 회전을 수행하여 갱신됩니다. 암복호화 기능 이용시 정확한 버전이 설정되어야 올바른 결과를 얻을 수 있습니다. 키가 회전되어 버전이 갱신되면, 이전 버전의 키는 더이상 암호화에 사용될 수 없고 오로지 복호화 용도로만 사용할 수 있습니다. 암호화 기능은 오직 가장 최신 버전의 키로만 이용할 수 있습니다. 키 버전 관리를 위해서는 NCP_KMS_MANAGER(Key Management Service 관리자) 또는 KMS_KEY_MANAGER(키 관리자) 권한이 필요합니다. KMS_KEY_REVIEWER(키 리뷰어)는 버전 정보만 확인 가능합니다.

회전

모든 키는 생성 시 설정된 회전 주기마다 자동으로 회전을 수행합니다(회전 주기를 지정하지 않았다면 기본 90일로 설정). 자동 회전과는 별개로 수동 회전도 가능합니다. 단, 수동 회전을 수행하는 것은 다음 회전 일정에 영향을 주지 않습니다. 예를 들어, 90일의 회전 주기를 가진 키가 다음 회전일까지 10일이 남아있던 도중에 지금 수동 회전을 수행한다면, 이 키는 10일 후에 예정대로 자동 회전을 수행합니다. 수동 회전은 현재 버전의 키를 즉시 갱신해야 할 경우 사용합니다.

수동으로 키 회전하기

① 키를 수동으로 회전시켜 새로운 버전으로 갱신하기 위해 키 회전을 선택합니다.

② 확인을 눌러 키를 회전합니다. 키가 회전되면 키 사용 권한이 있는 서브 계정으로 키 회전 알림이 발송됩니다.

③ 현재 버전을 확인합니다.

회전 주기 변경

① 설정된 자동 회전 주기를 변경하기 위해 키 정보에서 회전 주기 Edit를 선택합니다.

② 변경하고자 하는 주기를 '일' 단위로 입력합니다.

③ 변경된 주기의 반영은 현재 다음 회전일로 설정된 일자에 이루어집니다. 즉, 이 키는 다음 회전일인 2018년 4월 19일에 자동 회전이 수행된 후, 변경된 회전 주기 120일을 반영하여 그 다음 자동 회전일을 설정합니다.

버전 상태 관리

키가 회전되었다면 가능한한 빠른 시일 내 '재암호화'를 수행하여 이전 버전을 비활성화하는 것이 좋습니다. 비활성화된 버전은 더이상 사용될 수 없습니다. 재암호화에 관한 기능은 Key Management Service Rest API에서 확인하세요.

① 키의 버전을 확인하기 위해 키 정보에서 현재 버전의 상세보기를 선택합니다.

② 버전 정보 창에서는 키의 모든 버전 정보를 확인할 수 있습니다.

③ 비활성화하고자 하는 버전을 선택한 후, 버전 비활성화를 선택합니다.

④ 비활성화된 버전을 확인합니다.

⑤ 비활성화된 버전은 다시 활성화 상태로 전환할 수 있습니다. 비활성화 버전을 선택하며 버전 활성화를 선택합니다.

⑥ 활성화된 버전을 확인합니다.

5. 키 상태 관리

모든 암호 키는 명확하고 일정한 기준에 따라 관리되어야 합니다. 키는 내부적으로 아래와 같은 생명주기를 가지며, 모든 생명주기는 고객에 의해 관리됩니다. 또한, 키의 상태는 해당 키의 모든 버전에 상속됩니다. 예를 들어, 3개 버전을 가지고 있는 키의 상태가 사용 중지로 전환되면 3개의 버전 모두 사용 중지 상태가 됩니다. 만약 다시 활성화되어 사용 가능 상태가 되면 버전 상태는 자동으로 이전에 가지고 있던 상태로 돌아갑니다. 키 상태 관리를 위해서는 NCP_KMS_MANAGER(Key Management Service 관리자) 또는 KMS_KEY_MANAGER(키 관리자) 권한이 필요합니다.

상태

  • 사용가능
    모든 암/복호화 요청에 이용될 수 있는 키입니다. 생성된 키는 자동으로 활성화되어 사용가능 상태로 전환되며, 언제든지 비활성화하여 사용을 중지할 수 있습니다. 사용가능 상태의 키는 관리 과금 대상입니다.
  • 사용중지
    비활성화되어 사용이 중지된 키이며, 언제든지 다시 활성화하여 사용가능 상태로 전환할 수 있습니다. 언제든지 사용가능한 상태로 유지하기 위해 사용중지 상태의 키는 회전 스케줄을 따릅니다. 즉, 사용중지 상태의 키라고 할지라도 다음 회전일에 예정대로 회전을 수행하여 새로운 버전으로 갱신됩니다. 사용중지 상태의 키는 암복호화 요청에 이용될 수 없으니 주의하세요. 사용중지 상태의 키는 관리 과금 대상입니다.
  • 삭제요청
    더이상 사용되지 않는 키는 삭제하여 오사용 및 불필요한 유지/관리를 없애도록 해야 합니다. 삭제요청 상태의 키는 고객의 키 삭제 요청 이후 72시간 후, 영구적으로 삭제됩니다. 고객의 요청에 의해 삭제된 키는 어떠한 상황에서도 복구될 수 없습니다. 삭제요청 시에는 더 이상 사용하고 있는 사용자가 없는지 확인 후, 신중히 삭제요청하시기 바랍니다. 최종 삭제 이전까지 삭제 요청은 취소할 수 있으며, 삭제 요청 취소된 키는 즉시 사용중지 상태로 전환됩니다. 사용중지 상태와 마찬가지로 삭제요청 상태의 키는 회전 스케줄을 따르며, 관리 과금 대상입니다. 만약, 이미 해당 키에 대해 사용자가 전혀 없는 상황에서 키를 즉시 삭제해도 데이터 유실에 대한 우려가 크지 않을 경우 72시간의 삭제 대기 시간이 불필요할 수도 있습니다. 키를 즉시 삭제하고 싶을 경우, 삭제요청 후 활성화되는 즉시삭제 버튼을 클릭하세요.
  • 삭제
    영구적으로 삭제된 키이며, 고객이 직접 확인할 수 없습니다. Key Management Service 내에서도 키 자체는 삭제된 상태이며, 키의 정보 및 사용 이력 등의 관리 정보만 조회가 가능한 상태입니다(고객센터에 요청). 삭제된 키의 관리 정보는 1년간 유지된 후 삭제됩니다. 만약, 관리 정보를 즉시 삭제해야 할 필요가 있는 경우 고객센터를 통해 관리 정보를 삭제 요청해주시기 바랍니다.

키 비활성화하기

① 사용가능 상태의 키를 선택하여 키 비활성화 버튼을 클릭합니다.

② 현재 사용자를 확인합니다. 키를 비활성화하면 사용자들이 키를 사용하지 못하게 되므로 주의하세요. 키 사용 권한이 부여된 서브 계정으로 키 상태 변경 알림이 발송됩니다.

③ 사용중지 상태를 확인합니다.

키 활성화하기

① 사용중지 상태의 키를 선택하여 키 활성화 버튼을 클릭합니다. 키 사용 권한이 부여된 서브 계정으로 키 상태 변경 알림이 발송됩니다.

② 사용가능 상태를 확인합니다.

6. 키 사용 이력 관리

모든 암호화 키는 항상 여러 위협에 대비해야 합니다. 이를 위해 키의 모든 사용 이력을 조회하여 키가 적절하게 운용되고 있는지 모니터링하세요. 키 사용 이력은 NCP_KMS_MANAGER(Key Management Service 관리자) 또는 KMS_KEY_MANAGER(키 관리자), KMS_KEY_REVIEWER(키 리뷰어) 권한을 가진 사용자만 확인할 수 있습니다.

키 사용 이력 보기

① 키 사용 이력을 확인하기 위해 키 이력 보기를 선택합니다.

② 최근 100건의 사용 이력을 확인합니다.

7. 키 삭제

더 이상 사용되지 않는 키를 삭제합니다. 암호화 키의 분실은 곧 암호화된 데이터의 분실입니다. 키가 삭제되면 데이터는 복구할 수 없습니다. 잘못된 삭제에 대한 예방으로 키는 완전히 삭제되기 이전에 3일(72시간)의 삭제 대기 시간을 가집니다. 삭제 요청된 키는 삭제예정 상태로 전환되며, 사용중지 상태와 마찬가지로 암복호화 요청에 이용될 수 없습니다. 만약, 72시간 재고할 필요가 없다면 즉시 삭제가 가능합니다. 예를 들어, 키의 사용자가 한 명도 없는 경우 키가 삭제된다고 하더라도 데이터 유실의 상황이 우려되지 않습니다. 삭제된 키는 어떠한 경우에도 복구되지 않습니다. 신중히 검토한 후 삭제하시기 바랍니다.

키 삭제 요청하기

① 키를 삭제하기 위해서는 먼저 키 삭제 요청을 클릭합니다.

② 만약 키의 사용자가 1명 이상인 경우에는 삭제 요청을 위해 키 이름을 입력하고 삭제 요청을 클릭합니다. 키 사용 권한이 부여된 서브 계정으로 키 삭제 알림이 발송됩니다.

③ 삭제 요청으로 변경된 상태와 최종 삭제일을 확인할 수 있습니다.

④ 키는 최종 삭제되기 전까지 삭제 요청을 철회할 수 있습니다. 삭제 요청을 철회하기 위해서는 키 삭제 취소를 클릭합니다. 키 삭제 요청이 철회된 키는 즉시 사용중지 상태로 전환됩니다. 키 사용 권한이 부여된 서브 계정으로 키 상태 변경 알림이 발송됩니다.

키 즉시 삭제하기

① 키를 즉시 삭제하기 위해서는 최종 삭제일 옆의 즉시 삭제를 클릭하여 최종 삭제합니다.

8. Rest API 사용하기

키를 이용한 암복호화 기능은 Rest API를 이용해 호출할 수 있습니다. API는 API Gateway를 통해 호출됩니다. Key Management Service Rest API에서 확인하세요. API Gateway를 통해 제공되는 API 사용법은 API Gateway 사용자 가이드를 참조하세요.

연관 정보

본 상품은 글로벌 리전 서비스로도 제공됩니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...