プライマリ・コンテンツに移動
Oracle® Label Security管理者ガイド
12cリリース1 (12.1)
E56367-02
目次へ移動
目次
索引へ移動
索引

前
次

2 データ・ラベルおよびユーザー・ラベル

データ・ラベルおよびユーザー・ラベルの基本概念を理解する必要があります。

内容は次のとおりです。

ラベルベース・セキュリティについて

ラベルベース・セキュリティは、機密データへのアクセスを柔軟に制御する手段を提供します。

Oracle Label Securityでは、データへのアクセスは、ユーザーの識別情報とラベル、およびデータの機密性とラベルに基づいて制御されます。ラベル・セキュリティは、ユーザーが表やビューなどのオブジェクト内のデータに対して実行できる操作を決定する任意アクセス制御以外の保護を追加します。

表2-1に、Oracle Label Securityポリシーがデータへのアクセス制御に使用する3つのディメンションを示します。

表2-1 Oracle Label Securityのデータ・ディメンション

データ・ディメンション 説明

データ・ラベル

データの行ラベルは、その行の機密性のレベルと性質を示し、ユーザーがその行にアクセスするために満たす必要のある追加の基準を指定します。

ユーザー・ラベル

ユーザー・ラベルは、ユーザーの機密レベルに加えてユーザーのアクセスをラベル付きデータに制約する区分とグループを指定します。各ユーザーには、レベル、区分およびグループの範囲が割り当てられ、各セッションはその認可範囲内で動作してその範囲内のラベル付きデータにアクセスできます。

ポリシー権限

ユーザーに、特殊な操作を実行する権利(権限)、またはそのラベル認可を超えてデータにアクセスする権利(権限)を付与できます。

ここでの説明はデータへのアクセスに関するものです。データの読取りや書込みなどの特定のタイプのアクセスは、「アクセス制御および権限」で説明しています。

データベース表にOracle Label Securityポリシーが適用されると、各行のラベルを格納するために表に1列が追加されます。管理者は、この列を表示するか非表示にするかを選択できます。

ユーザー・ラベルと権限管理について

ユーザーのラベルと権限を管理するには、SA_USER_ADMINパッケージに対するEXECUTE権限およびpolicy_DBAロールを持っている必要があります。

SA_USER_ADMINパッケージには、Oracle Label Securityユーザーのセキュリティ属性を管理するためのファンクションが用意されています。また、ユーザーのレベル、区分およびグループを指定するなど、ユーザー・ラベルをコンポーネント別に管理できるように複数のプロシージャが含まれています。さらに、コンポーネントではなくラベル全体の文字列表現を受け入れるプロシージャもあります。レベル、区分およびグループのパラメータでは、各コンポーネントに対して定義された短縮名が使用されることに注意してください。

すべてのラベルおよび権限情報は、Oracle Label Securityのデータ・ディクショナリ表に格納されます。ユーザーがデータベースに接続すると、Oracle Label Securityのデータ・ディクショナリに格納されている情報に基づいてそのセッション・ラベルが確立されます。

ユーザーを複数のポリシーに基づいて認可できることに注意してください。

関連項目:

ラベル・コンポーネント

ラベルで使用される要素について理解する必要があります。

内容は次のとおりです。

ラベル・コンポーネントの定義および有効な文字

機密性ラベルは、複数のコンポーネントを持つ単一の属性です。

すべてのデータ・ラベルにはレベル・コンポーネントを含める必要がありますが、区分コンポーネントとグループ・コンポーネントはオプションです。管理者は、ラベルを作成する前にラベル・コンポーネントを定義する必要があります。

注意:

管理者はラベル・コンポーネントに詳細名と短縮名の両方を定義しますが、検索時に表示されるのは短縮名のみです。ユーザーがラベルを操作する際は、コンポーネントの短縮名のみが使用されます。簡易名の例を、次のコンポーネント固有の例の表に示します。

表2-2 機密性ラベルのコンポーネント

コンポーネント 説明

レベル

設定済の順序付けランク内のラベル付きデータの機密性の単一指定

CONFIDENTIAL (1)、SENSITIVE (2)、HIGHLY_SENSITIVE (3)

