我正在开发一个工具,它将 IAM 策略作为 JSON 并在 aws 上创建策略。我正在使用 aws-sdk-go 来构建该工具。我正在寻找一种方法,可以在 AWS 上执行策略之前验证该策略。 AWS 是否提供某种 API 来空运行策略创建或类似的东西?
我尝试过的事情: 我正在逐个字段验证策略。
Allow
或 Deny
添加了一些其他验证,但手动添加所有验证检查确实很困难。我相信,AWS 必须为策略提供某种试运行设施。
AWS API 公开了一个策略模拟器端点。您应该在 https://docs.aws.amazon.com/sdk-for-go/api/service/iam/ 上了解可以轻松使用策略模拟器的功能,特别是 https://docs.aws .amazon.com/sdk-for-go/api/service/iam/#IAM.SimulateCustomPolicy。
策略模拟器将允许您验证策略的 json,并验证您在策略中授予的权限的结果中是否表达了您的意图。您可以提供上下文键,例如 aws:SourceIp、aws:RequestedRegion 等。
您可以使用 JSON Schema 进行一些验证。 如果您在线查看,您可以在 github 上找到一些示例 IAM Json 架构。 这是一个例子:
https://gist.github.com/jstewmon/ee5d4b7ec0d8d60cbc303cb515272f8a
我猜使用 Go,您可以使用类似以下内容来根据此 Json 架构验证 JSON:
https://github.com/xeipuuv/gojsonschema
使用此方法的问题可能是,如果 IAM 更改了它们的内容,您必须不断更新您这边的架构。
AWS 提供了一个端点来验证 IAM 策略的语法和最佳实践。可以通过 CLI 或 API 调用。
https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html