透過的データ暗号化 (TDE) は、ディスクへの書き込み前にデータを暗号化し、メモリへの読み込み時に復号する機能です。ファイルサイズの増加やアプリケーションの変更は必要ありません。ApsaraDB for MongoDB コンソールで TDE を有効にすることで、インスタンスのデータを保護できます。
前提条件
-
インスタンスのストレージタイプとアーキテクチャが、次の要件を満たしていること:
-
ローカルディスクインスタンス:レプリカセットおよびシャードクラスターをサポートし、データベースバージョンが 4.0 または 4.2 であること。
-
クラウドディスクインスタンス:レプリカセットをサポートし、データベースバージョンが 4.2 から 8.3 (すべてのバージョン) であること。
-
-
インスタンスが WiredTiger ストレージエンジンを使用していること。
-
クラウドディスクインスタンスのマイナーバージョンは、以下のバージョン以降である必要があります。
メジャーバージョン
最小マイナーバージョン
4.2
4.2.36
4.4
4.4.22
5.0
5.0.23
6.0
6.0.24
7.0
7.0.16
8.0
8.0.9
8.3
8.3.1
重要インスタンスのマイナーバージョンが必要なバージョンより古い場合は、TDE を有効にする前にマイナーバージョンをアップグレードしてください。詳細については、「インスタンス設定の変更」をご参照ください。
インスタンスがこれらの要件を満たしていない場合は、「インスタンス設定の変更」をご参照ください。
影響
-
TDE を有効にするとインスタンスが再起動し、一時的な接続中断が発生します。この操作はオフピーク時に実行し、アプリケーションに再接続メカニズムがあることを確認してください。
-
TDE により CPU 使用率が増加します。
-
暗号化されたコレクションは、物理バックアップを使用してセルフマネージドデータベースに復元することはできません。代わりに論理バックアップを使用してください。「論理バックアップを使用したセルフマネージドデータベースへのデータ復元」をご参照ください。
考慮事項
-
TDE は一度有効にすると無効にできません。
-
TDE が有効なインスタンスをリリースした場合、[リサイクル] から復元することはできません。
-
TDE はインスタンスレベルで暗号化を行い、コレクションにのみ適用されます。特定のフィールドを暗号化するには、クライアントサイドフィールドレベル暗号化 (MongoDB 4.2 のみ) を使用します。
説明特定のコレクションの暗号化をスキップするには、「コレクションを暗号化から除外」をご参照ください。
-
TDE は、有効化後に作成された新しいコレクションのみを暗号化します。既存のコレクションは暗号化されません。
-
KMS は TDE キーを生成および管理します。ApsaraDB for MongoDB は暗号化キーや証明書を提供しません。「Key Management Service とは」をご参照ください。
-
TDE を有効化した後、暗号化キーは変更できません。別のキーを使用するには、Data Transmission Service (DTS) を使用して、新しいキーで設定した新規インスタンスにデータを移行します。「ApsaraDB for MongoDB インスタンス間のデータ移行」をご参照ください。
-
TDE で使用される KMS キーが常に利用できることを確認してください。キーが無効化、削除、または期限切れになった場合、インスタンスはロックされて利用できなくなり、既存のバックアップをリカバリに使用することもできなくなります。
操作手順
-
レプリカセットインスタンス または シャードクラスターインスタンス のページに移動します。上部メニューでリソースグループとリージョンを選択し、対象インスタンスの ID をクリックします。
-
ナビゲーションペインで をクリックします。
-
TDE ステータス: の横にあるスイッチをオンにします。
-
TDE の有効化 ダイアログボックスで、要件に基づいてキーの生成方法を選択します。
-
自動作成されたキーを使用:システムが自動的にキーを生成します。
-
カスタムキーを使用:ドロップダウンリストから既存のキーを選択します。使用したいキーが利用できない場合は、まずキーを作成する必要があります。手順については、「キーの作成」をご参照ください。
-
-
投入 をクリックします。
インスタンスは [TDE 更新中] 状態になります。ステータスが [実行中] に変わると、操作は完了です。
コレクションを暗号化から除外
TDE を有効にすると、新しく作成されるすべてのコレクションはデフォルトで暗号化されます。暗号化されていないコレクションを作成するには、作成時にストレージエンジンの設定を指定します。
-
mongo シェルを使用してデータベースに接続します。詳細については、「レプリカセットインスタンスへの接続」または「シャードクラスターインスタンスへの接続」をご参照ください。
-
次のコマンドを実行して、暗号化されていないコレクションを作成します。
-
構文:
db.createCollection("<collection_name>",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })説明collection_nameはコレクション名です。 -
例:
db.createCollection("customer",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })
-