区分

ラベル付きデータに対応付けられた0個以上のカテゴリ

FINANCIALSTRATEGICNUCLEAR

グループ

データを所有するか、データにアクセスする組織の0個以上の識別子

EASTERN_REGIONWESTERN_REGION

すべてのラベル・コンポーネント指定に有効な文字には、英数字、アンダースコアおよび空白も含まれます。(先頭および後続の空白は無視されます。)

次の図に、レベル、区分およびグループを使用してデータを論理的に分類できる3つのディメンションを示します。

図2-1 レベル、区分およびグループを持つデータ・カテゴリ

図2-1の説明が続きます
「図2-1 レベル、区分およびグループを持つデータ・カテゴリ」の説明

レベル機密性コンポーネント

レベル は、ラベルを付ける情報の機密性を示すランキングです。

情報の機密性が高いほど、レベルも高くなります。情報の機密性が低いほど、レベルも低くなります。

情報の機密性が高いほど、レベルも高くなります。情報の機密性が低いほど、レベルも低くなります。

ラベルには必ず1つのレベルを含める必要があります。Oracle Label Securityでは、1つのポリシーに最大10,000のレベルを定義できます。レベルごとに、Oracle Label Security管理者が数値書式、詳細名および必須の簡易名を定義する必要があります。

たとえば、次のようなレベル・セットを定義できます。

表2-2に、レベルの例を示します。

表2-3 レベルの例

数値 詳細名 短縮名

40

HIGHLY_SENSITIVE

HS

30

SENSITIVE

S

20

CONFIDENTIAL

C

10

PUBLIC

P

表2-4に、レベルを指定する様々な方法を示します。

表2-4 レベル指定の書式

書式 説明

数値(タグとも呼ばれる)

数値のレベルは0から9999です。機密性はこの数値でランキングされるため、機密性の高いレベルほど大きい数値、機密性の低いレベルほど小さい数値を割り当てる必要があります。表2-3では、40 (HIGHLY_SENSITIVE)は30、20および10より上位レベルです。

管理者は、レベルの数値に連番を使用しないようにします。適切な方法は、レベル間に等間隔の増分(50や100など)を使用することです。これにより、既存の2つのレベル間に後からレベルを追加挿入できます。

詳細名

レベルの詳細名は80文字以内です。

短縮名

短縮名は30文字以内です。

管理者はレベル(およびその他の各ラベル・コンポーネント)に詳細名と短縮名の両方を定義しますが、Oracle Label Securityポリシーが有効な場合にレコードの検索時に表示されるのは短縮名のみです。ユーザーがラベルを操作する際は、コンポーネントの短縮名のみが使用されます。

一般にユーザーが定義することの多いその他のレベル・セットとして、TOP_SECRETSECRETCONFIDENTIALUNCLASSIFIED、またはTRADE_SECRETPROPRIETARYCOMPANY_CONFIDENTIALPUBLIC_DOMAINなどがあります。

レベルのみを使用する場合、この例のレベル40のユーザーであれば、レベル40以下のすべてのデータ行に対して、アクセスまたは変更ができます。

注意:

このマニュアルで使用されているレベルおよびラベル(TOP_SECRETSECRETCONFIDENTIALなど)はすべて一例です。

区分コンポーネント

区分はラベル付きデータの機密性を記述する領域であり、レベルに対して、さらに細分化したレベルを提供します。

区分により、データが1つ以上のセキュリティ領域に対応付けられます。特定のプロジェクトに関連するすべてのデータに、同じ区分をラベル付けすることができます。たとえば、次のような区分セットを定義できます。

表2-5に、区分の例を示します。

表2-5 区分の例

数値 詳細名 短縮名

85

FINANCIAL

FINCL

65

CHEMICAL

CHEM

45

OPERATIONAL

OP

表2-6に、区分を指定する様々な方法を示します。

表2-6 区分指定の書式

書式 説明

数値

数値の範囲は0から9999です。レベルに使用されている数値とは無関係です。区分の数値は、機密性のレベルを示すわけではありません。区分の数値は、ラベル文字列での区分短縮名の表示順序を制御します。たとえば、表2-5に示した3つの区分すべてとレベルSENSITIVEを持つラベルを作成するとします。このラベルを文字列で表示すると、次のようになります。

