ヤマムギ

growing hard days.

*

AWS Lambda KMSを使って環境変数を暗号化、復号化する(Python)

   


Lambda内で外部APIを使用する場合などをユースケースとして、環境変数をKMS(AWS Key Management Service)を使って暗号化出来ます。

暗号化した環境変数はLambda関数内でboto3のkms.decrypt()を使って復号化します。

これ、忘れがちというか、AWSマネジメントコンソールにログインしないと見えないんだからと、やらない場合もあるかと思いますが、画面を表示しているだけで見えてしまうのもセキュアじゃないと思うのでやっておいたほうがいいと思います。

ここでは、KMSキーを作成(1USD/月)していますが、Lambdaのデフォルトサービスキーを使用すれば、毎月20,000リクエストまで無料で利用出来ます。
20,000リクエストを超えると、10,000 リクエストあたり 0.03 USDが課金されます。
(2018年1月現在)

KMSの作成

IAMマネジメントコンソールで、[暗号化キー]を選択します。

[キーの作成]ボタンをクリックします。

KMSキーのエイリアスと説明を入力します。

タグを設定します。

作成したキーを使うユーザー、ロールを一覧から選択します。
Lambdaで使用しているIAMロールを選択します。

ポリシーが自動生成されます。
至れり尽くせりです。

Lambdaの設定

AWS Lambdaの環境変数のセクションで、[暗号化の設定]を展開します。

「伝送中に暗号化するKMSキー」と「保管時に暗号化するKMSキー」に先ほど作成したKMSキーを選択します。

「伝送中の暗号化のためのヘルパーの有効化」にチェックを入れると環境変数の横に[暗号化]、[コード]のボタンが現れます。

  • [暗号化]ボタンをクリックすると環境変数の値がマスクされ、暗号化されています。
  • [コード]ボタンをクリックすると、暗号化した値を復号化するためのコードが表示されます。至れり尽くせりです。

例えばこれをこのままこのようなコードに挿入すれば、暗号化した環境変数が復号化されているのがわかります。

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - AWS , ,

ad

ad

  関連記事

AWS Toolkit for Eclipseをセットアップする

AWSでそろそろ課金がされつつありますので、夜中はインスタンスを自動停止して朝自 …

AWS CloudWatch LogsエージェントでAmazon EC2上のNginxのaccess.log , error.log , php-fpm error.log , Linuxのmessages , secureログを収集する

参考ページ クイックスタート: 実行中の EC2 インスタンスに CloudWa …

AWS EC2でAMI(Amazon Machine Image)を作成しておく

前回まででひとまずRedmineを構築するところまで出来たので、念のためスナップ …

S3に置いたMP3ファイルをTwilioから電話再生する(AWS Lambda Python)

Google Calendar Twilio ReminderのTwilioを使 …

PyCharmにAWS CloudFormationプラグインをインストールして入力補完してみる

JetBrainsのPython統合開発環境(IDE)のPyCharmを1年ちょ …

「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Microservices × Serverless On AWS」で運営と懇親会LTをしてきました

「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …

DS18B20センサー+Raspberry Piで取得した温度をAmazon Kinesis FirehoseからS3へ格納してAthenaでクエリーしたのをQuickSightで可視化する

JAWS DAYS 2017でやりますハンズオンの「[IoTハンズオン] Ras …

EFSをEC2(Amazon Linux 2)からマウントする

Amazon Elastic File Systemが東京リージョンに来たことも …

試したい事があるのでAWS でとりあえずAmazon Linuxのサーバを作る

1年間の無料キャンペーン期間中に検証する とある勉強会でせっかくAWSのアカウン …

RedmineをELB(ALB)でAutoScalingグループへ負荷分散

高可用なRedmineを作るためのELBの設定です。 高可用なRedmine R …