如何禁用AWS Lambda函数的Export/DeleteFunction操作?
如何禁用AWS Lambda函数的Export/DeleteFunction操作
要限制终端用户导出Lambda函数代码或删除函数,核心是通过IAM权限策略进行精准管控,以下是具体实现方案:
1. 用IAM身份策略拒绝关键操作
直接给终端用户的IAM角色/用户附加拒绝策略,阻断其执行ExportFunction、DeleteFunction以及用于查看代码的GetFunction操作:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "lambda:GetFunction", "lambda:ExportFunction", "lambda:DeleteFunction" ], "Resource": "arn:aws:lambda:你的区域:你的账号ID:function:目标函数名", "Condition": { "StringEquals": { "aws:PrincipalAccount": "你的账号ID" } } } ] }
- 替换策略中的区域、账号ID、目标函数名为实际值
- 借助
Condition可进一步限定仅对当前账号内的主体生效,避免影响其他关联权限
2. 给Lambda函数绑定资源策略强化防护
如果需要更精准地针对特定用户/角色限制,可直接在Lambda函数的资源策略中添加拒绝规则,Deny权限的优先级会高于允许权限:
{ "Version": "2012-10-17", "Id": "DenyLambdaExportDelete", "Statement": [ { "Sid": "BlockExportAndDeleteActions", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::你的账号ID:user/终端用户ID" }, "Action": [ "lambda:GetFunction", "lambda:ExportFunction", "lambda:DeleteFunction" ], "Resource": "arn:aws:lambda:你的区域:你的账号ID:function:目标函数名" } ] }
3. 遵循最小权限原则配置基础权限
- 绝不向终端用户分配
AWSLambdaFullAccess或AdministratorAccess这类全量权限策略 - 仅授予用户必要的操作权限,比如仅允许调用函数的
lambda:InvokeFunction权限,避免权限过度暴露
关键说明
lambda:GetFunction是用户查看和导出Lambda代码的前置核心权限,必须与ExportFunction一起拒绝,才能彻底阻止用户获取函数代码内容。
内容的提问来源于stack exchange,提问作者Nataraj
相关产品推荐
相关产品推荐

