LoginSignup
0
1

More than 3 years have passed since last update.

GCPのKMSで暗号化する方法

Posted at

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のWebコンソールを開き、セキュリティの暗号鍵に移動します。

image01.jpg

暗号鍵をグルーピングするキーリングのリストが表示されます。画面上部のキーリングの作成から作成していきます。

image2.jpg

KeyRingの作成

キーリングの名を入力して作成します。

image3.jpg

Keyの作成

鍵名を入力して作成をします。
鍵のローテーション期間の設定は標準で90日設定とされていますが、実施しない設定をする事も可能です。また、GCP側で作成した鍵を使用する事が出来ない場合は、自前で作成した鍵をインポートして暗号化や複合化に使用する事が出来ます。

image4.jpg

作成した鍵をリストで確認する事が出来ます。

image4-5.png

暗号化

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
  }
}
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1