1

我正在开发一个将 IAM 策略作为 JSON 并在 aws 上创建策略的工具。我正在使用 aws-sdk-go 来构建该工具。我正在寻找一种在aws上执行策略之前验证策略的方法。AWS 是否提供某种 API 来试运行策略创建或类似的东西?

我尝试过的事情:我正在逐个字段验证策略。

  • 效果字段必须是AllowDeny
  • 对于操作字段,我在工具中添加了一个字典,将服务映射到有效操作。这种方法的问题是它需要大量的维护。AWS 不断发布新的服务和操作,我必须更新字典。
  • 对于资源,它应该是有效的 ARN。

添加了一些其他验证,但手动添加所有验证检查非常困难。我相信,aws 必须为政策提供某种试运行工具。

4

2 回答 2

1

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等。

于 2019-01-06T16:30:16.873 回答
1

您可以使用 JSON Schema 进行一些验证。如果您在线查看,您可以在 github 上找到一些示例 IAM Json Schemas。这是一个例子:

https://gist.github.com/jstewmon/ee5d4b7ec0d8d60cbc303cb515272f8a

而且我猜使用 Go,您可以使用类似以下的方法来针对此 Json Schema 验证 JSON:

https://github.com/xeipuuv/gojsonschema

使用这个的问题可能是,如果 IAM 改变了他们的东西,你必须不断更新你身边的模式。

于 2020-09-18T21:32:45.843 回答