2015年10月11日日曜日

Boto3(Python)でKMS(AWS Key Management Service)を使って暗号化と復号化をしてみた


KMS(AWS Key Management Service)とは、
  • データの暗号化に使用される暗号化キーの作成と管理を容易にする
    マネージド型サービスです。
  • サービスからエクスポートすることはできないキーを作成できます。
    このキーを使用して、定義するポリシーに基づいてデータの暗号化と
    復号化を行うことができます。
といったサービスです。

Boto3(Python)の練習がてらに、KMSで管理しているキーを使って、
文字列の暗号化と復号化を試してみました。

KMSの設定


まずはKMSでキーを作成します。
マネジメントコンソールではKMS専用の管理画面はなく、IAMの管理画面から行います。


キーを東京リージョンに作り場合は、あらかじめフィルタの設定を
「東京リージョン」に指定しておく必要があります。



今回は、管理者は無しで進めました。


今回は、アクセス許可も定義せず進めました。




最後にキーのARNを確認しておきます。Boto3での暗号化/復号化に利用します。


Boto3のコード


コードは下記の通りです。
        keyId = 'arn:aws:kms:ap-northeast-1:000000000000:key/00000000-0000-0000-0000-000000000000'
        text = 'abc'        
        kms = boto3.client('kms')

        enc = kms.encrypt(
            KeyId = keyId,
            Plaintext = text
        )['CiphertextBlob']

        dec = kms.decrypt(
            CiphertextBlob = enc
        )['Plaintext']
実行すると"dec"の値が"abc"であることが確認できます。

0 コメント: