【问题标题】:Attempting to enable encryption on DynamoDB尝试在 DynamoDB 上启用加密
【发布时间】:2018-03-21 12:27:20
【问题描述】:

尝试对 DynamoDB 表使用静态加密。

正在使用 Cloud Formation 创建表,并使用以下设置进行加密:

SSESpecification:
    SSEEnabled: true

从 AWS 控制台查看表格概览时,该表格表明它确实是加密的。

但是,当查看表格中的项目时,它显示为纯文本,根本没有加密。

有人知道发生了什么吗?通过阅读文档,应该在使用概述的这些设置加载表时激活加密,但我可能会遗漏一些东西......

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb


    【解决方案1】:

    静态加密对用户完全透明,所有 DynamoDB 查询都可以无缝处理加密数据

    From their blog

    您只需在创建新表和 DynamoDB 时启用加密 照顾其余的。您的数据(表、本地二级索引、 和全局二级索引)将使用 AES-256 和 服务默认 AWS 密钥管理服务 (KMS) 密钥。加密 不增加存储开销并且完全透明;你可以 像以前一样插入、查询、扫描和删除项目。球队没有 在启用加密和运行后观察延迟的任何变化 加密 DynamoDB 表上的多个不同工作负载。

    关于验证,博客提到了一种验证数据是否加密的方法。它涉及测量仅在表被加密时才会存在的副作用。诚然,这不是直接验证,但我相信它已经接近我们现在所能达到的程度。

    当我的合规团队要求我向他们展示 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"
        }
      ]
    }
    

    【讨论】:

    • 谢谢汤姆。你知道如何验证 data 是加密的(除了看到表被标记为加密)吗?此外,这对于查看表中项目的任何用户是否透明?只是想知道这应该有多有效......
    • 更新了地址验证的答案。您还询问了对任何用户的透明度。简而言之,是的。我认为值得一提的是,对于任何有权访问该表的用户,加密都是透明的。任何未经许可的用户都将照常被拒绝访问。
    猜你喜欢
    • 2018-11-01
    • 2011-08-17
    • 2018-09-30
    • 2020-09-05
    • 1970-01-01
    • 2020-09-23
    • 2021-12-11
    • 1970-01-01
    • 2021-01-01
    相关资源
    最近更新 更多