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

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

の Security Hub コントロール AWS Lambda

これらの 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.r5 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7 NIST.800-53.r5 SC-7r

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

重要度: 非常事態

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

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

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

パラメータ: なし

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

注記

このコントロールは、ワイルドカード文字または変数を使用するポリシー条件を評価しません。PASSED 結果を生成するには、Lambda 関数のポリシーの条件は固定値のみを使用する必要があります。固定値は、ワイルドカード文字やポリシー変数を含まない値です。ポリシー変数の詳細については、「 AWS Identity and Access Management ユーザーガイド」の「変数とタグ」を参照してください。

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, java21, java17, java11, java8.al2, nodejs22.x, nodejs20.x, nodejs18.x, python3.13, python3.12, python3.11, python3.10, python3.9, ruby3.4, 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 (最大 6 項目) AWS 要件を満たす 1~6 個のタグキー。 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 関数でのタグの使用」を参照してください。

[Lambda.7] Lambda 関数では AWS X-Ray アクティブなトレースを有効にする必要があります

関連する要件: NIST.800-53.r5 CA-7

カテゴリ: 識別 > ログ記録

重要度:

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

AWS Config ルール : lambda-function-xray-enabled

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

パラメータ : なし

このコントロール AWS X-Ray は、 関数で を使用したアクティブトレースが有効になっている AWS Lambda かどうかを確認します。Lambda 関数で X-Ray を使用したアクティブトレースが無効になっている場合、コントロールは失敗します。

AWS X-Ray は AWS Lambda 関数のトレースとモニタリング機能を提供し、Lambda 関数のデバッグと運用にかかる時間と労力を節約できます。Lambda 関数のレイテンシーを分割することで、エラーを診断し、パフォーマンスのボトルネック、スローダウン、タイムアウトを特定するのに役立ちます。また、データのプライバシーとコンプライアンスの要件にも役立ちます。Lambda 関数のアクティブトレースを有効にすると、X-Ray は Lambda 関数内のデータフローと処理の全体像を提供し、潜在的なセキュリティ脆弱性や非準拠のデータ処理プラクティスを特定するのに役立ちます。この可視性は、データの整合性、機密性、関連規制への準拠を維持するのに役立ちます。

注記

AWS X-Ray 現在、トレースは、Amazon Managed Streaming for Apache Kafka (Amazon MSK)、セルフマネージド Apache Kafka、ActiveMQ および RabbitMQ を使用する Amazon MQ、または Amazon DocumentDB イベントソースマッピングを使用する Lambda 関数ではサポートされていません。

修正

AWS Lambda 関数のアクティブトレースを有効にする方法については、 AWS Lambda デベロッパーガイドの「 を使用して Lambda 関数の呼び出しを視覚化する AWS X-Ray」を参照してください。