👏
【初心者向け】AWS Lambda 環境変数の保管時の暗号化
はじめに
本ページは個人の勉強で使用することを目的に作成しておりますが、記載の誤り等が含まれる場合がございます。
最新の情報についてはAWS公式ドキュメントをご参照ください。
やること
- AWS Lambdaで環境変数を使用して
"Hello World"
を出力する関数を作成する。 - 環境変数はKMSのAWSマネージドキーで保管時の暗号化をする。
1. Lambda関数の作成
- Lambdaコンソールから関数の作成をクリックします。
- 以下の設定値を選択して関数の作成をクリックします。
- 関数の作成:
一から作成
- 基本的な情報
- 関数名:
lambda-env-test
- ランタイム:
Python 3.12
- アーキテクチャ:
x86_64
- 関数名:
- デフォルトの実行ロールの変更
- 実行ロール:
基本的なLambdaアクセス権限で新しいロールを作成
- 実行ロール:
2. ソースコードの作成
- Lambda関数
lambda-env-test
のコードソースを作成します。
lambda_function.py
import json
import message
def lambda_handler(event, context):
msg = message.hello()
return {
'statusCode':200,
'body':json.dumps(msg)
}
message.py
import os
def hello():
greet = os.environ['GREET']
return greet
コードについて
- message.py 4行目の
os.environ['GREET']
でGREETというキーに一致する環境変数の値を取得し、変数greet
に代入しています。
greet = os.environ['GREET']
3. 環境変数の設定
-
設定タブの環境変数から編集をクリックします。
-
環境変数の編集画面で以下の環境変数を設定し、保存をクリックする。
- 環境変数
- キー:
GREET
※os.environ['GREET'] で呼び出す環境変数のキー - 値:
Hello World
- キー:
- 暗号化の設定
- 転送時の暗号化
- 転送時の暗号化に使用するヘルパーの有効化:
未選択
- 転送時の暗号化に使用するヘルパーの有効化:
- 保管時に暗号化するAWS KMSキー:
(デフォルト)aws/lambda
- 転送時の暗号化
- 環境変数が保存されました。
4. Lambda関数のテスト
-
コードタブのTestをクリックする。
-
テストイベントを設定画面で、デフォルトの設定状態で呼び出すをクリックします。
-
Execution resultタブに
Hello world
が出力されます。
おわりに
-
KMSキーでの暗号化にはAWS マネージド型キーとカスタマー管理型のキーのどちらも利用できますが、KMSキーポリシーで復号できるユーザーを制限したいなどの場合はカスタマー管理型のキーを使用した方がよいでしょう。
-
Lambda関数の上限は合計4KBとなっています。それ以上のサイズの環境変数を使用したい場合はパラメータストア アドバンスドを使用すると8KBまで使用できます。
参考
- Lambdaでの環境変数の暗号化
- Python
os.environ
Discussion