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

简介: 本文介绍了 Apache Doris 基于 AWS IAM Assume Role 的无密钥访问能力,解决传统 AK/SK 长期暴露、权限难控与审计困难等问题。通过临时令牌与最小权限机制,Doris 能安全访问 S3 并在 FE/BE 扩容时自动校验角色绑定,全面支持 Load、TVF、Export 等场景。

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

密钥管理困境:

  • 长期暴露风险:静态 AK/SK 需硬编码于配置文件中,一旦因代码泄露、误提交或恶意窃取导致密钥扩散,攻击者可永久获得等同于密钥所有者的完整权限,引发持续性的数据泄露、资源篡改及资金损失风险;
  • 审计盲区: 多用户/多服务共享同一组密钥时,云操作日志仅记录密钥身份而无法关联具体使用者,无法追溯真实责任人或业务模块;
  • 运维成本高:密钥轮换灾难,需手动轮换业务模块密钥,容易出错触发服务中断;
  • 权限管理失控:账户管理不清晰,授权无法满足服务/实例级的最小权限管控需求。

二、AWS IAM Assume Role 机制介绍

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

二、AWS IAM Assume Role 机制介绍.PNG

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

  • 动态令牌机制(15 分钟~12 小时有效期)替代永久密钥
  • 通过External ID实现跨账号安全隔离,并且可通过 AWS 后台服务进行审计
  • 基于角色的最小权限原则(Principle of Least Privilege)

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

二、AWS IAM Assume Role 机制介绍-1.PNG

阶段 1:源用户身份验证

  1. 权限策略检查
    1. 源用户发起 AssumeRole 请求时,源账户的 IAM 策略引擎首先验证: 该用户是否被授权调用 sts:AssumeRole 操作?
    2. 检查依据:附着在源用户身份上的 IAM Permissions Policies
  2. 信任关系校验
    1. 通过 STS 服务向目标账户发起请求: 源用户是否在目标角色的信任策略白名单中?
    2. 检查依据:目标角色绑定的 IAM Trust Relationships Policies(明确允许哪些账号/用户担任该角色)

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

  1. 临时凭证生成
    1. 若信任关系验证通过,STS 生成三要素临时凭证
    2. {
        "AccessKeyId": "ASIA***",  
        "SecretAccessKey": "***",  
        "SessionToken": "***" // 有效期 15min-12h
      }
      
  2. 目标角色权限验证
    1. 目标角色使用临时凭证访问 AWS S3 前,目标账户的 IAM 策略引擎校验: 该角色是否被授权执行请求的S3操作? (如s3:GetObject、s3:PutObject等)
    2. 检查依据:附着在目标角色上的 IAM Permissions Policies(定义角色能做什么)

阶段 3:资源操作执行

  1. 访问存储桶
    1. 全部验证通过后,目标角色才可执行 S3 API 操作。

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

  1. Doris 通过将 FE、BE 进程所部署的 AWS EC2 Instances 绑定到 Source Account 来使用 AWS IAM Assume Role 的功能,主要的流程如下图所示,具体的配置可参照官网文档和视频

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

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

  2. 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 的值(可选配置)。

更多功能 SQL 语句详细参考: Doris 官网文档

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

Reference