S:OP,CHEM,FINCL

これは、SENSITIVE: OPERATIONAL, CHEMICAL, FINANCIALを意味します。

表示順序は、区分に割り当てられた数値の順序に従います。45は65より小さく、65は85より小さい数値です。対照的に、FINCL区分に割り当てられた数値が5の場合、ラベルの文字列書式は次のようになります。

S:FINCL,OP,CHEM

詳細名

区分の詳細名は80文字以内です。

短縮名

短縮名は30文字以内です。

区分はオプションです。ラベルには0個以上の区分を含めることができます。Oracle Label Securityでは、最高10,000の区分を定義できます。

区分を含まないラベルがあってもかまいません。たとえば、HIGHLY_SENSITIVEおよびCONFIDENTIALレベルは区分なしで指定し、SENSITIVEレベルは区分を含むように指定できます。

データの機密性を分析すると、一部の区分が特定のレベルでのみ有用であることがわかる場合があります。

図2-2に、区分を使用してデータをカテゴリに分類する方法を示します。

図2-2 ラベルのマトリックス

図2-2の説明が続きます
「図2-2 ラベルのマトリックス」の説明

この図では、区分FINCLCHEMおよびOPがレベルHIGHLY_SENSITIVE (40)とともに使用されています。ラベルHIGHLY_SENSITIVE:FINCL, CHEMは、2つの名前付き区分を持つレベル40を示します。区分FINCLCHEMの機密性は同じです。保護されている表の一部のデータがどの区分にも属さない場合もあることに注意してください。

区分が指定されている場合、行データへのアクセスが通常は許可されるレベルのユーザーであっても、行ラベルで表示されるすべての区分もユーザーのラベルに含まれていないかぎりアクセスは禁止されます。

グループ・コンポーネント

グループでは、EASTERN_REGIONWESTERN_REGIONWR_SALESなど、データを所有する組織またはデータにアクセスする組織を識別します。

特定の部門に関連するすべてのデータに、その部門のグループをラベル付けすることができます。グループは、データを制御された方法で送信したり、組織の変更に適切なタイミングで対処する場合に役立ちます。会社組織の再編時には、データ・アクセス権も再編成に沿って適切に変更できます。

グループは階層型です。組織のインフラストラクチャに基づいてデータにラベルを付けることができます。つまり、グループを親グループに対応付けることができます。

図2-3に、次のような組織階層に対応するグループ・セットを定義する方法を示します。

WESTERN_REGIONグループには、3つのサブグループWR_SALESWR_HUMAN_RESOURCESおよびWR_FINANCEが含まれています。WR_FINANCEサブグループは、WR_ACCOUNTS_RECEIVABLEおよびWR_ACCOUNTS_PAYABLEに分割されています。

表2-7に、この例の組織構造をOracle Label Securityのグループの書式で表す方法を示します。グループに割り当てられた数値が表示順序のみに影響することに注意してください。管理者は、階層(つまり、親子関係)を別々に指定します。

表2-7 グループの例

数値 詳細名 短縮名 親グループ

1000

WESTERN_REGION

WR

1100

WR_SALES

WR_SAL

WR

1200

WR_HUMAN_RESOURCES

WR_HR

WR

1300

WR_FINANCE

WR_FIN

WR

1310

WR_ACCOUNTS_PAYABLE

WR_AP

WR_FIN

1320

WR_ACCOUNTS_RECEIVABLE

WR_AR

WR_FIN

表2-8に、グループを指定する様々な方法を示します。

表2-8 グループ指定の書式

書式 説明

数値

グループの数値の範囲は0から9999で、ポリシーごとに一意である必要があります。

数値は、ランキングを示すわけではありません。また、親子関係も機密性レベルも示しません。単に、ラベル文字列でのグループの短縮名の表示順序を制御します。

たとえば、表2-7にリストしたようにレベルSENSITIVE、区分CHEMICAL、グループWESTERN_REGIONおよびWR_HUMAN_RESOURCESを持つラベルが作成されているとします。このラベルを文字列で表示すると、次のようになります。

