AWS Lambda
開発者ガイド

Lambda 関数で環境変数のクライアント側を暗号化する

Lambda 関数の構成設定の指定に加えて、環境変数を使用して、データベースパスワード、AWS Key Management Service および Lambda コンソールの暗号化ヘルパーを使用して機密情報を保存できます。詳細については、「環境変数の暗号化」を参照してください。次の例では、これを行う方法に加えて、その情報を復号化する KMS を使用する方法も説明します。

このチュートリアルでは、Lambda コンソールを使用して機密情報が含まれる環境変数を暗号化できる方法を説明します。既存の関数を更新する場合は、環境変数を展開する方法を示す手順のセクション (ステップ 2: Lambda 関数を設定する) にスキップします。

ステップ 1: Lambda 関数を作成する

  1. AWS マネジメントコンソール にサインインし、https://console.aws.amazon.com/lambda/ にある AWS Lambda コンソールを開きます。

  2. [Create a Lambda function] を選択します。

  3. [Select blueprint] で、[Author from scratch] ボタンを選択します。

  4. [Basic information] で、以下の操作を行います。

    • [Name (名前)] で、Lambda 関数名を指定します。

    • [ロール] で、[Choose an existing role (既存のロールの選択)] を選択します。

    • [既存のロール] で、[lambda_basic_execution] を選択します。

      注記

      実行ロールのポリシーに decrypt アクセス許可が付与されていない場合は追加する必要があります。

    • [Create function] を選択します。

ステップ 2: Lambda 関数を設定する

  1. [Configuration] で任意の [Runtime] を指定します。

  2. [Lambda 関数のコード] セクションで [コードをインラインで編集] オプションを活用して Lambda 関数ハンドラーコードを独自のカスタムコードに置き換えることができます。

  3. [Triggers] タブを確認します。[トリガー] ページで、Lambda 関数を自動的にトリガーするサービスをオプションで選択できます。[トリガーを追加] ボタンを選択してから省略記号 (...) がついたグレーのボックスを選択すると、使用できるサービスのリストが表示されます。この例ではトリガーを設定せず、[Configuration] を選択します。

  4. [Monitoring] タブを確認します。このページでは、Lambda 関数呼び出しに今すぐ使用できる CloudWatch メトリクスを説明するとともに、「AWS X-Ray を使用する」など他の有益なガイドへのリンクを紹介します。

  5. [Environment variables] セクションを展開します。

  6. キーと値のペアを入力します。[Encryption configuration] セクションを展開します。Lambda には、デフォルトのサービスキーが [保管時に暗号化する KMS キー] に用意されており、これがアップロードされると情報が暗号化されます。指定した情報が重要な場合は、さらに [Enable helpers for encryption in transit] チェックボックスをオンにして、カスタムキーを提供できます。これにより入力した値がマスク化され、その結果、AWS KMS が呼び出されて値が暗号化され、Ciphertext として返します。アカウントの KMS キーを作成していない場合、キーを作成するための AWS IAM コンソールへのリンクが提供されます。アカウントには、このキーのアクセス許可として encrypt および decrypt が必要です。[Encrypt ] ボタンを選択すると、そのボタンは [Decrypt] に切り替わることに注意してください。これにより、情報を更新するオプションが提供されます。これが完了した後は、[Encrypt] ボタンを選択します。

    [コード] ボタンを押すと、アプリケーションで使用可能な Lambda 関数のランタイム固有のサンプル復号コードが提供されます。

    注記

    クライアント側で機密情報を暗号化するために、デフォルトの Lambda サービスキーを使用することはできません。詳細については、「環境変数の暗号化」を参照してください。