Tablestore は、テーブルに保存された機密データを保護するため、保存時の暗号化をサポートしています。テーブルの作成時に Key Management Service (KMS) ベースまたは Bring Your Own Key (BYOK) ベースの方式を選択して、暗号化を有効にします。
仕組み
すべての暗号化キーは KMS から提供されます。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 ロールの[アクション]列の[権限を付与]をクリックします。
-
[権限の付与] パネルで、[ポリシー] セクションでポリシー名を検索し、カスタムポリシーを選択して、[権限を付与] をクリックします。
承認が成功すると、
TablestoreBYOKPolicyカスタムポリシーがTablestoreBYOKRAM ロールにアタッチされ、実行ステータスが完了と表示されます。
-
RAM ロールの ARN をコピーします。
RAM コンソールにログインします。
を選択します。[ロール] ページで、ロール名をクリックします。
-
[基本情報] セクションから ARN をコピーします。
-
暗号化されたテーブルの作成
キー ID と RAM ロール ARN を取得したら、Tablestore コンソールで BYOK で暗号化されたテーブルを作成します。
Tablestore コンソールにログインします。
ページの上部で、リージョンを選択します。
[概要] ページで、インスタンス名をクリックするか、[操作] 列の [インスタンスの管理] をクリックします。
[インスタンス詳細] タブで、[テーブルの作成] をクリックします。
-
[テーブルの作成] ダイアログボックスで、パラメーターを設定します。
テーブル名を入力し、プライマリキーを設定します。
-
[暗号化] スイッチをオンにし、[暗号化タイプ] パラメーターに [BYOK ベースのキー] を選択して、前提条件で取得したキー ID と RAM ロール ARN を入力します。
[作成] をクリックします。
暗号化が有効になっていることを確認するには、テーブル名をクリックし、[基本情報] タブの [説明] セクションの [暗号化] フィールドに [Yes-BYOK-based Key] と表示されていることを確認します。
プログラムによるテーブル作成
Tablestore SDK for Java または Tablestore SDK for Go を使用して、プログラムでデータテーブルを作成する際に暗号化方法を指定できます。
課金
データ暗号化には KMS の料金が適用されます。料金の詳細については、「課金」をご参照ください。