ヤマムギ

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キーを選択します。

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

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

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


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

  関連記事

東京リージョンでAWS Control Towerランディングゾーンをセットアップする

AWS Control Towerの最初の画面で[ランディングゾーンの設定]を押 …

AWS Lambda(Python3.7)でPandocを実行する

昨日まで(AWS Batch) 昨日までは、Pandocを実行して、S3バケット …

Extend Switch Roles(Chromeのアドオン)で6つ以上のスイッチロール履歴

最近アカウントIDを忘れたりすることも多くなったので、切り替えに手間取ることがあ …

TwilioからのリクエストをAPI Gateway+LambdaでTwimlを返して処理する

Twilioで着信した時のリクエスト先としてTwimlをWebサーバやS3で用意 …

Amazon S3オブジェクトロック

S3のオブジェクトロックを確認しました。 オブジェクトロックの有効化 現在、既存 …

Amazon EC2 インスタンスメタデータサービス(IMDS) v2のみにしました

今さらながらですが、EC2 インスタンスメタデータサービス(IMDS) v2を確 …

AWSセルフマネージドAD環境にリモートデスクトップで接続

AWSクイックスタートのActive Directory Domain Serv …

ADOT用のAWS マネージド型 Lambda レイヤーを使ってトレースを送信する

2025年11月にAWS X-Ray SDK / Daemon のサポート終了と …

CodeGuru ProfilerでLambda関数(Python 3.9)のパフォーマンスを確認した

CodeGuru ProfilerでPython 3.9のLambda関数の推奨 …

IAMアクセス許可の境界でIAMロールの権限を制御する

IAMユーザー自身の権限はIAMポリシーで制御できますが、IAMユーザーにIAM …