【问题标题】:Aws IAM group: Setup readonly access on log group on TerraformAws IAM 组:在 Terraform 上的日志组上设置只读访问权限
【发布时间】:2019-02-21 17:05:48
【问题描述】:

有人知道如何设置对特定日志组的只读访问权限吗?

resource "aws_iam_policy" "logs" {
  name        = "AWSLogs${title(var.product)}"
  description = "Logging policy for ${title(var.product)}"
  policy      = <<EOF
  {
        "Version": "2012-10-17",
        "Statement": [
              {
                "Effect": "Allow",
                "Action": [
                    "logs:Get*",
                    "logs:List*",
                    "logs:Filter*"
                ],
                "Resource": [
                    "arn:aws:logs:::log-group:${aws_cloudwatch_log_group.one.arn}:log-stream:*",
                    "arn:aws:logs:::log-group:${aws_cloudwatch_log_group.two.arn}:log-stream:*",
                    "arn:aws:logs:::log-group:${aws_cloudwatch_log_group.three.arn}:log-stream:*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "logs:DescribeLogGroups"
                ],
                "Resource": "*"
            }
        ]
   }
EOF
}


resource "aws_iam_group_policy_attachment" "logs" {
  group      = "${aws_iam_group.logs.name}"
  policy_arn = "${aws_iam_policy.logs.arn}"
}

resource "aws_iam_group" "logs" {
  name = "${title(var.product)}Logs"
}

我目前正在努力设置只能访问指定的日志组,但是当我将资源设置为“*”时,我只能访问它们。当我将其设置为专用于预定义的日志组时,这是不可能的。有人有好的做法或解决方案吗?当我在上面尝试这个解决方案时,我只会得到

无权执行:logs:FilterLogEvents ,当我尝试通过属于 IAM 组“日志”的用户访问它时。

【问题讨论】:

  • 您是说代码中的策略有效还是无效?您能先显示工作版本,然后显示非工作版本以及您尝试执行某项操作时遇到的错误吗?
  • 这确实不起作用!但是当我在资源上使用“*”更新整个策略时,人们将能够看到所有我不想要的日志。
  • 我已经尝试添加 "arn:aws:logs:::log-group:product-group*:log-stream:*" 但同样的问题:未授权执行:logs:FilterLogEvents .

标签: amazon-ec2 terraform amazon-iam terraform-provider-aws


【解决方案1】:

aws_cloudwatch_log_group.one.arn 已经是one 日志组的完整 ARN,即

arn:aws:logs:us-east-1:123456789012:log-group:one

所以请仅参考Resources 列表中的内容:

resource "aws_iam_policy" "logs" {
  name        = "AWSLogs${title(var.product)}"
  description = "Logging policy for ${title(var.product)}"
  policy      = <<EOF
  {
        "Version": "2012-10-17",
        "Statement": [
              {
                "Effect": "Allow",
                "Action": [
                    "logs:Get*",
                    "logs:List*",
                    "logs:Filter*"
                ],
                "Resource": [
                    "${aws_cloudwatch_log_group.one.arn}:log-stream:*",
                    "${aws_cloudwatch_log_group.two.arn}:log-stream:*",
                    "${aws_cloudwatch_log_group.three.arn}:log-stream:*"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "logs:DescribeLogGroups"
                ],
                "Resource": "*"
            }
        ]
   }
EOF
}

【讨论】:

  • 显然没有解决我的问题!得到同样的错误,这非常令人沮丧。我认为它是 AWS 环境中的一个错误
猜你喜欢
  • 2020-03-10
  • 2012-03-23
  • 2020-02-15
  • 2021-11-26
  • 2020-02-23
  • 2020-08-22
  • 2015-03-02
  • 2021-05-01
  • 2018-12-06
相关资源
最近更新 更多