针对 Grafana 警报写入 s3 存储桶的 AWS IAM 策略问题

Posted

技术标签:

【中文标题】针对 Grafana 警报写入 s3 存储桶的 AWS IAM 策略问题【英文标题】:AWS IAM Policy Issues writing to s3 bucket for Grafana alerts 【发布时间】:2019-09-15 19:51:57 【问题描述】:

在 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,但这也不起作用。

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

【问题讨论】:

【参考方案1】:

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

这意味着您的Resource 密钥应为represent objects。对象的 ARN 以存储桶名称开头,后跟 / 和路径。

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


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

【讨论】:

完成了这项工作。太感谢了。刚刚掌握aws非常有帮助。非常感谢

以上是关于针对 Grafana 警报写入 s3 存储桶的 AWS IAM 策略问题的主要内容,如果未能解决你的问题,请参考以下文章

有没有人达到过 Amazon S3 存储桶的读取或写入上限?

将文本输出写入 S3 存储桶的最佳实践是啥?

python 将小文件写入s3存储桶的lambda处理函数

如何授予 Amazon SES 写入您的 Amazon S3 存储桶的权限

如何将驻留在账户 A 中的 s3 存储桶的访问权限授予来自多个 aws 账户的不同 iam 用户?

S3:如何授予对多个存储桶的访问权限?