Topic 1 Question #1
某公司有一个用于将大图生成缩略图的 AWS Lambda 函数。该 Lambda 函数需要对同一 AWS 账户下的某个 Amazon S3 存储桶拥有读写权限。
以下哪些方案可为该 Lambda 函数提供对应权限?(选择两项)
答案: CD
本题考察AWS Lambda访问S3的权限配置合规方案,符合要求的两种方案均遵循AWS安全最佳实践,无需手动管理敏感凭证,且满足同账户下S3的访问授权逻辑。第一种方案是为Lambda配置执行角色并附加允许S3访问的身份策略,Lambda运行时会自动获取该角色的临时安全凭证完成鉴权。第二种方案是将Lambda的执行角色作为授权主体,在S3桶策略中直接授予该角色读写权限,同账户下该授权同样生效,两种方案均可满足题目要求。
各选项分析:
A. 错误。在Lambda环境变量中存储IAM用户的长期访问密钥属于严重的安全风险,违反AWS最小权限和凭证安全的最佳实践,长期密钥一旦泄露会导致未授权访问,且Lambda原生支持执行角色获取临时凭证,无需使用IAM用户密钥。
B. 错误。EC2密钥对的用途是为EC2实例提供SSH登录的身份验证,与S3服务的访问鉴权逻辑完全无关,S3不支持使用EC2私钥进行身份验证,该方案完全不可行。
C. 正确。Lambda执行角色是专门为Lambda函数运行时设计的IAM身份,为该角色附加允许S3桶读写的IAM策略后,AWS会自动为运行中的Lambda生成该角色的短期临时凭证,无需手动处理密钥,同账户下身份策略的允许授权可直接生效,满足访问需求,符合安全最佳实践。
D. 正确。为Lambda创建执行角色后,在S3桶策略中指定该执行角色为主体,授予对应的读写权限,也是合法的授权方式,同账户下桶策略的授权同样有效,该方案常用于需要统一在S3侧管理访问权限的场景,符合安全要求。
E. 错误。安全组是VPC内资源的实例级防火墙,仅控制网络流量的出入,S3桶策略不支持将安全组ID作为授权条件过滤访问请求,且未配置VPC端点的Lambda本身不关联安全组,该方案无法实现授权。
关键知识点:
1. Lambda执行角色:是为Lambda函数提供运行时访问其他AWS服务权限的IAM角色,AWS会自动为函数生成该角色的短期临时凭证,无需手动管理密钥,是Lambda访问AWS服务的标准权限配置方式。
2. S3同账户访问授权逻辑:同AWS账户下,IAM身份的身份策略允许访问S3,或S3桶策略授予该IAM身份访问权限,只要无显式拒绝,即可完成授权访问,两种授权方式独立生效。
3. 凭证安全最佳实践:禁止在代码、环境变量等位置存储长期IAM访问密钥,所有AWS服务间的访问优先使用IAM角色分配权限,减少凭证泄露风险。
参考资料:
Lambda 执行角色, https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html
Amazon S3 访问策略指南, https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-alternatives-guidelines.html