暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

云上数据安全新范式:Apache Doris IAM Assume Role 解锁无密钥访问 AWS S3 数据

SelectDB 2025-09-19
348

一、传统 AK/SK 方式访问 AWS 资源存在的问题


密钥管理困境:

  • 长期暴露风险:静态 AK/SK 需硬编码于配置文件中,一旦因代码泄露、误提交或恶意窃取导致密钥扩散,攻击者可永久获得等同于密钥所有者的完整权限,引发持续性的数据泄露、资源篡改及资金损失风险;

  • 审计盲区: 多用户/多服务共享同一组密钥时,云操作日志仅记录密钥身份而无法关联具体使用者,无法追溯真实责任人或业务模块;

  • 运维成本高:密钥轮换灾难,需手动轮换业务模块密钥,容易出错触发服务中断;

  • 权限管理失控:账户管理不清晰,授权无法满足服务/实例级的最小权限管控需求。

二、AWS IAM Assume Role 机制介绍


AWS Assume Role 是一种安全身份切换机制,允许一个可信实体(如 IAM 用户、EC2 实例或外部账号)通过 STS(安全令牌服务)临时获取目标角色的权限。其运作流程如下:

使用 AWS IAM Assume Role 方式访问的优点:

  • 动态令牌机制(15 分钟~12 小时有效期)替代永久密钥

  • 通过 External ID 
    实现跨账号安全隔离,并且可通过 AWS 后台服务进行审计

  • 基于角色的最小权限原则(Principle of Least Privilege)

AWS IAM Assume Role 访问 S3 Bucket 的鉴权过程:

阶段 1:源用户身份验证

1、权限策略检查

  • 源用户发起 AssumeRole
     请求时,源账户的 IAM 策略引擎首先验证:该用户是否被授权调用 sts:AssumeRole 操作?

  • 检查依据:附着在源用户身份上的 IAM Permissions Policies

2、信任关系校验

  • 通过 STS 服务向目标账户发起请求:源用户是否在目标角色的信任策略白名单中?

  • 检查依据:目标角色绑定的 IAM Trust Relationships Policies(明确允许哪些账号/用户担任该角色)

阶段 2:目标角色权限激活

3、临时凭证生成

  • 若信任关系验证通过,STS 生成三要素临时凭证

    {
      "AccessKeyId": "ASIA***",  
      "SecretAccessKey": "***",  
      "SessionToken": "***" // 有效期 15min-12h
    }

    4、目标角色权限验证

    • 目标角色使用临时凭证访问 AWS S3 前,目标账户的 IAM 策略引擎校验:该角色是否被授权执行请求的S3操作? (如s3:GetObject、s3:PutObject等)

    • 检查依据:附着在目标角色上的 IAM Permissions Policies(定义角色能做什么)

    阶段 3:资源操作执行

    5、访问存储桶

    • 全部验证通过后,目标角色才可执行 S3 API 操作。

    三、Apache Doris 如何应用 AWS IAM Assume Role 鉴权机制


    1、Doris 通过将 FE、BE 进程所部署的 AWS EC2 Instances 绑定到 Source Account ,利用 AWS IAM 的 Assume Role 功能获取跨账户访问权限,从而安全地访问目标账户中的 AWS 资源。具体配置可参考文末的官网文档,主要流程如下图所示:

    2、完成配置后 Doris FE/BE 进程会自动获 EC2 Instance 的 Profile 进行执行 Assume Role 操作和访问 Bucket 操作,扩容时 BE 节点会自动检测新的 EC2 Instance 是否成功绑定 IAM Role,防止出现漏配的情况;

    3、Doris 的 S3 Load、TVF、Export、Resource、Repository、Storage Vault 等功能在 3.0.6 版本之后均支持了 AWS Assume Role 的方式使用,并且在创建时会进行连通性检测,S3 Load SQL 举例如下:

        LOAD LABEL s3_load_demo_202508
        (
            DATA INFILE("s3://your_bucket_name/s3load_example.csv")
            INTO TABLE test_s3load
            COLUMNS TERMINATED BY ","
            FORMAT AS "CSV"
            (user_id, name, age)
        )
        WITH S3
        (
            "provider" = "S3",
            "s3.endpoint" = "s3.us-east-1.amazonaws.com",
            "s3.region" = "us-east-1",
            "s3.role_arn" = "arn:aws:iam::543815668950:role/test-role1",
            "s3.external_id" = "1001"      -- 可选参数
        )
        PROPERTIES
        (
            "timeout" = "3600"
        );

      其中 "s3.role_arn" 对应填入 AWS IAM Account2 下的 Iam role2 的 arn 值,"s3.external_id"对应填入 Trust Relationships Policies 中配置的 externalId 的值(可选配置)。

      4、Doris 当前仅支持了 AWS IAM Assume Role 的机制,未来会逐步实现其他云厂商的类似鉴权机制。

      # 参考资料

      • 官网文档:https://doris.apache.org/zh-CN/docs/3.0/admin-manual/auth/integrations/aws-authentication-and-authorization

      • 演示视频:https://www.bilibili.com/video/BV1U3uezjEPW/


      欢迎扫码添加小助手,加入 Doris社区交流群,还可以免费领取 Doris x AI 和 100+ 企业实践案例集,获取技术帮助、了解最新动态,并与更多开发者和用户互动。


      - END - 

      更多标杆企业信赖

      智慧金融与政企:东北证券|国金证券|国信证券|杭银消金|河北幸福消费金融|汇添富基金|金融壹账通|陆金所控股|霖梓控股|拉卡拉|平安人寿|奇富科技|同程数科|通联支付|无锡锡商银行|星云零售信贷|星火保 | 宇信科技|银联商务|易生支付|招商信诺人寿|招联金融|中信银行信用卡中心|360 数科|360 企业安全浏览器

      互联网与文娱:菜鸟|抖音集团|斗鱼|叮咚买菜|浩瀚深度|京东|工商信息查询平台|货拉拉|快手|荔枝微课|票务平台|墨迹天气|MiniMax|奇安信|趣丸科技|顺丰科技|腾讯音乐|天眼查|网易|网易游戏|网易严选|网易云信|网易云音乐|小米|小鹅通|迅雷|约苗|字节跳动|知乎|360 商业化

      企业服务与新经济:宝尊科技| 波司登|Cisco|橙联|度言|观测云|慧策|快成物流|领健|领创|灵犀科技|名创优品|Moka BI|美联物业|钱大妈|拈花云科|森马 |思必驰|顺丰科技|上海家化 | 物易云通|云积互动|有赞|雨润集团|纵腾集团|中通快递

      先进智造与电信:爱玛|长安汽车|极越汽车|金风科技|科大讯飞|Lifewit|哪吒科技|四川航空|上海通用五菱|三星电子|蜀海供应链|特步|天翼云|雅迪|中国联通|岚图汽车

      作为基于 Apache Doris 的商业化公司,飞轮科技秉承着 “开源技术创新”和“实时数仓服务”双轮驱动的战略,在投入资源大力参与 Apache Doris 社区研发和推广的同时,基于 Apache Doris 内核打造了聚焦于企业大数据实时分析需求的企业级产品 SelectDB ,面向新一代需求打造世界领先的实时分析能力。自 2022 年成立以来,获得 IDG 资本、红杉中国、襄禾资本等顶级 VC 的近 10 亿元融资,创下了近年来开源基础软件领域的新纪录。


      ▼ 点击阅读原文,下载使用 Apache Doris!

      文章转载自SelectDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论