为什么 Security Hub 会触发“Lambda 函数策略应禁止公有访问”的调查结果?
上次更新日期:2022 年 5 月 25 日
简短描述
如果 AWS Lambda 函数符合以下条件,则此控制响应将失败:
- 可公开访问。
- 从 Amazon Simple Storage Service(Amazon S3)调用,且该策略不包含 AWS:SourceAccount 的条件。
解决方法
执行以下任意一项操作:
更新策略以删除允许公有访问的权限。
-或者-
将 AWS:SourceAccount 条件添加到策略中。
注意:
- 要更新基于资源的策略,您必须使用 AWS 命令行界面(AWS CLI)。
- 如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
按照说明使用 Lambda 控制台查看函数基于资源的策略。根据您的使用案例,您可以删除或更新 Lambda 函数的权限。
要从 Lambda 函数中删除权限,请运行类似于以下内容的 AWS CLI 命令 remove-permission:
$ aws lambda remove-permission --function-name <function-name> --statement-id <statement-id>
要更新 Lambda 函数的权限,请控制类似于以下内容的 AWS CLI 命令 add-permission:
$ aws lambda add-permission --function <function-name> --statement-id <new-statement-id> --action lambda:InvokeFunction --principal s3.amazonaws.com --source-account <account-id> --source-arn <bucket-arn>
要验证权限是否已删除或更新,请再次按照说明以使用 Lambda 控制台查看函数基于资源的策略。
现在应该更新基于资源的政策。
注意:如果策略中只有一条语句,则该策略为空。
有关更多信息,请参阅 AWS 基础安全最佳实践控制。