亚马逊AWS官方博客

新功能 – DynamoDB 轻松加密

在 2017 年的 AWS re:Invent 大会上,Werner 鼓励听众“尽情舞蹈,就像没人观看一样;轻松加密,就像每个人都会做的那样”:

AWS 团队一直热切希望不断提供新功能,帮助您更轻松地保护敏感数据,实现合规性目标。例如,2017 年我们推出了 SQSEFS 轻松加密功能、适用于 S3 的更多加密选项,以及 Kinesis Data Streams 服务器端加密

今天,我们的数据保护选项再添新成员:Amazon DynamoDB 轻松加密功能隆重推出。您只需在创建新表时启用加密功能,DynamoDB 便可为您执行剩下的操作。您的数据 (表、本地二级索引和全局二级索引) 将使用 AES-256 和服务默认的 AWS Key Management Service (KMS) 密钥加密。加密不会增加存储开销,而且是完全透明的;您可以像以前一样插入、查询、扫描和删除项目。团队人员启用加密功能后,在加密的 DynamoDB 表上运行多个不同的工作负载时发现延迟时间没有任何变化。

创建加密表
您可以利用 AWS 管理控制台、API (CreateTable) 或 CLI (create-table) 创建加密表。我要使用控制台!我像平时一样输入名称并设置主要密钥:

继续操作前,我取消选中 Use default settings (使用默认设置) 复选框,向下滚动至 Encryption (加密) 部分,然后选中 Enable encryption (启用加密)。然后,点击创建后,我的表就会以加密的形式创建:

表的加密设置一目了然:

当合规性团队让我展示 DynamoDB 如何使用密钥加密数据时,我可以创建一个 AWS CloudTrail 路径、插入项目,然后扫描表,查看 AWS KMS API 调用。以下为从路径中提取的一段代码:

{
  "eventTime": "2018-01-24T00:06:34Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "Decrypt",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "dynamodb.amazonaws.com",
  "userAgent": "dynamodb.amazonaws.com",
  "requestParameters": {
    "encryptionContext": {
      "aws:dynamodb:tableName": "reg-users",
      "aws:dynamodb:subscriberId": "1234567890"
    }
  },
  "responseElements": null,
  "requestID": "7072def1-009a-11e8-9ab9-4504c26bd391",
  "eventID": "3698678a-d04e-48c7-96f2-3d734c5c7903",
  "readOnly": true,
  "resources": [
    {
      "ARN": "arn:aws:kms:us-west-2:1234567890:key/e7bd721d-37f3-4acd-bec5-4d08c765f9f5",
      "accountId": "1234567890",
      "type": "AWS::KMS::Key"
    }
  ]
}

现已推出
该功能现已在以下区域推出:美国东部 (弗吉尼亚北部)美国东部 (俄亥俄)美国西部 (俄勒冈)欧洲 (爱尔兰),您可以立即开始使用。

加密是免费的,您只需要为 DynamoDB 代表您进行的 AWS KMS 调用付费。

Jeff