似乎不可能允许开发人员在 AWS 中创建 Lambda 并创建或维护 SAM 应用程序,而无需将 AdministratorAccess 策略附加到其开发人员角色。AWS 记录了建议的 IAM 设置,其中每个人都是管理员,或者只有IAMFullAccess,或者包含“iam:AttachRolePolicy”的更具体的权限集,所有这些都归结为仍然具有足够的访问权限,可以随意向任何人授予 AdministratorAccess 权限只需 1 个 API 调用。
除了为每个 SAM 或 Lambda 部署创建一个新的 AWS 帐户之外,似乎没有任何安全的方法来管理它,但我真的希望我错过了一些明显的东西。也许有人知道标签、权限边界和 IAM 路径的组合可以缓解这种情况?
我参考的文档: https: //docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-permissions.html,其打开方式为:
可通过三个主要选项授予用户管理无服务器应用程序的权限。每个选项都为用户提供不同级别的访问控制。
- 授予管理员权限。
- 附加必要的 AWS 托管策略。
- 授予特定的 AWS Identity and Access Management (IAM) 权限。
再往下,使用示例应用程序来指定稍微更具体的权限:
例如,以下 AWS 托管策略足以部署示例 Hello World 应用程序:
- AWSCloudFormationFullAccess
- IAM完全访问
- AWSLambda_FullAccess
- AmazonAPI网关管理员
- AmazonS3完全访问
- AmazonEC2ContainerRegistryFullAccess
在文档的末尾,AWS IAM 策略文档描述了一组相当冗长的权限,但包含提到的“iam:AttachRolePolicy”权限以及可能应用该权限的角色的通配符资源。