この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、菊池です。
本日ご紹介する新機能はこちらです。
フルマネージドな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
}
}
SSEDescription
がENABLED
になったテーブルが作成されました。
KMSキー
暗号化を有効にしてテーブルを作成すると、KMSにサービスデフォルトキーaws/dynamodb
が作成されています。
さいごに
DynamoDBで保存するデータの暗号化がサポートされました。
これまで、コンプライアンス要件により暗号化が必須であったために、DynamoDBの利用ができなかったようなケースでは、新しい選択肢が提供されることになります。