如何根据规则修复 checkov 失败的项目?

How to fix checkov failed item by its rules?

当 运行 checkov 进行 Terraform 资源扫描时,失败了

Check: CKV_AWS_111: "Ensure IAM policies does not allow write access without constraints"
    FAILED for resource: aws_iam_policy_document.foo
    File: /data.tf:7-18

    data "aws_iam_policy_document" "foo" {
      statement {
        effect = "Allow"
        actions = [
          "cloudwatch:Describe*",
          "cloudwatch:Get*",
          "cloudwatch:List*",
          "sns:Subscribe",
        ]
        resources = ["*"]
      }
    }

从官方文档中找到它的介绍 第.

页面上有一个Fix - Buildtime,但是如何引用它以供我使用 案例?

来自其 资源 曝光 在页面上, 我没有在 "Resource Exposure" actions 列表中找到任何名称作为 cloudwatchsns,为什么它失败了?

如果修复不加# checkov:skip=CKV_AWS_111: XXXX,怎么调整 data 块?

尽管这个问题是在 2021 年 5 月提出的,我希望你已经找到了答案,但我仍然会 post 解决方案,以便未来的孩子们知道如何解决它。


你不应该对资源使用通配符,现在它对所有资源都开放了。

data "aws_iam_policy_document" "foo" {
  statement {
    effect = "Allow"
    actions = [
      "cloudwatch:Describe*",
      "cloudwatch:Get*",
      "cloudwatch:List*",
      "sns:Subscribe",
    ]
    resources = ["resource-arn"]
  }
}

如果您将资源的通配符更改为资源的 arns 列表,它将使用此策略,那么 checkov 将不再显示此错误。