[新機能] DynamoDB で保存時のデータ暗号化が東京リージョンでサポートされました | Developers.IO

[新機能] DynamoDB で保存時のデータ暗号化が東京リージョンでサポートされました

こんにちは、菊池です。

本日ご紹介する新機能はこちらです。

フルマネージドなNOSQLデータベースサービス、Amazon DynamoDBで、データ保存時の暗号化に対応しました。すでに一部のリージョンでは、今年2月の時点でサポートされていました。

今回のアップデートにて対応するリージョン拡大され、東京リージョンでも利用可能になりました。すでにサポートされていたリージョンと合わせて、14リージョンでDynamoDBの暗号化が可能になります。

  • us-east-1(バージニア北部)
  • us-east-2(オハイオ)
  • us-west-1(北カリフォルニア)- New
  • us-west-2(オレゴン)
  • ca-central-1(カナダ)- New
  • eu-west-1(アイルランド)
  • eu-west-2(ロンドン)- New
  • eu-central-1(フランクフルト)- New
  • ap-northeast-1 (東京)- New
  • ap-northeast-2(ソウル)- New
  • ap-southeast-1(シンガポール)- New
  • ap-southeast-2(シドニー)- New
  • ap-south-1(ムンバイ)- New
  • sa-east-1(サンパウロ)- New

暗号化を有効にしたテーブルの作成

それでは、暗号化したテーブルを作成してみます。暗号化の仕様については、公式ドキュメントを併せて確認ください。

暗号化を有効化できるのは、テーブル作成時のみです。既存のテーブルを暗号化することはできず、また、後から暗号化を無効にすることもできません。

暗号化にはKMS(Key Management Service)が利用され、サービスデフォルトキーにて、テーブル、インデックスが暗号化されます。

マネジメントコンソールから

それでは、マネジメントコンソールから暗号化を有効にしたテーブルを作成します。

テーブル作成時の、[デフォルト設定の使用]のチェックを外します。

すると、暗号化のオプションが表示されますので、チェックを入れて作成します。

暗号化が有効に設定されたテーブルが作成しました。

AWS CLIから

AWS CLIからも試してみます。

CLIからは、create-tableコマンドで--sse-specification Enabled=trueをオプションにしていることで暗号化が有効になります。

$ aws dynamodb create-table \
> --table-name testTable \
> --attribute-definitions AttributeName=id,AttributeType=S \
> --key-schema AttributeName=id,KeyType=HASH \
> --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
> --sse-specification Enabled=true
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:ap-northeast-1:xxxxxxxxxxxx:table/testTable",
        "AttributeDefinitions": [
            {
                "AttributeName": "id",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 5,
            "ReadCapacityUnits": 5
        },
        "TableSizeBytes": 0,
        "TableName": "testTable",
        "TableStatus": "CREATING",
        "TableId": "2aca8937-ab92-4fb5-ae74-xxxxxxxxxxxx",
        "SSEDescription": {
            "Status": "ENABLED"
        },
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "id"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1524399386.963
    }
}

SSEDescriptionENABLEDになったテーブルが作成されました。

KMSキー

暗号化を有効にしてテーブルを作成すると、KMSにサービスデフォルトキーaws/dynamodbが作成されています。

さいごに

DynamoDBで保存するデータの暗号化がサポートされました。

これまで、コンプライアンス要件により暗号化が必須であったために、DynamoDBの利用ができなかったようなケースでは、新しい選択肢が提供されることになります。