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

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

Lambda の Security Hub ブコントロール

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

これらのコントロールは、一部の で使用できない場合があります AWS リージョン。詳細については、「リージョン別のコントロールの可用性」を参照してください。

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

関連する要件: 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、NIST.800-53.r5 AC-4(21)、NIST.800-53.r5 AC-6、NIST.800-53.r5 SC-7、NIST.800-53.r5 SC-7(11)、NIST.800-53.r5 SC-7(16)、NIST.800-53.r5 SC-7(20)NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-75

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

重要度: 非常事態

リソースタイプ : 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 フィールド値を持つポリシーステートメントを特定します。

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

$ 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)、PCI DSS v4.0.1/12.3.4

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

重要度:

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

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

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

パラメータ :

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

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

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

修正

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

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

関連する要件: PCI DSS v3.2.1/1.2.1、PCI DSS v3.2.1/1.3.1、PCI DSS v3.2.1/1.3.2、PCI DSS v3.2.1/1.3.4、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、NIST.800-53.r5 AC-4(21)、NIST.800-53.r5 AC-6、NIST.800-53.r5 SC-7、NIST.800-53.r5 SC-7(11)、NIST.800-53.r5 SC-7(16)、NIST.800-53.r5 SC-7(20)、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 のプライベートサブネットに接続する既存の機能を設定するには、「AWS Lambda  デベロッパーガイド」の「VPC アクセスの設定」を参照してください。可用性を高めるためにプライベートサブネットを少なくとも 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

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

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

修正

お客様のアカウントで VPC に接続するように関数を設定する場合は、複数のアベイラビリティーゾーン (AZ) でサブネットを指定することで、高可用性を確保します。手順については、「AWS Lambda  デベロッパーガイド」の「VPC アクセスの設定」を参照してください。

Lambda は、複数のアベイラビリティーゾーン (AZ) で他の関数を自動的に実行し、1 つのゾーンでサービスの中断が発生した場合にも、関数をイベントの処理に使用できることを保証します。

[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 プリンシパルに対して、単一の ABAC ポリシー、または個別のポリシーセットを作成できます。これらの ABAC ポリシーを、プリンシパルのタグがリソースタグと一致するときに操作を許可するように設計することができます。詳細については、IAM ユーザーガイド「ABAC とは AWS」を参照してください。

注記

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

修正

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