透過的データ暗号化 (TDE) は、データがストレージに書き込まれるときに暗号化し、ストレージから読み取られるときに復号します。TDE はデータファイルのサイズを増加させず、ご利用のアプリケーションに変更を加える必要はありません。データセキュリティを強化するには、ApsaraDB for MongoDB コンソールでご利用のインスタンスの TDE を有効化します。
前提条件
インスタンスはレプリカセットインスタンスまたはシャードクラスターインスタンスです。
インスタンスのストレージエンジンは WiredTiger です。
インスタンスがローカル SSD を使用している場合、データベースバージョンは 4.0 または 4.2 である必要があります。
インスタンスがクラウドディスクを使用している場合、データベースバージョンは 4.4 または 5.0 である必要があります。データベースバージョンがこれより古い場合は、「メジャーデータベースバージョンをアップグレードする」をご参照ください。
説明TDE を有効化する前に、互換性のある従量課金インスタンスを作成してアプリケーションの互換性をテストしてください。テスト完了後、インスタンスをリリースできます。
KMS は有効化されています。
ご利用のインスタンスがアーキテクチャまたはストレージエンジンの要件を満たさない場合は、「インスタンス構成を変更する」をご参照ください。
影響
TDE を有効化するとインスタンスが再起動され、一時的な接続中断が発生します。この操作はオフピーク時間中に実行し、ご利用のアプリケーションに再接続メカニズムがあることを確認してください。
TDE を有効化すると、インスタンスの CPU 使用率が増加します。
暗号化されたコレクションを自己管理データベースに復元するには、物理バックアップではなく論理バックアップを使用する必要があります。詳細については、「論理バックアップを使用して自己管理データベースにデータを復元する」をご参照ください。
考慮事項
一度有効化すると、TDE は無効にできません。
TDE 有効化済みインスタンスで、リリースされたものは、[ごみ箱] から復元できません。
TDE はインスタンスレベルで有効化され、コレクションレベルの暗号化のみをサポートします。フィールドレベルの暗号化を実行するには、「Client-Side Field Level Encryption」をご参照ください。この機能は MongoDB 4.2 インスタンスでのみ利用可能です。
説明特定のビジネス要件がある場合は、コレクション作成時に暗号化されないように指定できます。詳細については、「コレクションを暗号化から除外する」をご参照ください。
TDE を有効化すると、新規作成されたコレクションのみが暗号化されます。既存のコレクションは暗号化されないままになります。
Key Management Service (KMS) は、TDE で使用されるキーを生成および管理します。ApsaraDB for MongoDB は、暗号化に必要なキーまたは証明書を提供しません。KMS の詳細については、「Key Management Service とは」をご参照ください。
説明現在、KMS のデフォルトキーのみがサポートされています。
キーローテーションはサポートされていません。キーを変更するには、Data Transmission Service (DTS) を使用してデータを新しいインスタンスに移行する必要があります。データ移行の詳細については、「ApsaraDB for MongoDB インスタンス間でデータを移行する」をご参照ください。
操作手順
レプリカセットインスタンス または シャードクラスターインスタンス ページに移動し、上部のナビゲーションバーでリージョンとリソースグループを選択してから、ターゲットインスタンスの ID をクリックします。
左側のナビゲーションペインで、 をクリックします。
TDE ステータス: の横にあるスイッチをオンにします。
TDE の有効化 ダイアログボックスで、キー生成方法を選択します。
自動作成されたキーを使用:システム生成キーを使用します。
カスタムキーを使用:ドロップダウンリストからキーを選択します。使用するキーがリストにない場合は、キーを作成してから選択します。キーの作成方法の詳細については、「キーを作成する」をご参照ください。
説明カスタムキーの場合、現在サポートされているのはデフォルトの KMS キーのみです。
投入 をクリックします。
インスタンスステータスが TDE 更新中 に変更されます。インスタンスステータスが 実行中 に戻ると、操作は完了します。
コレクションを暗号化から除外する
TDE を有効化すると、すべての新規コレクションはデフォルトで暗号化されます。ただし、特定のコレクションは作成時に暗号化から除外できます。
mongo シェルを使用してデータベースインスタンスに接続します。詳細については、「レプリカセットインスタンスに接続する」または「シャードクラスターインスタンスに接続する」をご参照ください。
次のコマンドを実行して、暗号化されていないコレクションを作成します。
構文:
db.createCollection("<collection_name>",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })説明コマンドで、
collection_nameはコレクションの名前です。例:
db.createCollection("customer",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })