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

阅读数:5 2019 年 12 月 26 日 13:47

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 实现操作审计;

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

1.3 数据加密解密流程

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

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

2 KMS 配置

2.1 创建 KMS CMK

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

2.2 创建别名

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

2.3 配置 CMK 及管理权限

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

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

防止管理员误删除 CMK

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

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

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

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/

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

评论

发布