首页 > 解决方案 > 针对 Grafana 警报写入 s3 存储桶的 AWS IAM 策略问题

问题描述

grafana 能够上传图像的 AWS 权限和策略存在一些问题。首先,我根据https://grafana.com/docs/installation/configuration/#access-key的要求尝试使用附加到我的用户的自定义策略。

这是政策:

custom policy with locked down permissions and bucket name
{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl"
        ],
        "Resource": "arn:aws:s3:::myclient-grafana-images"
    }
]
}

不幸的是,这不起作用,并且可以在我的 grafana 日志中看到拒绝访问错误。用户正在尝试将图像写入存储桶并最终添加了 AWS 预定义策略以实现 s3 完全访问。这设法让它工作

s3 full access policy
{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "*"
    }
]
}

问题是试图将策略锁定到我需要的存储桶中。我尝试使用完全访问策略创建新策略并更新通配符以引用 s3 arn,但这也不起作用。

关于锁定政策的最佳方式的任何建议。

标签: amazon-web-servicesamazon-iamgrafana

解决方案


和操作适用于对象,而不是存储桶PutObjectPutObjectAcl

这意味着您的Resource密钥应该代表对象。对象的 ARN 以存储桶名称开头,但后跟 a/和路径。

如果您希望能够将任何对象放入您的存储桶中,您应该通过以下方式调整您的策略(注意/*):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": "arn:aws:s3:::myclient-grafana-images/*"
    }
  ]
}

推荐阅读