S:CHEM:WR,WR_HR

1000は1200より前に位置するため、WRWR_HRより前に表示されます。

詳細名

グループの詳細名は80文字以内です。

短縮名

短縮名は30文字以内です。

グループはオプションであり、ラベルには0個以上のグループを含めることができます。Oracle Label Securityでは、最高10,000のグループを定義できます。

グループを含まないラベルがあってもかまいません。データの機密性を分析すると、一部のグループが特定のレベルでのみ使用されている場合があります。たとえば、HIGHLY_SENSITIVEおよびCONFIDENTIALラベルはグループなしで指定し、SENSITIVEラベルはグループを含むように指定できます。

業界別のレベル、区分およびグループの例

Oracle Label Securityのレベル、区分およびグループは、様々な業界での実装に対応するように設計されています。

表2-9に、各種業界での代表的な実装方法をリストし、Oracle Label Securityのレベル、区分およびグループの柔軟性を示します。

表2-9 業界別の代表的なレベル、区分およびグループ

業界 レベル 区分 グループ

B2B

TRADE_SECRET

PROPRIETARY

COMPANY_CONFIDENTIAL

PUBLIC

MARKETING

FINANCIAL

SALES

PERSONNEL

AJAX_CORP

BILTWELL_CO

ACME_INC

ERSATZ_LTD

金融サービス

ACQUISITIONS

CORPORATE

CLIENT

OPERATIONS

INSURANCE

EQUITIES

TRUSTS

COMMERCIAL_LOANS

CONSUMER_LOANS

CLIENT

TRUSTEE

BENEFICIARY

MANAGEMENT

STAFF

司法

NATIONAL_SECURITY

SENSITIVE

PUBLIC

CIVIL

CRIMINAL

ADMINISTRATION

DEFENSE

PROSECUTION

COURT

医療

PRIMARY_PHYSICIAN

PATIENT_CONFIDENTIAL

PATIENT_RELEASE

PHARMACEUTICAL

INFECTIOUS_DISEASES

CDC

RESEARCH

NURSING_STAFF

HOSPITAL_STAFF

防衛

TOP_SECRET

SECRET

CONFIDENTIAL

UNCLASSIFIED

ALPHA

DELTA

SIGMA

UK

NATO

SPAIN

ラベルの構文とタイプ

ラベル・コンポーネントを定義した後に、レベル、区分およびグループの特定セットを組み合せてデータ・ラベルを作成できます。

Oracle Enterprise Managerのグラフィカル・ユーザー・インタフェースまたはコマンドライン・プロシージャを使用できます。ラベルの文字列表現の構文は、次のとおりです。

LEVEL:COMPARTMENT1,...,COMPARTMENTn:GROUP1,...,GROUPn

ラベルを指定するテキスト文字列は、英数字、空白およびアンダースコアを含めて4,000文字以内です。ラベルには大/小文字区別がありません。そのため大文字、小文字または大/小文字両方で入力できますが、文字列がデータ・ディクショナリに格納され、表示されるときには大文字が使用されます。コロン(:)は、コンポーネント間のデリミタとして使用されます。この構文では、後続のデリミタを入力する必要はありません。

たとえば、次のような有効なラベルを作成できます。

SENSITIVE:FINANCIAL,CHEMICAL:EASTERN_REGION,WESTERN_REGION
CONFIDENTIAL:FINANCIAL:VP_GRP
SENSITIVE
HIGHLY_SENSITIVE:FINANCIAL 
SENSITIVE::WESTERN_REGION

有効なデータ・ラベルが作成されると、さらに次の2つのことが行われます。

  • ラベルが有効なデータ・ラベルとして自動的に指定されます。この機能では、データに割当て可能なラベルが制限されます。Oracle Label Securityでは、Oracle Internet Directoryで事前定義済のデータ・ラベルから、有効なデータ・ラベルを実行時に動的に作成することもできます。ただし、ほとんどのユーザーは、データ・ラベルの増加を制限するために、ラベルを手動で作成する方法を選択します。

  • ラベルを表すテキスト文字列に数値ラベル・タグが関連付けられます。保護されている表のポリシー・ラベル列には、テキスト文字列ではなく、このラベル・タグが格納されます。

    注意:

    Oracle Internet Directoryを使用しないOracle Label Securityインストールでは、有効なデータ・ラベルの動的作成にはTO_DATA_LABELファンクションを使用します。また、その使用は厳密に制御する必要があります。「TO_DATA_LABELを使用したラベルの挿入」を参照してください。