目录
相关文章
|
2月前
|
存储 运维 Cloud Native
Apache Doris 与 ClickHouse:运维与开源闭源对比
Doris 与 ClickHouse 各有优势,但在运维效率、集群自动化能力、故障恢复机制以及开源治理模型方面,Doris 展现出了更成熟、更开放、更面向云原生架构的产品能力。对于希望构建可控、弹性、高可用分析平台的团队而言,Doris 提供了一个更具确定性和长期价值的选择。而 ClickHouse 仍是极具性能优势的分析引擎,但其闭源方向的转变可能需要用户在技术与商业之间做出更谨慎的权衡。
354 9
Apache Doris 与 ClickHouse:运维与开源闭源对比
|
3月前
|
存储 自然语言处理 分布式计算
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
Apache Doris 3.1 正式发布!全面升级半结构化分析,支持 VARIANT 稀疏列与模板化 Schema,提升湖仓一体能力,增强 Iceberg/Paimon 集成,优化存储引擎与查询性能,助力高效数据分析。
520 4
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
|
7天前
|
安全 Java 程序员
《Optional:告别空指针的“优雅之道”与“使用陷阱”》
《Optional:告别空指针的“优雅之道”与“使用陷阱”》
157 114
|
19天前
|
SQL 人工智能 数据挖掘
Apache Doris AI 能力揭秘(三):AI_AGG 与 EMBED 函数深度解析
Apache Doris 推出 AI_AGG 与 EMBED 两大核心函数,实现文本智能聚合与语义向量化分析。AI_AGG 支持海量文本动态预聚合,EMBED 结合向量函数实现相似度检索、问答匹配等场景,原生集成 AI 能力至 SQL,让数据分析更智能高效。
120 7
Apache Doris AI 能力揭秘(三):AI_AGG 与 EMBED 函数深度解析
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
562 4
|
5天前
|
数据管理 编译器 C++
为什么好多人电脑都是一样的报错。为什么好多游戏和应用安装报错都一样?
简介: 0xc000007b报错常见于游戏和软件启动失败,主要因缺失或版本不符的Visual C++ 运行库所致。多数程序依赖该运行库提供的基础功能,如数学运算、内存管理、文件读写等。若系统中缺少对应版本(如2015、2022),或32/64位不匹配,均会导致报错。解决方法包括安装完整VC运行库、修复损坏DLL文件。建议用户安装VC运行库合集,确保兼容性。
55 5
|
5天前
|
NoSQL 数据可视化 Redis
RedisStudio-en-0.1.5.exe 安装步骤 详细教程(附安装包)
RedisStudio是一款轻量级Redis可视化管理工具,专为Windows用户设计。支持一键安装,操作简单,可通过图形界面便捷管理Redis数据。下载exe文件后双击运行,按向导提示完成安装即可使用,适合开发者快速查看与操作Redis数据库。
262 154
|
5天前
|
存储 SQL 运维
Apache Doris 在小米统一 OLAP 和湖仓一体的实践
小米早在 2019 年便引入 Apache Doris 作为 OLAP 分析型数据库之一,经过五年的技术沉淀,已形成以 Doris 为核心的分析体系,并基于 2.1 版本异步物化视图、3.0 版本湖仓一体与存算分离等核心能力优化数据架构。本文将详细介绍小米数据中台基于 Apache Doris 3.0 的查询链路优化、性能提升、资源管理、自动化运维、可观测等一系列应用实践。
49 1
Apache Doris 在小米统一 OLAP 和湖仓一体的实践
|
9天前
|
机器学习/深度学习 人工智能 程序员
StackOverflow已经死亡了吗
StackOverflow曾是程序员的“圣地”,但AI崛起正改变这一格局。ChatGPT等工具以高效即时的优势分流用户,使其面临流量下滑与社区文化挑战。而新兴的大模型实验室Lab4AI则融合算力、实践与协作,构建AI时代下的开发者新生态。从问答到实践,开发者社区正在进化。
StackOverflow已经死亡了吗
|
13天前
|
存储 JSON 搜索推荐
深入理解 Doris Variant:如何让 JSON 查询性能追平列存,还能承载万列索引字段?|Deep Dive
在如 Snowflake、ElasticSearch、ClickHouse.... 等传统系统中,对于 JSON 的处理往往面临灵活性及性能无法兼得的困境,而 Apache Doris 的 VARIANT 类型,通过动态子列、稀疏列存储、延迟物化和路径索引等能力,实现了灵活结构 + 列存性能的平衡。本文将对该能力的实现一一讲解,全面展示其优势。
69 7
深入理解 Doris Variant:如何让 JSON 查询性能追平列存,还能承载万列索引字段?|Deep Dive