【Security Hub修復手順】[Lambda.2] Lambda 関数はサポートされているランタイムを使用する必要があります

2023.02.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!AWS事業本部のみなみです。

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介します。

本記事の対象コントロール

[Lambda.2] Lambda 関数はサポートされているランタイムを使用する必要があります

[Lambda.2] Lambda functions should use supported runtimes

対象コントロールの説明

こちらのコントロールはサポートが終了したランタイムを使用している場合に検知されます。

Lambdaのランタイムのサポート終了には2つのフェーズがあります。

非推奨化フェーズ1

非推奨化フェーズ1に入るとAWSはランタイムに対するセキュリティパッチやその他の更新の適用が停止され、テクニカルサポートの対象外となってしまいます。
そのランタイムを使用する既存関数のソースコードの更新や一般設定の変更等は出来ますが、新規に関数を作成することが出来なくなります。

非推奨化フェーズ2

フェーズ1から最低30日経過後に非推奨化フェーズ2に移行します。 非推奨化フェーズ2になると、そのランタイムを使用する既存関数のソースコードの更新も出来なくなります。
VPCの設定やタイムアウト、ランタイムなどの一般設定変更は可能ですが、一度サポートされているランタイムに移行した後は以前のランタイムにロールバックすることは出来ません。

Lambdaの実行について

非推奨化フェーズ2後も関数の呼び出し自体は無期限に継続されます。ただし、セキュリティパッチを引き続き受け取り、テクニカルサポートを利用できるように、サポートされているランタイムバージョンに関数を移行することを強くお勧めします。

図でまとめるとこの様になります。

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。
AWS Security Hubの詳細についてはこちらのブログをご覧ください。

修復手順

1. ステークホルダーに確認

ステークホルダー(リソースの作成者や管理している部署などの関係者)に以下を確認して下さい。

  • マネジメントコンソールやAWS CLIでランタイムの変更を行ってもいいか?
    • LambdaをAWS CloudFormation(AWS SAM)/AWS CDK/Serverless FrameworkなどのIacツールで管理している場合、マネジメントコンソールやAWS CLIから手動更新を行うと差分を取り込む必要があります。IaCツールでランタイムの変更を行うのか?マネジメントコンソールやAWS CLIで手動変更を行ってもいいか?確認して下さい。
  • 変更後のランタイムとソースコードの互換性があるか?
    • ランタイムによってはソースコードの互換性がない場合もあります。開発環境でそのランタイムで正常に動作するか十分に検証を行ってください。

2. ランタイムの変更

ステークホルダーに確認し、手動変更を行ってい場合は以下の手順でランタイムの変更を行ってください。 今回は検証の為、Python3.7からPython3.9にランタイムの変更を行います。

マネジメントコンソールから変更

  1. 「Lambda」のサービスページから対象のLambda関数の詳細画面に進み、「ランタイム設定」右上の「編集をクリックします。」

  2. ランタイムの一覧から対象のランタイムを選択します。

  3. その他の設定は変更せず、「保存」をクリックします。

  4. 「保存」後ランタイムが変更されていることを確認して下さい。

AWS CLIから変更

  1. 現在のランタイムを確認します。 現在の設定を確認するにはget-function-configurationコマンドを利用します。
aws lambda get-function-configuration \
   --function-name testLambda

実行結果

  1. update-function-configurationコマンドを実行してランタイムの変更を行います。
aws lambda update-function-configuration \
   --function-name testLambda \
   --runtime python3.9

実行結果

3. 動作確認する

ランタイムの変更を行った後は、正常に動作するか?テスト実行することを推奨します。

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。

以上、みなみでした!