share facebook facebook2 twitter menu hatena pocket slack

2015.12.14 MON

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

鈴木 宏康

WRITTEN BY鈴木 宏康

KMS(AWS Key Management Service)とは、

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

といったサービスです。

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

KMSの設定

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

2015-10-11_20-29-30

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

2015-10-11_20-32-05

2015-10-11_20-34-13

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

2015-10-11_20-35-36

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

2015-10-11_20-37-27

2015-10-11_20-38-31

2015-10-11_20-39-55

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

2015-10-11_21-10-40

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”であることが確認できます。

元記事はこちら

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

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。