我建议禁止putPolicy*
所有非管理员的每个服务支持资源策略的 API 调用。然后提供一个结构化的界面来更改这些策略。我相当肯定用户在没有putPolicy
权限的情况下仍然可以创建 S3 存储桶和 SQS 队列。我确实认为您需要拥有 putPolicy 权限才能创建新的 CMK。
云形成
如果您在 CF 中控制了所有有问题的资源,并且您的用户可以向 CF 模板提交拉取请求。然后,您可以让您的审阅者在运行堆栈和实施更改之前查看更改。
简单的工作流服务
虽然我对这项服务没有个人经验,但这可能是一个很好的用例。您可以让用户提交提议的策略,将其发送给批准者,并在 Lambda 批准后自动实施。这对我来说似乎是最低摩擦的解决方案。
服务目录
同样,我没有操作此服务的个人经验,但是(我相信)您可以设置一个目录项来进行任何可以由 Cloudformation 表示的更改,并提供允许用户使用的千篇一律的模板。可以列出多种类型的策略,其中包含用户可以控制的变量,这将允许他们灵活使用,而无需创建将所有人拒之门外或不符合您的业务标准的策略。此外,这不需要手动批准。
自己滚
这不是一个很难的问题,您无法编写 Lambda 或 Fargate 或其他类型的服务来检查您的企业票务系统并实施已批准的策略。而且您可能能够提供一个自动批准某些策略的界面(不允许所有,管理员允许所有,不否认适用于管理员等),但这取决于您对验证逻辑的信心以及您的业务需求是。