AWS KMS 实现跨租户的安全数据加密(一)

2019 年 12 月 26 日

AWS KMS 实现跨租户的安全数据加密(一)

1 技术背景


在大量 saas 平台客户需求实践中,有非常多的 User 担心敏感数据如何保存,如何安全隔离敏感数据。本文主要针对 saas 平台敏感数据加密需求,利用 AWS KMS 服务,结合用户场景构建数据安全加密方案。


1.1 问题描述


  • 对客户数据里的指定数据加密(如:姓名,电话,地址等);

  • 密码与加解密权限要有严格的管理方案(隔离租户与用户间的使用权限);

  • 隔离除系统管理员外其他开发和运维用户访问用户数据;

  • 记录CMK 访问记录,用户可以审计data key使用情况;

  • 用户可以拥有全部的CMK管理权限(可以随时修改CMK使用策略);

  • 采用行业认证的公开加密算法和加密流程加密数据(信封加密)。


1.2 系统架构


  • AWS cognito 实现saas平台认证机制集成;

  • 通过AWS KMS 服务实现主密钥的安全管理;

  • AWS encryption SDK 实现信封加密;

  • IAM Policy 实现系统层的安全隔离;

  • Cloud trail 实现操作审计;



1.3 数据加密解密流程




2 KMS 配置


2.1 创建 KMS CMK



2.2 创建别名



2.3 配置 CMK 及管理权限


安全考虑 CMK 管理和数据加密权限是分开管理



防止管理员误删除 CMK



2.4 配置用户使用用户(方案中选定角色,与下面 Cognito 角色一致)



2.5 编辑 KMS 策略(只允许指定的租户可以使用 CMK)


Java


{    "Id": "key-consolepolicy",    "Version": "2012-10-17",    "Statement": [        {            "Sid": "Enable IAM User Permissions",            "Effect": "Allow",            "Principal": {                "AWS": "arn:aws-cn:iam::accountid:root"            },            "Action": "kms:*",            "Resource": "*"        },        {            "Sid": "Allow use of the key",            "Effect": "Allow",            "Principal": {
复制代码


本文转载自 AWS 技术博客。


原文链接:https://amazonaws-china.com/cn/blogs/china/aws-kms-enables-secure-data-encryption-across-tenants/


2019 年 12 月 26 日 13:47229

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

入坑 docsify,一款神奇的文档生成利器!

沉默王二

docsify

32核打赢AMD64核 英特尔Ice Lake为HPC提供强劲性能

intel001

DataOps系列丨数据的「资产负债表」与「现状」

DataPipeline

大数据

阿里达摩院副院长亲自所写Java架构29大核心知识体系+大厂面试真题+微服务

Java架构追梦

Java 学习 阿里巴巴 架构 面试

媲美物理机,裸金属云主机如何轻松应对11.11大促

京东智联云开发者

云计算 服务器 云主机 裸金属容器

DataPipeline 王睿:业务异常实时自动化检测 — 基于人工智能的系统实战

DataPipeline

大数据

【JDD京智大咖说】AI 未来,路在何方?NLP、CV 技术的探索与展望

京东智联云开发者

人工智能 CV nlp

AI技术在音乐类产品中的应用场景

HIFIVE嗨翻屋

人工智能 AI 音乐 音乐制作

号外!5G+X联创营华为云官网上线,5G 创业春天来了!

华为云开发者社区

华为 程序员 AI 5G

企业工作流设计原则及多项目整合开发注意事项

Marilyn

敏捷开发 工作流 企业开发

阿里P8架构师吐血整理的《SpringBoot+Vue全栈开发实战》文档资料

Java架构之路

Java 程序员 架构 面试 编程语言

DataPipeline CTO 陈肃:构建批流一体数据融合平台的一致性语义保证

DataPipeline

数据融合

Scrum指南这么改,我看要完蛋!

华为云开发者社区

Scrum 敏捷 改版

京东T8Java架构师总结整理的15w字的Java面试手册,2021年金三银四不愁涨不了薪!

Java架构之路

Java 程序员 架构 面试 编程语言

架构师训练营 1 期 - 第九周 - 性能优化 3

三板斧

【得物技术】浅谈分布式事务中间件Seata

得物技术

开源 分布式事务 中间件 解决方案 seata

Springboot过滤器和拦截器详解及使用场景

996小迁

Java 编程 架构 面试 springboot

MySQL 连接为什么挂死了?

华为云开发者社区

微服务 数据 存储

《迅雷链精品课》第六课:主流区块链数据存储分析(一)

迅雷链

区块链

微服务手册:高速查询?除了Redis我们还有另外的选择

互联网应用架构

redis 微服务 springboot Caffeine 高速缓存

数字人民币究竟是什么

CECBC区块链专委会

数字货币

快进收藏吃灰!字节跳动大佬用最通俗方法讲明白了红黑树算法

小Q

Java 学习 架构 面试 算法

架构师训练营 1 期 -- 第九周作业

曾彪彪

极客大学架构师训练营

接口测试学习之json

测试人生路

json 接口测试

前嗅教你大数据——史上最全代理IP服务商对比

前嗅大数据

大数据 数据采集 动态代理 静态代理 代理IP

6. 自定义容器类型元素验证,类级别验证(多字段联合验证)

YourBatman

Hibernate-Validator Bean Validation 多字段联合验证

一周信创舆情观察(11.9~11.15)

统小信uos

Redis也能搞定时任务,你们要讲武德

周老师

Java 编程 程序员 架构 面试

互联网券商系统搭建建议书

软件开发大鱼V15724971504

国际配售 港股交易系统开发 证券交易系统 IPO系统开发 金融平台搭建

3年Java开发经验从阿里、美团、滴滴面试回来,想和Java程序员谈一谈感悟及面经

Java架构之路

Java 程序员 架构 面试 编程语言

第九周学习性能优化 3 总结

三板斧

极客大学架构师训练营

AWS KMS 实现跨租户的安全数据加密(一)-InfoQ