通过试运行 API 调用进行 AWS IAM 策略验证

问题描述 投票:0回答:3

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

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

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

添加了一些其他验证,但手动添加所有验证检查确实很困难。我相信,AWS 必须为策略提供某种试运行设施。

amazon-web-services go aws-sdk amazon-iam aws-sdk-go
3个回答
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 等。


1
投票

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

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

我猜使用 Go,您可以使用类似以下内容来根据此 Json 架构验证 JSON:

https://github.com/xeipuuv/gojsonschema

使用此方法的问题可能是,如果 IAM 更改了它们的内容,您必须不断更新您这边的架构。


0
投票

AWS 提供了一个端点来验证 IAM 策略的语法和最佳实践。可以通过 CLI 或 API 调用。

https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html

© www.soinside.com 2019 - 2024. All rights reserved.