minio使用临时授权(STS)无法上传对象至bucket

项目场景:

提示:这里简述项目相关背景:

最近新整合minio进行文件的存储,然后需要开放二次策略进行一个临时授权。Java版本11,minio版本8.0.3


问题描述

根据网上的一些教程,成功的整合了minio(具体教程:https://stevenocean.github.io/2021/01/12/minio-sts-assumerole-sample.html),只是进行二次策略进行STS的时候,发现了无法上传对象到bucket,一直报错,提示的是AccessDenied在这里插入图片描述
对应的策略如下

{
    "Version": "2012-10-17",
    "Statement": [
         {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::buckname/*"
            ]
        }
    ]
}

原因分析:

原本猜测是不是打到k8s然后被拒绝了,然后直接使用对应报文用postman发送请求,结果确实是minio返回的错误码。之后又想是不是权限给小了,就把action配了“s3:*”,结果可以了!!!


解决方案:

之后挨个测试了一下,结果发现只要再加一个s3:GetBucketLocation就可以成功上传对象,然后找了一些文档,未果,如果有知道原因的麻烦指出。附上完整的yaml

{
    "Version": "2012-10-17",
    "Statement": [
         {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetBucketLocation",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::buckname/*"
            ]
        }
    ]
}

PS:有一些小坑指出一下
1、minio的sdk中,只有8以上的才支持STS。
2、minio需要使用到google的findbugs,需要提前引入,对应gradle配置如下:
implementation(“com.google.code.findbugs:jsr305:3.0.1”)
implementation(“com.google.code.findbugs:annotations:3.0.1”)
3、如果要获取对应的对象临时url,临时授权好像无法获取,需要使用已经分配好的accesskey与secret(这点不知道是不是自己的问题)

如果有问题,欢迎指出

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值