1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GCP Cloud KMS使って、セキュリティーデータファイルを暗号化

Last updated at Posted at 2019-12-11

実施手順のまとめ

  • キーリングおよび暗号鍵の作成
  • KMSの暗号鍵で秘密ファイルを暗号化する
  • 秘密ファイルを利用する際、暗号鍵で復号化する

キーリングおよび暗号鍵の作成

Cloud Build で SSH 認証鍵を使用するには、Cloud KMS CryptoKey を使用して鍵を暗号化、復号する必要があります。CryptoKey は KeyRing オブジェクトに格納されます。

KeyRing と CryptoKey を作成するには、gcloud kms keyrings create および gcloud kms keys create コマンドを使用します。

KeyRing を作成するには、shell またはターミナル ウィンドウで次のコマンドを実行します。このチュートリアルでは、KeyRing my-private-keyring に名前を付けます。

# Create a Cloud KMS KeyRing
gcloud kms keyrings create my-private-keyring --location=global

コンソール画面で作成結果確認
gcp_kms_001.png

次に、my-private-key という CryptoKey を作成します。このコマンドは、my-private-keyring KeyRing に my-private-key CryptoKey を作成します。

# create a CryptoKey 
gcloud kms keys create my-private-key --location=global --keyring=my-private-keyring --purpose=encryption

コンソール画面で作成結果確認
gcp_kms_002.png

KMSの暗号鍵で秘密ファイルを暗号化する

秘密ファイルがあります。

my_secret.txt
I'm falling in love with Aosora

これは見られたら大変なので暗号化をします。
暗号化するには、gcloud kms encrypt コマンドを使用します。

次のコマンドを実行します。正しいパスを指定してください。

# Encrypt a secret
gcloud kms encrypt --plaintext-file=/full/path/to/my_secret.txt \
--ciphertext-file=/full/path/to/output/my_secret.txt.enc   \
--location=global --keyring=my-private-keyring --key=my-private-key

# 暗号化された内容を見てみる
cat my_secret.txt.enc 
>
>$u?ڤS??f?C???r??`?p@??4 ?e???I???}??:x&]g???c??C[&??ܡ~l|??o????t?z??/?8?
>                                                                        x	W?C_:? b??Q????Xw?m#?

# 秘密を暗号化しましたので、生データを削除します。
rm my_secret.txt

暗号化(encrypt)するため、'cloudkms.cryptoKeyVersions.useToEncrypt'権限を持つアカウントで実施する必要です。
通常ProjectのEditorでも、この権限はありません。
Ownerアカウントで実施するか、この権限を個別で追加するかという対策は必要です。

秘密ファイルを利用する際、暗号鍵で復号化する

# Decrypt a secret
gcloud kms decrypt --ciphertext-file=/full/path/to/my_secret.txt.enc \
--plaintext-file=/full/path/to/output/my_secret.txt \
--location=global --keyring=my-private-keyring --key=my-private-key

復号化(decrypt)するため、'cloudkms.cryptoKeyVersions.useToDecrypt'権限を持つアカウントで実施する必要です。
通常ProjectのEditorでも、この権限はありません。
Ownerアカウントで実施するか、この権限を個別で追加するかという対策は必要です。


ご覧して頂き、どうも有難う御座います! DSS Ben
1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?