投稿

ラベル(CloudFormation)が付いた投稿を表示しています

Lambda環境変数の使い方とKMS暗号化:DBエンドポイントをコードから切り離す実践ガイド

Lambdaのコードにデータベースエンドポイントをハードコードしたまま本番デプロイしてしまった経験は、エンジニアなら一度はある。設定値が変わるたびにデプロイが必要になり、最悪の場合は認証情報がリポジトリに残る。Lambda環境変数とKMS暗号化を組み合わせることで、この問題を構造的に解決できる。 TL;DR:Lambda環境変数とKMS暗号化の要点 項目 内容 環境変数の設定方法 コンソール・CLI・CloudFormation/CDKで設定可能 デフォルト暗号化 保存時はAWS管理キー(aws/lambda)で自動暗号化 カスタムKMS暗号化 顧客管理キー(CMK)を指定して追加保護が可能 コード側の取得方法 process.env / os.environ など言語標準の環境変数APIで取得 注意点 環境変数の値はLambdaコンソールで平文表示される(CMK指定時はコンソール上で暗号化テキストとして表示可能) Lambda環境変数の仕組みを理解する Lambda環境変数は、関数コードから分離された設定値をランタイム起動時に注入する仕組みだ。コンテナイメージで言えば、 docker run -e KEY=VALUE に相当する。関数が実行されると、設定した環境変数はOSレベルの環境変数としてランタイムプロセスに渡され、コードからは通常の環境変数として読み取れる。 暗号化の層は2段階ある。まず、すべての環境変数はAWSのインフラ側でAWS管理キー( aws/lambda )を使って保存時に暗号化される。これはデフォルト動作で、追加設定は不要だ。次に、顧客管理キー(CMK)を指定すると、そのキーで追加の暗号化レイヤーが適用される。CMKを使う場合、コンソール上での値の表示が暗号化テキストになり、復号にはKMSへのアクセス権限が必要になる。 graph TD Dev["開発者 / CI"] -->|update-function-configuration| LambdaService["Lambdaサービス"] ...