Open2

KMS - Key Management Service メモ

kmsのマスターキーを作成する流れ

kms へアクセス

kmsへアクセス

キーの作成

キーの作成をクリック。

キーの作成

キーの設定

状況に応じて設定を変更する。

キーの設定

キーのタイプ

設定 概要
対称 暗号化・復号に同じ鍵をつかうもの
非対称 公開鍵暗号方式などの非対称鍵

キー名

適当な名前をつける。

キーの管理アクセス・キーの使用アクセス

基本ログインしているユーザに付与で大丈夫そう。

KMS cli

キーの情報を取得。

# 作成したマスターキーを取得。
$ aws kms list-keys
{
    "Keys": [
        {
            "KeyId": "xxxxxxxxxxxxxx",
            "KeyArn": "arn:yyyyyyyyyyyyyyyyyyyyyyyyy"
        }
    ]
}

# 変数格納
$ export KEYID=arn:yyyyyyyyyyyyyyyyyyyyyyyyy


暗号化

--plaintext に渡すものは base64 にしておかないといけないみたい

# KEYIDを用いて暗号化
$ aws kms encrypt --key-id $KEYID --plaintext $(echo "test" | base64) --query CiphertextBlob --output text 
AQICAHibmsB7UenOE73AZPaVRPCvb4H6UeE8l+hEJqV3pbp8AwHhdUCjyPO+k2K6W1q9yI26AAAAYzBhBgkqhkiG9w0BBwagVDBSAgEAME0GCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMMGkl/dOZe9zcntYkAgEQgCBf4B7cGHVsdfOa/vHldNMueaAe93mTfchdk6ShnF7pmg==

複合

先ほど出力された文字列を複合します。

# 複合(encryptedに上の文字列保存してます)
$ aws kms decrypt --ciphertext-blob $(cat ./encrypted) --output text --query Plaintext 
dGVzdAo=

$ echo "dGVzdAo=" | base64 -d
test
ログインするとコメントできます