Oracle Label Security - Amazon Relational Database Service

Oracle Label Security

Amazon RDS は OLS オプションの使用を通じて Oracle Database の Oracle Enterprise Edition 用のOracle Label Security をサポートします。

ほとんどのデータベースセキュリティでは、オブジェクトレベルでアクセスを制御します。Oracle Label Security は、個別のテーブル行へのアクセスのきめ細かい制御を提供します。例えば、Label Security を使用して、ポリシーベースの管理モデルで規制コンプライアンスを適用できます。Label Security ポリシーを使用して機密データへのアクセスを制御し、適切なクリアランスレベルを持つユーザーのみにアクセスを制限できます。詳細については、Oracle ドキュメントの「Introduction to Oracle Label Security」を参照してください。

Oracle Label Security の前提条件

Oracle Label Security に関する次の前提条件を理解してください。

  • DB インスタンスでは Bring-Your-Own-License モデルを使用する必要があります。詳細については、「RDS for Oracle のライセンスオプション」を参照してください。

  • Oracle Enterprise Edition の有効なライセンスと、ソフトウェア更新ライセンスおよびサポートが必要です。

  • Oracle ライセンスには、Label Security オプションが必要です。

  • 非マルチテナント (非CDB) データベースアーキテクチャを使用する必要があります。詳細については、「CDB アーキテクチャのシングルテナント設定」を参照してください。

Oracle Label Security オプションの追加

DB インスタンスに Oracle Label Security オプションを追加する一般的な手順は以下のとおりです。

  1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

  2. オプショングループにオプションを追加します。

    重要

    Oracle Label Security は、固定かつ永続オプションです。

  3. オプショングループを DB インスタンスに関連付けます。

Label Security オプションの追加後、オプショングループがアクティブになるとすぐに、Label Security がアクティブになります。

Label Security オプションを DB インスタンスに追加するには
  1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

    1. [Engine] で、[oracle-ee] を選択します。

    2. [メジャーエンジンのバージョン] で、DB インスタンスのバージョンを選択します。

    詳細については、「オプショングループを作成する」を参照してください。

  2. オプショングループに [OLS] オプションを追加します。オプションの追加方法の詳細については、「オプショングループにオプションを追加する」を参照してください。

    重要

    すでに 1 つ以上の DB インスタンスにアタッチされている既存のオプショングループに Label Security を追加すると、すべての DB インスタンスが再起動されます。

  3. 新規または既存の DB インスタンスに、DB オプショングループを適用します。

    • 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。

    • 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。既存の DB インスタンスに Label Security オプションを追加すると、DB インスタンスを自動的に再起動している間に短い停止が発生します。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。

Oracle Label Security の使用

Oracle Label Security を使用するには、テーブルの特定の行へのアクセスを制御するポリシーを作成します。詳細については、Oracle ドキュメントの「Creating an Oracle Label Security Policy」を参照してください。

Label Security を操作する場合、すべてのアクションを LBAC_DBA ロールとして実行します。DB インスタンスのマスターユーザーには LBAC_DBA ロールが付与されます。LBAC_DBA ロールを他のユーザーに付与し、他のユーザーが Label Security ポリシーを管理するようにできます。

非 CDB アーキテクチャを使用する Oracle Database 19c の場合、Oracle Label Security へのアクセスを必要とする新規ユーザーに OLS_ENFORCEMENT パッケージへのアクセスを許可してください。

OLS_ENFORCEMENT パッケージへのアクセス権を付与するには、DB インスタンスにマスターユーザーとして接続し、次の SQL ステートメントを実行します。

GRANT ALL ON LBACSYS.OLS_ENFORCEMENT TO username;

Oracle Enterprise Manager (OEM) Cloud Control を使用して、ラベルセキュリティを設定することができます。Amazon RDS は Management Agent オプションを通じて OEM Cloud Control をサポートします。詳細については、「Enterprise Manager Cloud Control 向け Oracle Management Agent」を参照してください。

Oracle Label Security オプションの削除 (サポートされていません)

Oracle Label Security は、固定かつ永続オプションです。このオプションは固定的なものであり、オプショングループから削除することはできません。Oracle Label Security をオプショングループに追加して DB インスタンスに関連付けた場合、後で DB インスタンスに別のオプショングループを関連付けることはできますが、このグループには Oracle Label Security オプションも含める必要があります。

トラブルシューティング

Oracle Label Security を使用するときに発生する可能性のある問題を次に示します。

問題 トラブルシューティングの推奨事項

ポリシーを作成しようとすると、次のようなエラーメッセージが表示されます: insufficient authorization for the SYSDBA package

Oracle の Label Security 機能の既知の問題により、16~24 文字のユーザーネームを持つユーザーは、Label Security のコマンドを実行することができません。文字数が異なる新しいユーザーを作成し、LBAC_DBA を新しいユーザーに付与し、新しいユーザーとしてログインして、新しいユーザーとして OLS コマンドを実行します。詳細については、Oracle サポートにお問い合わせください。