【发布时间】:2021-07-13 04:35:09
【问题描述】:
似乎不可能允许开发人员在 AWS 中创建 Lambda 并创建或维护 SAM 应用程序,而无需将 AdministratorAccess 策略附加到他们的开发人员角色。 AWS 记录了一个建议的 IAM 设置,其中每个人都只是管理员,或者只有拥有 IAMFullAccess,或者包含“iam:AttachRolePolicy”的更具体的权限集,所有这些都归结为仍然有足够的访问权限来授予只需 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
- IAMFullAccess
- AWSLambda_FullAccess
- AmazonAPIGateway 管理员
- AmazonS3FullAccess
- AmazonEC2ContainerRegistryFullAccess
在文档的末尾,AWS IAM 政策文档描述了一组相当冗长的权限,但包含提到的“iam:AttachRolePolicy”权限,其中包含可能应用的角色的通配符资源。
【问题讨论】:
-
“建议的 AWS 文档” - 你能分享一个链接吗?
-
@Marcin 是的,我会将其与提取的段落一起添加,以防文档将来移动。
-
我明白了。您要么必须每次创建这些角色,以便您的开发人员只使用它们,而不是创建或修改。如果没有,那么您可以按照您的指定使用边界策略,这是一种尝试并查看为您的用例找到正确集合的方法。
-
另外,您可以将开发人员放在他们自己的账户中,作为 AWS org 的一部分。然后,您可以使用 SCP 策略而不是边界策略来限制它们的帐户范围的权限。
-
我明白你的意思。我认为边界和/或 SCP 是要考虑的首选。但除了您可以在文档中找到的内容之外,我没有任何示例。
标签: amazon-web-services security aws-lambda amazon-iam aws-sam