当前位置: 首页 > news >正文

在Minio以STS方式获得临时凭据

文章目录

  • 前言
  • 一、STS 临时凭据的核心概念
  • 二、MinIO 对 STS 的支持
  • 三、配置
    • 1.创建策略
    • 2.创建用户,绑定策略
    • 3.通过Java 获得凭据
  • 总结


前言

在使用对象存储服务(如MinIO)时,安全性始终是首要考虑的问题。直接将长期访问密钥(Access Key 和 Secret Key)暴露给前端应用或不可信的客户端,存在极大的安全风险——一旦泄露,攻击者可能长期非法访问存储资源。为了解决这一问题,MinIO 提供了基于 ​​STS(Security Token Service,安全令牌服务)​​ 的临时凭据机制,允许用户动态获取具有有限权限和有效期的临时访问凭证,既满足业务需求,又大幅提升安全性。


一、STS 临时凭据的核心概念

  1. 什么是 STS?
    STS 是一种安全服务,允许用户通过调用接口动态申请临时访问凭证(包括临时 Access Key、Secret Key 和 Security Token)。这些临时凭证具有以下特性:
  • ​​时效性​​:默认有效期较短(如 15 分钟~1 小时),过期后自动失效。
  • 权限受限​​:临时凭证的权限由关联的 ​​策略(Policy)​​ 严格限制,仅能执行被明确授权的操作(例如仅允许上传到特定 Bucket)。
  • ​​不可长期持有​​:无法像长期密钥一样长期使用,需每次使用时重新申请。
  1. 为什么需要 STS?
  • 避免长期密钥泄露​​:前端应用(如 Web/移动端)无需直接接触长期 Access Key,降低因代码泄露导致的数据风险。​​
  • 精细化权限控制​​:通过策略动态定义临时凭证的权限范围(例如“仅允许上传图片到 user-uploads/目录”)。
  • ​​符合最小权限原则​​:临时凭证仅授予完成当前任务所需的最小权限,减少攻击面

二、MinIO 对 STS 的支持

MinIO 完全兼容 AWS S3 的 STS API(基于 AWS Signature V4),因此可以直接使用 AWS 官方文档中的 STS 接口规范(如 AssumeRole)。MinIO 的 STS 服务默认内置于服务中,无需额外部署组件,只需正确配置即可使用。

关键点:

  • MinIO 的 STS 接口地址通常与主服务一致(如 http://minio.example.com),通过特定路径(如 /sts)访问。
  • 需要为 STS 操作配置一个 ​​角色(Role)​​ 或 ​​策略模板​​,用于定义临时凭证的权限。
  • 客户端通过调用 AssumeRole接口(或其他 STS 接口,如 GetFederationToken),传入角色信息及可选参数(如会话名称),获取临时凭证。

三、配置

1.创建策略

在这里插入图片描述
在这里插入图片描述

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

2.创建用户,绑定策略

在这里插入图片描述
在这里插入图片描述

3.通过Java 获得凭据

    public CredentialsToken getCredentials() {try {AssumeRoleProvider provider = new AssumeRoleProvider(OssConfiguration.endpoint, OssConfiguration.stsUser,OssConfiguration.stsPassword, Math.toIntExact(OssConfiguration.expire),null, OssConfiguration.region, null, null, null, null);Credentials credential = provider.fetch();return new CredentialsToken(credential.accessKey(), credential.secretKey(), credential.sessionToken(), OssConfiguration.expire);} catch (NoSuchAlgorithmException e) {log.debug("Failed to obtain sts.");e.printStackTrace();}return null;}

总结

通过 MinIO 的 STS 机制,开发者可以安全地实现“按需授权、临时访问”的对象存储方案,有效平衡业务灵活性与数据安全性。无论是前端直传、第三方集成还是多租户场景,STS 都是推荐的实践方式。结合自定义策略和合理的有效期设置,能够进一步降低安全风险,构建可靠的云存储架构。

http://www.dtcms.com/a/465186.html

相关文章:

  • 【多线程】屏障(Barrier)
  • 通过高新区网站建设兰州市城乡建设局网官网站
  • 商城网站建设如何建设网站设计的公司
  • 【OPENGL ES 3.0 学习笔记】第一天:认识渲染管道
  • 从数据沼泽到智能决策:数据驱动与 AI 融合的中台建设方法论与技术实践指南(二)
  • Trae Solo+豆包Version1.6+Seedream4.0打造“AI识菜通“
  • Linux 基金会牵头成立 React 基金会:前端开源生态迎来里程碑式变革
  • 机器学习数据处理
  • 学习笔记: 从C语言基础到Python基础的过渡
  • C语言编写、测试、维护、审查规范
  • 公司网站建设价格标准东莞产品网络推广
  • 从KPI入手,全面掌握LTE网络性能测试与优化
  • 基于LLaMA-Factory的LoRA微调实战与性能剖析​
  • 网络层协议之VRRP协议
  • 3.2 无连接传输: UDP
  • 利用R语言绘制直方图
  • Transformer Decoder 中序列掩码(Sequence Mask / Look-ahead Mask)
  • 《R for Data Science (2e)》免费中文翻译 (第9章) --- Layers(2)
  • php集成VSCode开发
  • 邯郸市民网企业网站优化公司有哪些
  • 陕西 餐饮 网站建设外贸网站建设公司价格
  • 开源书签管理器Faved
  • 【全开源】企业微信SCRM社群营销高级版系统+uniapp前端
  • 深入浅出MATLAB数据可视化:超越plot()
  • 基于IMBT框架的定制开发开源AI智能名片S2B2C商城小程序直播营销规范化研究
  • 开源 C++ QT QML 开发(十五)通讯--http下载
  • 【CANN训练营】+开源之星+GitCode算子开发环境快速搭建手册
  • 西安网站建设网站网站集约化建设
  • 设计网站名称wordpress无法发送
  • python获取国内股票数据