LoginSignup
4
2

More than 3 years have passed since last update.

AWS CLIでKMSを試すメモ

Last updated at Posted at 2019-11-28

前提(用語)

  • カスタマーマスターキー(CMK)
    • AWS側で管理される鍵
    • データの暗号化には直接利用しない
    • マネジメントコンソールであらかじめ作成しておく(持ち込みも可能らしい)
  • カスタマーデータキー(CDK)
    • ユーザーがデータの暗号化に用いる鍵
    • 通常はAWSで暗号化されて保存されており、データの暗号時/複号時に、都度復号化して取得する

概要

データを暗号化/復号化する流れ。暗号化/復号化に用いる鍵(CDK)をKMSで管理する。
CMKはあらかじめマネコン等で作成しておくこと。

手順メモ

1. カスタマーデータキー(CDK)を作成する

% aws kms generate-data-key --key-id "[CMKのキーID]" --key-spec "AES_256"
{
    "Plaintext": "[平文のカスタマーデータキー]", 
    "KeyId": "[CMKのARN]", 
    "CiphertextBlob": "[暗号化されたカスタマーデータキー]"
}

2. データの暗号化

お好きなツールで [平文のカスタマーデータキー] を使ってデータを暗号化

3. [平文のカスタマーデータキー] は破棄する

4. [暗号化されたカスタマーデータキー] を保存する

Base64デコードして保存しておく(後に、平文のカスタマーデータキーの取得に必要)

echo [暗号化されたカスタマーデータキー] | base64 -d > enc.txt

5. [平文のカスタマーデータキー] を取得する

暗号化されたカスタマーデータキーを用いて [平文のカスタマーデータキー] を取得して data-key.txt ファイルに保存する。 data-key.txt に保存される内容は前段で取得した [平文のカスタマーデータキー] と同じ文字列が保存される。

aws kms decrypt --ciphertext-blob fileb://enc --query Plaintext --output text > data-key.txt

6. データの復号化

取得した data-key.txt を用いてお好きなツールで復号化する。

参考

AWS Black Belt Online Seminar AWS Key Management Service (KMS) https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-aws-key-management-service-kms

AWS KMSを使って秘密鍵を管理する | DACエンジニアブログ:アドテクゑびす界 http://yebisupress.dac.co.jp/2017/03/30/aws-kms%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E7%A7%98%E5%AF%86%E9%8D%B5%E3%82%92%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B/

[JAWS-UG CLI] Amazon KMS 入門 (2) データの暗号化・復号化 - Qiita https://qiita.com/domokun70cm/items/a863ae60d4467fc7a790

4
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
4
2