amazon-web-services - 针对 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,但这也不起作用。
关于锁定政策的最佳方式的任何建议。
解决方案
和操作适用于对象,而不是存储桶PutObject
。PutObjectAcl
这意味着您的Resource
密钥应该代表对象。对象的 ARN 以存储桶名称开头,但后跟 a/
和路径。
如果您希望能够将任何对象放入您的存储桶中,您应该通过以下方式调整您的策略(注意/*
):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": "arn:aws:s3:::myclient-grafana-images/*"
}
]
}
推荐阅读
- php - 如何使用 ajax 和 php 创建和更新文本文件?
- c# - C# - 如何正确使用所有扩展方法
- r - 在 R 中跨多个 CSV 优化变量和年份合并代码
- amazon-web-services - 如何在 AWS lambda 上安装 fontconfig?
- python - 拆分编号字符串
- machine-learning - RNN Transducer 训练中的标签对齐
- r - 如何在 R 中用 abline() 绘制简单的垂直线?
- powershell - Powershell 中的 % 、 $_ 和 @ 是什么意思?
- php - Laravel 一般错误:1005 无法创建表
- excel - 读取和列出用户输入的文件位置并在错误时退出的宏