GCP KMS로 암호화하는 방법

GCP의 Cloud Key Management Service(KMS)를 사용한 파일 암호화에 대한 기사입니다. 본 기사에서는 gcloud의 설치는 생략하겠습니다.
KMS 개요

Cloud Key Management Service란?



GCP에서 제공되는 암호화 등에서 사용하는 키를 관리해주는 서비스입니다.
개인정보나 인증정보 등 취급이 신중한 데이터는 암호화를 하는 경우가 많다고 생각합니다. 암호화를 할 때 생각하는 고민으로 열쇠 관리가 있습니다. 암호화로 사용하는 열쇠를 KMS로 관리하는 것으로, 열쇠에의 액세스 IAM로 제한할 수 있으므로 관리가 편해집니다.

gcloud를 사용한 암호화 방법



먼저 암호화를 하는 파일을 작성합니다.
$ echo Hello > sample.txt
$ cat sample.txt
Hello

KMS로 이동



브라우저에서 GCP 웹 콘솔을 열고 보안 암호화 키로 이동합니다.






암호화 키를 그룹화하는 키링 목록이 표시됩니다. 화면 상단의 키링 작성에서 작성합니다.






KeyRing 만들기



키링의 이름을 입력하여 만듭니다.






키 만들기



키 이름을 입력하여 생성합니다.
키의 로테이션 기간의 설정은 표준으로 90일 설정으로 되어 있습니다만, 실시하지 않는 설정을 하는 일도 가능합니다. 또, GCP측에서 작성한 열쇠를 사용할 수 없는 경우는, 자전으로 작성한 열쇠를 임포트 해 암호화나 복합화에 사용할 수가 있습니다.






작성한 열쇠를 리스트로 확인할 수가 있습니다.






암호화



gclod 명령의 kms를 사용하여 암호화를 수행합니다.
{project}에 사용 중인 프로젝트를 넣으십시오.
$ gcloud kms encrypt --project {project} \
                     --keyring sample \
                     --key sample \
                     --plaintext-file sample.txt \
                     --ciphertext-file sample.enc \
                     --location global

복합화



복합화는 이하에서 실시할 수 있습니다.
$ gcloud kms decrypt --project {project} \
                     --keyring sample \
                     --key sample \
                     --plaintext-file sample.txt \
                     --ciphertext-file sample.enc \
                     --location global

Terraform을 이용한 키 생성



Terraform이라는 인프라 구축 도구로 키를 만들고 싶다면 다음과 같습니다.
resource "google_kms_key_ring" "keyring" {
  name     = "sample"
  location = "global"
}

resource "google_kms_crypto_key" "key" {
  name     = "sample"
  key_ring = google_kms_key_ring.keyring.id

  lifecycle {
    prevent_destroy = true
  }
}

좋은 웹페이지 즐겨찾기