安全性和权限
Lambda 托管实例使用容量提供程序作为信任边界。函数在这些实例内的容器中执行,但容器并不能为工作负载之间提供安全隔离。分配给同一容量提供程序的所有函数必须相互信任。
关键安全概念
-
容量提供程序:定义 Lambda 函数信任级别的安全边界
-
容器隔离:容器本身并非安全边界——切勿将它们用于不受信任的工作负载之间的安全防护。
-
信任分离:通过使用不同的容量提供程序来分离那些彼此不互信的工作负载
所需权限
PassCapacityProvider 操作
用户需要 lambda:PassCapacityProvider 权限才能将函数分配给容量提供程序。此权限充当安全门,确保只有经过授权的用户才能将函数放置到特定的容量提供程序中。
账户管理员通过 lambda:PassCapacityProvider IAM 操作控制哪些函数可以使用特定的容量提供程序。在以下情况下需要执行此操作:
-
创建使用 Lambda 托管实例的函数
-
更新函数配置以使用容量提供程序
-
通过基础设施即代码部署函数
示例 IAM 策略
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:PassCapacityProvider", "Resource": "arn:aws:lambda:*:*:capacity-provider:trusted-workloads-*" } ] }
服务相关角色
Amazon Lambda 使用 AWSServiceRoleForLambda 服务相关角色来管理您的容量提供程序中的 Lambda 托管实例 ec2 资源。
最佳实践
-
按信任级别分离:为具有不同安全要求的工作负载创建不同的容量提供程序
-
使用描述性名称:对容量提供程序进行命名,以清楚地表明其预期用途和信任级别(例如
production-trusted、dev-sandbox)。 -
应用最低权限:仅向必要的容量提供程序授予
PassCapacityProvider权限 -
监控使用情况:使用 Amazon CloudTrail 监控容量提供程序的分配和访问模式