amazon-s3 - 只读用户 - 列出我拥有读取权限的所有存储桶
问题描述
我们正在使用 ceph 并且有几个存储桶。
我们正在使用一个只读用户来备份这些存储桶。
如果我知道列表,我可以备份我的所有存储桶。
我不明白为什么,但我无法列出所有存储桶。
在 ceph radosgw 中是否有可能?我怀疑不是。
该政策如下所示:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"AWS": ["arn:aws:iam:::user/read-only"]},
"Action": [
"s3:ListBucket",
"s3:ListAllMyBuckets",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::bucket",
"arn:aws:s3:::bucket/*"
]
}]
}
而且我在用户层面没有什么特别之处。
但是当我尝试列出时,我得到以下信息:
export AWS_SECRET_ACCESS_KEY=xx
export AWS_ACCESS_KEY_ID=
export MC_HOST_ceph=https://${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}@radosgwdns
mc ls ceph
mc ls ceph/
mc ls ceph/bucket
只有最后一个命令是列出内容。
在这个链接中据说基本上不可能: https ://help.switch.ch/engines/documentation/s3-like-object-storage/s3_policy/
Only S3 bucket policy is available, S3 user policy is not implemented in Ceph S3.
在此发布页面上,他们可能会谈论它: https ://ceph.io/releases/v16-2-0-pacific-released/
RGW: Improved configuration of S3 tenanted users.
谢谢你的帮助!
解决方案
当您通过对用户的存储桶策略访问存储桶时,它不会出现在用户的存储桶列表中。如果您希望它是,您可以创建一个具有none
权限的子用户,并再次使用存储桶策略授予对它的访问权限。现在,当子用户列出存储桶时,它将看到该存储桶,并且由于none
许可,它只能访问您指定的存储桶。子用户的主体是这样的:
"Principal": {"AWS": ["arn:aws:iam:::user/MAIN_USER:SUBUSER"]},
推荐阅读
- git - 存储库 [名称] 已停用,无法重复使用
- flutter - 如何使用修复项目列表设置 Streambuilder
- c++ - C++ 是否保证参数评估的原子性?
- python - 为什么我提示说scrapy中@class的语法无效?
- python - 从带有符号字符的字符串换行中提取整数的有效方法是什么?
- pip - windows Pycharm项目解释器没什么可显示的
- r - 无法在 R studio 中分配 2.8Gb 错误的向量
- c++ - 递归中的段错误,当尝试在 C++ 中的数独求解器算法中回溯时
- python - 合并/分组类实例
- android - Android Studio 4.0 未显示构建错误详细信息