Lambda の Security Hub コントロール - AWS Security Hub

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lambda の Security Hub コントロール

これら AWS Security Hub コントロールは を評価します AWS Lambda サービスとリソース。

これらのコントロールは、すべての で利用できるとは限りません。 AWS リージョン。 詳細については、「」を参照してくださいリージョン別のコントロールの可用性

[Lambda.1] Lambda 関数ポリシーでは、パブリックアクセスを禁止する必要があります

関連する要件: PCI DSS v3.2.1/1.2.1、PCIDSSv3.2.1/1.3.1、PCIDSSv3.2.1/1.3.2、PCIDSSv3.2.1/1.3.4、PCIDSSv3.2.1/7.2.1、 NIST.800-53.r5 AC-21 NIST.800-53.r5 AC-3、 NIST.800-53.r5 AC-3(7)、 NIST.800-53.r5 AC-4(21) NIST.800-53.r5 AC-6、、 NIST.800-53.r5 SC-7(11)、 NIST.800-53.r5 SC-7(16) NIST.800-53.r5 AC-4、 NIST.800-53.r5 SC-7(20)、 NIST.800-53.r5 SC-7(21) NIST.800-53.r5 SC-7、 NIST.800-53.r5 SC-7(3)、 NIST.800-53.r5 SC-7(4)、 NIST.800-53.r5 SC-7(9)

カテゴリ: 保護 > セキュアなネットワーク設定

重要度: 非常事態

リソースタイプ : AWS::Lambda::Function

AWS Config ルール: lambda-function-public-access-prohibited

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、Lambda 関数リソースベースポリシーがアカウントの外部からのパブリックアクセスを禁止しているかどうかをチェックします。パブリックアクセスが許可されている場合、コントロールは失敗します。Lambda 関数が Amazon S3 から呼び出され、ポリシーが AWS:SourceAccount などパブリックアクセスを制限する条件が含まれていない場合も、コントロールは失敗します。より細かくアクセスするには、バケットポリシーで他の S3 条件を AWS:SourceAccount と併用することをおすすめします。

Lambda 関数は、関数コードへの意図しないアクセスを許可する可能性があるため、パブリックからアクセスできない必要があります。

修正

この問題を修正するには、関数のリソースベースのポリシーを更新して許可を削除するか、AWS:SourceAccount 条件を追加します。リソースベースのポリシーは、Lambda APIまたは からのみ更新できます。 AWS CLI.

まず、Lambda コンソールでリソースベースのポリシーを確認します。"*" や { "AWS": "*" } など、ポリシーをパブリックにする Principal フィールド値を持つポリシーステートメントを特定します。

ポリシーはコンソールから編集できません。関数からアクセス許可を削除するには、 から remove-permission コマンドを実行します。 AWS CLI.

$ aws lambda remove-permission --function-name <function-name> --statement-id <statement-id>

<function-name> を Lambda 関数の名前で置き換え、<statement-id> を削除するステートメントのステートメント ID (Sid) に置き換えます。

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

関連する要件: NIST.800-53.r5 CA-9 (1)、NIST.800-53.r5 CM-2、NIST.800-53.r5 SI-2、NIST.800-53.r5 SI-2(2)、NIST.800-53.r5 SI-2(4)、NIST.800-53.r5 SI-2(5)

カテゴリ: 保護 > セキュアな開発

重要度:

リソースタイプ : AWS::Lambda::Function

AWS Config ルール: lambda-function-settings-check

スケジュールタイプ : 変更がトリガーされた場合

パラメータ :

  • runtime: dotnet8, dotnet6, java21, java17, java11, java8.al2, nodejs20.x, nodejs18.x, python3.12, python3.11, python3.10, python3.9, python3.8, ruby3.3, ruby3.2 (カスタマイズ不可)

このコントロールは、 AWS Lambda 関数のランタイム設定は、各言語でサポートされているランタイムに設定された想定値と一致します。Lambda 関数がサポートされているランタイムを使用していない場合、コントロールは失敗します。前にParameters セクションで説明しました。Security Hub は、パッケージタイプが の関数を無視しますImage

