Tablestore は、テーブルに保存された機密データを保護するための保管時の暗号化をサポートしています。テーブル作成時に、Key Management Service (KMS) ベースまたは Bring Your Own Key (BYOK) ベースのいずれかの方法を選択して暗号化を有効にしてください。
仕組み
すべての暗号鍵は、エンドツーエンドの鍵管理、データ暗号化、シークレット管理を提供する Key Management Service (KMS) から取得されます。
Tablestore は、以下の 2 種類の暗号化方式をサポートしています。
KMS CMK ベースの暗号化:Tablestore はデフォルトのカスタマーマスターキー (CMK) を使用してサービスキーを自動的に生成し、データの暗号化および復号を行います。KMS インスタンスの購入は不要です。
Bring Your Own Key (BYOK) ベースの暗号化:Tablestore は、KMS でユーザーが作成・管理するソフトウェアで保護されたキーを使用します。この方式でテーブルを作成する前に、KMS コンソールでソフトウェアで保護されたキーを作成し、Tablestore が暗号化および復号の権限を持つ Resource Access Management (RAM) ロールを作成しておく必要があります。
対応リージョンと制約事項
暗号化はテーブル作成時のみ有効化できます。テーブル作成後に無効化することはできませんので、ご注意ください。
データ暗号化は以下のリージョンでサポートされています:中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (ウランチャブ)、中国 (深セン)、中国 (香港)、日本 (東京)、シンガポール、インドネシア (ジャカルタ)、ドイツ (フランクフルト)、イギリス (ロンドン)、米国 (シリコンバレー)、米国 (バージニア)。
データ暗号化の有効化
KMS CMK ベースの暗号化の使用
KMS CMK ベースの暗号化では、KMS インスタンスの購入は不要です。テーブル作成時に、暗号化 スイッチをオンにし、暗号化タイプ として KMS の CMK を選択します。
Tablestore コンソール にログインします。
ページ上部でリージョンを選択します。
概要 ページで、インスタンス名をクリックするか、操作 列の インスタンスの管理 をクリックします。
インスタンス詳細 タブで、テーブルの作成 をクリックします。
-
テーブルの作成 ダイアログボックスで、パラメーターを設定します。
テーブル名を入力し、プライマリキーを設定します。
-
暗号化 スイッチをオンにし、暗号化タイプ パラメーターとして KMS の CMK を選択します。Tablestore はデフォルト CMK を使用してサービスキーを生成するため、追加の KMS インスタンスは不要です。

作成 をクリックします。
暗号化が有効になっていることを確認するには、テーブル名をクリックし、基本情報 タブの 説明 セクションにある 暗号化 フィールドに はい - KMS の CMK と表示されていることを確認してください。

BYOK ベースの暗号化の使用
BYOK ベースの暗号化では、テーブル作成前にキー ID と RAM ロール ARN が必要です。以下の前提条件を先に完了してください。
前提条件
-
キー ID の取得:Tablestore はこのキーを使用してデータの暗号化および復号を行います。
-
RAM ロール ARN の取得:Tablestore は RAM ロールを偽装して KMS を呼び出します。ロールを作成し、必要な権限を付与してください。
-
RAM ロールの作成
RAM コンソール にログインします。
を選択します。ロール ページで、ロールの作成 をクリックします。
-
プリンシパルタイプ を クラウドサービス に、プリンシパル名 を Tablestore / OTS に設定し、OK をクリックします。

ロールの作成 ダイアログボックスで、ロール名 フィールドに「TablestoreBYOK」などのロール名を入力し、OK をクリックします。画面の指示に従って検証を完了し、ロールを作成します。
-
カスタムポリシーの作成
RAM コンソール にログインします。
を選択します。ポリシー ページで、ポリシーの作成 をクリックします。
-
JSON タブを選択し、以下のポリシー内容を入力して、OK をクリックします。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "*" ] } ] } ポリシーの作成 ダイアログボックスで、ポリシー名 フィールドに「TablestoreBYOKPolicy」などのポリシー名を入力し、OK をクリックします。
-
カスタムポリシーを RAM ロールにアタッチ
RAM コンソール にログインします。
を選択し、RAM ロールの 操作 列で アクセス許可の付与 をクリックします。
-
アクセス許可の付与 パネルで、ポリシー セクションでポリシー名を検索し、カスタムポリシーを選択して、アクセス許可の付与 をクリックします。

-
RAM ロールの ARN をコピー
RAM コンソール にログインします。
を選択します。ロール ページで、ロール名をクリックします。
-
基本情報 セクションから ARN をコピーします。

-
暗号化済みテーブルの作成
キー ID と RAM ロール ARN を取得したら、Tablestore コンソールで BYOK 暗号化済みテーブルを作成します。
Tablestore コンソール にログインします。
ページ上部でリージョンを選択します。
概要 ページで、インスタンス名をクリックするか、操作 列の インスタンスの管理 をクリックします。
インスタンス詳細 タブで、テーブルの作成 をクリックします。
-
テーブルの作成 ダイアログボックスで、パラメーターを設定します。
テーブル名を入力し、プライマリキーを設定します。
-
暗号化 スイッチをオンにし、暗号化タイプ パラメーターとして BYOK ベースのキー を選択し、前提条件で取得したキー ID と RAM ロール ARN を入力します。

作成 をクリックします。
暗号化が有効になっていることを確認するには、テーブル名をクリックし、基本情報 タブの 説明 セクションにある 暗号化 フィールドに はい - BYOK ベースのキー と表示されていることを確認してください。

プログラムによるテーブル作成
Tablestore SDK for Java または Tablestore SDK for Go を使用して、データテーブルをプログラムで作成する際に暗号化方式を指定できます。
課金
データ暗号化には KMS の利用料金が発生します。料金の詳細については、「課金」をご参照ください。