データ・ラベルとユーザー・ラベルの相互動作

ユーザーがアクセスできるのは、各自のラベル認可の範囲内にあるデータのみです。

ユーザーには、次の情報が割り当てられています。

  • 最大レベルと最小レベル

  • 認可された区分のセット

  • 認可されたグループ(および、暗黙的にすべてのサブグループの認可)のセット

たとえば、ユーザーに最大レベルSENSITIVEが割り当てられている場合、そのユーザーは潜在的にSENSITIVECONFIDENTIALおよびUNCLASSIFIEDのデータへのアクセス権を持つことになります。このユーザーは、HIGHLY_SENSITIVEデータにはアクセスできません。

図2-4に、アクセス制御を行うためにデータ・ラベルとユーザー・ラベルがOracle Label Securityでどのように相互作用するかを示します。データ・ラベルはディスクリートですが、ユーザー・ラベルは包含的です。認可された区分およびグループに応じて、ユーザーは潜在的に各自の範囲内で全レベルに対応するデータにアクセスできます。

図2-4 例: データ・ラベルとユーザー・ラベル

図2-4の説明が続きます
「図2-4 例: データ・ラベルとユーザー・ラベル」の説明

この図のように、ユーザー1は、最大レベルがHSであるため、行2、3および4にアクセスできます。また、FIN区分へのアクセス権を持っており、階層形式のグループWRへのアクセス権にはグループWR_SALが含まれています。CHEM区分はないため、行1にはアクセスできません。(ユーザーが行にアクセスするためには、その行のデータ・ラベルのすべての区分に対する認可が必要です。)

ユーザー2は行3および4にアクセスできます。その最大レベルはSで、これは行2のHSより下位です。このユーザーは、FIN区分へのアクセス権を持っていますが、グループWR_SALに対する認可しか持っていません。そのため、行1にはアクセスできません。

図2-5に、組織階層に関連したデータがどのようにデータのレベルおよび区分に一致するかを示します。

図2-5 ラベル・コンポーネントの相互関係

図2-5の説明が続きます
「図2-5 ラベル・コンポーネントの相互関係」の説明

たとえば、UNITED_STATESグループには3つのサブグループEASTERN_REGIONCENTRAL_REGIONおよびWESTERN_REGIONが含まれています。WESTERN_REGIONサブグループは、さらにCALIFORNIAおよびNEVADAに分割されています。各グループおよびサブグループにはそれぞれ、有効な区分およびレベルに属するデータがデータベース内に存在している可能性があります。したがって、CALIFORNIAサブグループ内に、FINANCIALであるSENSITIVEデータが存在する場合があります。

データには通常、単一グループがラベル付けされますが、これに対し、ユーザーのラベルは階層形式であることに注意してください。ユーザーが特定のグループを持つ場合、そのグループに暗黙的に子グループが含まれている場合があります。このように、UNITED_STATESグループに関連付けられたユーザーはすべてのデータへのアクセス権を持ちますが、CALIFORNIAに関連付けられたユーザーは、そのサブグループに関連するデータへのアクセス権のみを持ちます。

ラベルの管理

Oracle Label Securityには、データベース内で使用するラベルを定義して管理できるように、管理インタフェースが用意されています。

Oracle Database内でラベルを定義するには、Oracle Label Securityパッケージを使用する方法と、Oracle Enterprise Managerを使用する方法があります。管理者は、最初にラベルを構成するレベル、区分およびグループを定義してから、データベースの内容に関して有効なデータ・ラベルのセットを定義できます。

管理者は、データベース内の個々の表またはアプリケーション・スキーマ全体にポリシーを適用できます。最後に、管理者は各データベース・ユーザーに、個々のジョブに必要なラベル・コンポーネント(および、必要に応じて権限)を割り当てます。