AWS Security Hub CSPM から、AWS Lambda 関数について、"[Lambda.1] Lambda function policies should prohibit public access" ([Lambda.1] Lambda 関数ポリシーではパブリックアクセスを禁止する必要があります) という結果を受け取りました。
簡単な説明
Security Hub CSPM には、次のような検出結果タイプがあります。
"[Lambda.1] Lambda function policies should prohibit public access" ([Lambda.1] Lambda 関数ポリシーではパブリックアクセスを禁止する必要があります)
このコントロールの応答は次の理由で失敗します。
- Lambda 関数がパブリックアクセス可能な状態になっている。
- Amazon Simple Storage Service (Amazon S3) から Lambda 関数を呼び出したときに、ポリシーに AWS:SourceAccount の条件が含まれていない。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI のエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
リソースベースのポリシーを更新するには、AWS CLI を使用する必要があります。ユースケースに応じて、Lambda 関数のアクセス許可を削除または更新します。
Lambda 関数からアクセス許可を削除する
Lambda 関数からアクセス許可を削除するには、次の remove-permission AWS CLI コマンドを実行します。
aws lambda remove-permission --function-name your-function-name --statement-id your-statement-id
注: your-function-name を Lambda 関数名に置き換えてください。your-statement-id をステートメント ID に置き換えてください。
Lambda 関数のアクセス許可を更新する
Lambda 関数のアクセス許可を更新するには、次の add-permission AWS CLI コマンドを実行します。
aws lambda add-permission --function-name your-function-name --statement-id your-new-statement-id --action lambda:InvokeFunction --principal s3.amazonaws.com --source-account your-account-id --source-arn your-bucket-arn
注: your-function-name を Lambda 関数名に置き換えてください。your-new-statement-id を新しいステートメント ID に置き換えてください。your-account-id を AWS アカウント ID に置き換えてください。your-bucket-arn を Amazon S3 バケットの ARN に置き換えてください。
アクセス許可を確認する
アクセス許可が削除または更新されたことを確認するには、関数のリソースベースのポリシーを表示する手順に従ってください。
注: ポリシーにステートメントが 1 つしかない場合、そのポリシーは空です。
詳細については、「Control reference for Security Hub CSPM」(Security Hub CSPM のコントロールリファレンス) を参照してください。
関連情報
lambda-function-public-access-prohibited
Security Hub を使用して AWS 環境のセキュリティ問題をモニタリングするにはどうすればよいですか?