3 Oracle Sharding環境のセキュリティ
Oracle Shardingでの透過的データ暗号化の使用
Oracle Shardingでは透過的データ暗号化(TDE)がサポートされますが、TDEを有効にした状態でシャード・データベース内のチャンクを正常に移行できるように、すべてのシャードが暗号化された表領域に対する同じ暗号化キーを共有して使用する必要があります。
シャード・データベースは、複数の独立したデータベースと1つのカタログ・データベースで構成されます。特にシャード間でデータを移動するときにTDEが正しく機能するように、一定の制限が適用されます。データが暗号化されているときにシャード間のチャンク移動が正常に機能するためには、すべてのシャードで同じ暗号化キーを使用する必要があります。
これを実現するには、次の2つの方法があります。
-
シャード・カタログから暗号化キーを作成してエクスポートし、すべてのシャードに個々にキーをインポートしてアクティブ化します。
-
ウォレットを共有の場所に格納し、シャード・カタログおよびすべてのシャードで同じウォレットを使用します。
シャードDDLを有効にしたシャード・カタログで次のTDE文を実行すると、その操作がシャードに自動的に伝播されます。
-
alter system set encryption wallet open/close identified by password
-
alter system set encryption key
-
administer key management set keystore [open|close] identified by password
-
administer key management set key identified by password
-
administer key management use key identified by password
-
administer key management create key store identified by password
制限事項
Oracle ShardingでのTDEの使用には、次の制限事項が適用されます。
-
MOVE CHUNK
が正常に機能するには、すべてのシャード・データベース・ホストが同じプラットフォームに存在する必要があります。 -
MOVE CHUNK
では、データ転送中にパフォーマンスに影響を及ぼす可能性がある圧縮を使用できません。 -
表領域レベルでの暗号化のみがサポートされます。特定の列に対する暗号化はサポートされません。
関連項目:
TDEの詳細は、『Oracle Database Advanced Securityガイド』を参照してください。
すべてのシャードに対する単一の暗号化キーの作成
シャード・データベース構成内のすべてのデータベースに単一の暗号化キーを伝播するには、シャード・カタログでマスター暗号化キーを作成し、ウォレットをエクスポートしてシャードにインポートし、キーをアクティブ化する必要があります。
ノート:
この手順は、キーストア・パスワードとウォレット・ディレクトリ・パスがシャード・カタログおよびすべてのシャードで同じであることを前提としています。異なるパスワードとディレクトリ・パスが必要な場合は、各シャードとシャード・カタログで、シャードDDLを無効化し、シャードの独自のパスワードとパスを使用して、すべてのコマンドを個別に発行する必要があります。
次のステップは、データの暗号化を実行する前に行う必要があります。
これで、すべてのシャードとシャード・カタログ・データベースで同じ暗号化キーがアクティブ化され、データの暗号化に使用する準備が完了しました。シャード・カタログで、(シャードDDLを有効にして)次のようなTDE DDLを発行できます。
-
暗号化された表領域および表領域セットを作成します。
-
暗号化された表領域を使用してシャード表を作成します。
-
暗号化された列を含むシャード表を作成します(制限があります)。
すべてのシャード上のキーIDがシャード・カタログ上のIDと一致していることを検証します。
SELECT KEY_ID FROM V$ENCRYPTION_KEYS
WHERE ACTIVATION_TIME =
(SELECT MAX(ACTIVATION_TIME) FROM V$ENCRYPTION_KEYS
WHERE ACTIVATING_DBID = (SELECT DBID FROM V$DATABASE));
Oracle Sharding用のSSL/TLSを使用したTCP/IPの構成
「Oracle Sharding用のSSL/TLSを使用したTCP/IPの構成」での手順は、シャードを実行する予定のデータベースのタイプによって異なります。
このセキュリティ機能の構成については、シャードを実行する予定のデータベースのタイプに基づいてドキュメントを参照してください。
-
Autonomous Database
Oracle Autonomous Databaseの場合、TLSはデフォルトで有効になっているため、必要なことは、残りのセキュリティ・インフラストラクチャ(OCI上のボールト、キー、証明書リソースなど)の作成のみです。
-
Base Database Service
OCI上のBase Database Serviceの場合は、「Configure TCP/IP with SSL/TLS for Sharding – GSM OCI Mode (Doc ID 2881390.1)」にある情報を使用してTLSを有効にする必要があります
-
オンプレミス
オンプレミス・データベースの場合は、「Configure TCP/IP with SSL/TLS for Sharding – GSM JDBC THIN MODE (Doc ID 2881420.1)」を参照してください
詳細は、「Oracle Databaseのネイティブ・ネットワーク暗号化とデータ整合性の構成」およびSecure Sockets Layer認証の構成にも記載されています。