Lambda ランタイムは、メンテナンスとセキュリティの更新の対象となる OS、プログラミング言語、およびソフトウェアライブラリの組み合わせを中心に構築されています。ランタイムコンポーネントがセキュリティアップデートでサポート対象外となった場合、Lambda はこのランタイムを非推奨にします。非推奨のランタイムを使用する関数を作成することはできませんが、この関数は呼び出しイベントを処理するために引き続き使用できます。Lambda 関数が最新であり、非推奨のランタイム環境を使用しないようにすることをお勧めします。サポートされているランタイムのリストについては、「」の「Lambda ランタイム」を参照してください。 AWS Lambda デベロッパーガイド

修正

サポートされているランタイムと非推奨スケジュールの詳細については、「」の「ランタイム非推奨ポリシー」を参照してください。 AWS Lambda デベロッパーガイド ランタイムを最新バージョンに移行するときは、言語の発行元からの構文とガイダンスに従ってください。また、ランタイム更新を適用して、ランタイムバージョンの非互換性がまれに発生する場合にワークロードに影響を与えるリスクを軽減することをお勧めします。

[Lambda.3] Lambda 関数は にある必要があります VPC

関連する要件: PCI DSS v3.2.1/1.2.1、PCIDSSv3.2.1/1.3.1、PCIDSSv3.2.1/1.3.2、PCIDSSv3.2.1/1.3.4、 NIST.800-53.r5 AC-21、 NIST.800-53.r5 AC-3(7) NIST.800-53.r5 AC-3、 NIST.800-53.r5 AC-4(21)、、 NIST.800-53.r5 SC-7(11) NIST.800-53.r5 AC-4、 NIST.800-53.r5 SC-7(16) NIST.800-53.r5 AC-6、 NIST.800-53.r5 SC-7(20) NIST.800-53.r5 SC-7、 NIST.800-53.r5 SC-7(21)、 NIST.800-53.r5 SC-7(3)、 NIST.800-53.r5 SC-7(4)、 NIST.800-53.r5 SC-7(9)

カテゴリ: 保護 > セキュアなネットワーク設定

重要度:

リソースタイプ: AWS::Lambda::Function

AWS Config ルール: lambda-inside-vpc

スケジュールタイプ: 変更がトリガーされた場合

パラメータ : なし

このコントロールは、Lambda 関数が仮想プライベートクラウド () にデプロイされているかどうかをチェックしますVPC。Lambda 関数が にデプロイされていない場合、コントロールは失敗しますVPC。Security Hub は、パブリック到達可能性を判断するためにVPCサブネットルーティング設定を評価しません。Lambda@Edge リソースに関する失敗の結果が表示される場合があります。

にリソースをデプロイすると、ネットワーク設定のセキュリティと制御VPCが強化されます。このようなデプロイでは、複数のアベイラビリティーゾーンにわたってスケーラビリティと高い耐障害性も提供されます。さまざまなアプリケーション要件を満たすようにVPCデプロイをカスタマイズできます。

修正

のプライベートサブネットに接続するように既存の関数を設定するにはVPC、「 でのVPCアクセスの設定」を参照してください。 AWS Lambda デベロッパーガイド 可用性を高めるためにプライベートサブネットを少なくとも 2 つ選択し、機能の接続要件を満たすセキュリティグループを少なくとも 1 つ選択することをお勧めします。

[Lambda.5] VPC Lambda 関数は複数のアベイラビリティーゾーンで動作する必要があります

関連する要件: NIST.800-53.r5 CP-10, NIST.800-53.r5 CP-6(2), NIST.800-53.r5 SC-36、 NIST.800-53.r5 SC-5(2)、NIST.800-53.r5 SI-13(5)

カテゴリ: リカバリ > 耐障害性 > 高可用性

重要度:

リソースタイプ : AWS::Lambda::Function

AWS Config ルール: lambda-vpc-multi-az-check

スケジュールタイプ : 変更がトリガーされた場合

パラメータ :

パラメータ 説明 [Type] (タイプ) 許可されているカスタム値 Security Hub のデフォルト値

availabilityZones

アベイラビリティーゾーンの最小数

列挙型

2, 3, 4, 5, 6

2

このコントロールは、 が AWS Lambda 仮想プライベートクラウド (VPC) に接続する 関数は、少なくとも指定された数のアベイラビリティーゾーン () で動作しますAZs。関数が少なくとも指定された数の で動作しない場合、コントロールは失敗しますAZs。の最小数にカスタムパラメータ値を指定しない限りAZs、Security Hub はデフォルト値の 2 つの を使用しますAZs。

複数の にリソースをデプロイすることはAZs、 AWS アーキテクチャ内で高可用性を確保するための ベストプラクティス。可用性は、機密性、完全性、可用性から成り立つセキュリティモデルの 3 要素における中心的な柱です。に接続するすべての Lambda 関数には、単一ゾーンの障害によってオペレーションが完全に中断されないように、マルチ AZ 配置VPCが必要です。

修正

VPC アカウントの に接続するように関数を設定する場合は、高可用性AZsを確保するために複数の でサブネットを指定します。手順については、「」のVPC「アクセスの設定」を参照してください。 AWS Lambda デベロッパーガイド

Lambda は、1 つのゾーンでサービスAZsが中断された場合にイベントを処理できるように、他の関数を複数の で自動的に実行します。

[Lambda.6] Lambda 関数にはタグを付ける必要があります

カテゴリ: 識別 > インベントリ > タグ付け

重要度:

リソースタイプ : AWS::Lambda::Function

AWS Config ルール: tagged-lambda-function (カスタム Security Hub ルール)

スケジュールタイプ : 変更がトリガーされた場合

パラメータ :

パラメータ 説明 [Type] (タイプ) 許可されているカスタム値 Security Hub のデフォルト値
requiredTagKeys 評価されたリソースに含める必要があるシステム以外のタグキーのリスト。タグキーでは、大文字と小文字が区別されます。 StringList を満たすタグのリスト AWS の要件 No default value

このコントロールは、 が AWS Lambda 関数には、パラメータ で定義された特定のキーを持つタグがありますrequiredTagKeys。関数にタグキーがない場合、またはパラメータ で指定されたすべてのキーがない場合、コントロールは失敗しますrequiredTagKeys。パラメータが指定されていない場合、コントロールrequiredTagKeysはタグキーの存在のみをチェックし、関数にキーがタグ付けされていない場合は失敗します。で始まるシステムタグは自動的に適用されaws:、無視されます。

タグは、 に割り当てるラベルです。 AWS リソースは、キーとオプションの値で構成されます。タグを作成することで、リソースを目的、所有者、環境その他の基準別に分類できます。タグは、リソースの識別、整理、検索、フィルタリングに役立ちます。また、タグ付けは、アクションと通知の説明責任のあるリソース所有者を追跡するのに役立ちます。タグ付けを使用すると、属性ベースのアクセスコントロール (ABAC) を認証戦略として実装できます。これは、タグに基づいてアクセス許可を定義します。IAM エンティティ (ユーザーまたはロール) と にタグをアタッチできます。 AWS リソースの使用料金を見積もることができます。IAM プリンシパルには、1 つのABACポリシーまたは個別のポリシーセットを作成できます。プリンシパルのタグがリソースタグと一致するときにオペレーションを許可するように、これらのABACポリシーを設計できます。詳細については、「 とはABAC」を参照してください。 AWSユーザーガイドの「」。 IAM

注記

個人を特定できる情報 (PII) やその他の機密情報や機密情報をタグに追加しないでください。タグには多くの がアクセスできます AWS のサービスを含む AWS Billing。 タグ付けのベストプラクティスの詳細については、「 のタグ付け」を参照してください。 AWS の リソース AWS 全般のリファレンス.

修正

Lambda 関数にタグを追加するには、「」の「Lambda 関数でのタグの使用」を参照してください。 AWS Lambda デベロッパーガイド