ポリシーの例

次に、データ・カタログのポリシーの例をいくつか示します。

ポリシー構文は次のようになります:

allow <subject> to <verb> <resource-type> in <location> where <conditions>

詳細は、ポリシー構文を参照してください。ポリシーの作成の詳細は、ポリシーの機能ポリシー・リファレンスおよびオブジェクト・ストレージのポリシー詳細を参照してください。

データ・カタログ・ポリシーの例

ポリシーを作成して、ユーザーがデータ・カタログ・リソースにアクセスする方法を定義できます。アクセス要件を満たす動詞を決定するには、データ・カタログの動詞から権限へのマッピングを表示します。

data-catalogsread動詞は、inspect動詞と同様の権限とAPI操作、およびCATALOG_READCATALOG_JOB_DEFINITION_READCATALOG_JOB_READCATALOG_WORK_REQUEST_READ権限、ならびにListGlossariesGetCatalogなどの対象となるAPI操作に対応しています。

テナンシのデータ・カタログを表示するためのアクセスを許可

このポリシーを作成すると、グループはテナンシ内のすべてのデータ・カタログのリストを表示できます:

allow group <group-name> to inspect data-catalogs in tenancy
指定されたコンパートメントでのアクセスを許可

このポリシーを作成すると、グループは指定されたコンパートメント内のCATALOG_READに対してリストされたすべての操作を実行できます:

allow group <group-name> to read data-catalogs in compartment <x>
データ・カタログを管理するためのアクセスを許可

manage動詞には、use動詞と同じ権限とAPI操作に加え、API操作CreateCatalogDeleteCatalogおよびMoveCatalogのそれぞれを含むCATALOG_CREATECATALOG_DELETEおよびCATALOG_MOVE権限が含まれています。

グループが特定のコンパートメント内のすべてのデータ・カタログを管理できるようにするには、このポリシーを作成します。

allow group <group-name> to manage data-catalog-family in compartment <x>

このポリシーを作成すると、グループはデータ・カタログの削除を除いて、すべてのデータ・カタログを管理できます:

allow group <group-name> to manage data-catalog-family in compartment <x>
 where request.permission !='CATALOG_DELETE'

このポリシーを作成すると、グループは指定されたデータ・カタログ内のすべてのリソースを管理できます:

allow group <group-name> to manage data-catalog-family in tenancy
 where target.catalog.id = 'ocid.datacatalog.oc1..<unique_ID>'
Oracle Object Storageポリシーの例

Oracle Object Storageデータ・アセットを作成する前に、必要なデータ・オブジェクトへのアクセスを有効にするポリシーを作成します。これらのポリシーを作成した後、オブジェクト・ストレージのデータ・アセットを収集すると、データ・カタログ・インスタンスがアクセスできるデータ・エンティティのみがリストされます。表示されたリストから、収集するデータ・オブジェクトを選択できます。

少なくとも、個々のすべてのリソース・タイプobjectstorage-namespacesbucketsおよびobjectsに対する、またはオブジェクト・ストレージ集計リソース・タイプobject-familyに対するREAD権限が必要です。手順は、Oracle Object Storageからの収集のチュートリアルを参照してください。

リソース・プリンシパル・ポリシーの例

前提条件として、特定のデータ・カタログOCIDをグループのリソースとして含む動的グループを作成します

例:

Any {resource.id = 'ocid.datacatalog.oc1..<unique_ID>'}
テナンシへのアクセスを許可

データ・カタログ・インスタンスとオブジェクト・ストレージが同じテナンシにある場合は、次のポリシーを使用します:

テナンシへのアクセスを許可

  • このポリシーは、root_compartmentに対してのみ作成し、テナンシ内の任意のバケット、任意のコンパートメントにある任意のオブジェクトへのアクセスを許可します。このポリシーのスコープはテナンシ全体であるため、子コンパートメントはルートまたは親コンパートメントにアクセスできません。
    allow dynamic-group <dynamic-group-name> to read object-family in tenancy

特定のバケットへのアクセスの許可

  • テナンシ内のbucketAまたはbucketB内のオブジェクトへのアクセス
    allow dynamic group <dynamic-group-name> to read object-family in tenancy 
    where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}
  • コンパートメント内のbucketAまたはbucketB内のオブジェクトにアクセスします
    allow dynamic group <dynamic-group-name> to read object-family in compartment <compartment-name>
    where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}
  • コンパートメントOCIDを使用して、任意のコンパートメント内のbucketAまたはbucketB内の任意のオブジェクトにアクセスします
    allow dynamic group <dynamic-group-name> to read object-family in compartment id <compartment_ocid>
    where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}

    コンソールでコンパートメントOCIDを表示するには、ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「コンパートメント」をクリックします。オブジェクト・ストレージ・リソースのコンパートメント・リンクをクリックします。「コンパートメントの詳細」ページで、「コンパートメント情報」の下にOCIDをコピーします。

特定のコンパートメントへのアクセスを許可します

  • 特定のコンパートメント内のバケットへのアクセス

    allow dynamic-group <dynamic-group-name> to read object-family in compartment <compartment-name>

    オブジェクト・ストレージ・データ・アセットを収集すると、指定したコンパートメント内のすべてのバケットのデータ・エンティティがリストされます。これらのバケットにまたがるデータ・オブジェクトを選択して収集できます。

  • コンパートメントOCIDを使用したコンパートメント内のバケットへのアクセス
    allow dynamic-group <dynamic-group-name> to read object-family in compartment id <compartment_ocid>

    コンソールでコンパートメントOCIDを表示するには、ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「コンパートメント」をクリックします。オブジェクト・ストレージ・リソースのコンパートメント・リンクをクリックします。「コンパートメントの詳細」ページで、「コンパートメント情報」の下にOCIDをコピーします。

別のテナンシへのアクセスの許可

データ・カタログ・インスタンスとオブジェクト・ストレージが異なるテナントにある場合は、前提条件として次のポリシーを作成します。

カタログ・テナンシ:

  • オブジェクト・ストレージOCIDを識別するテナンシtenancy-name1を定義してから、動的グループdynamic-group-name1を承認して<tenancy-name1>object-familyを管理します。
    Define tenancy <tenancy-name1> as <object-storage-tenancy-OCID>
    Endorse dynamic-group <dynamic-group-name1> to manage object-family in tenancy <tenancy-name1>

オブジェクト・ストレージ・テナントで:

  • カタログ・テナンシOCIDを持つテナンシtenancy-name2を定義します。カタログ・テナンシで作成されたdynamic-group-name1のOCIDを使用してdynamic-group-name2を定義してから、dynamic-group-name2を許可してオブジェクト・ストレージ・テナンシのobject-familyを管理します。
    Define tenancy <tenancy-name2> as <catalog-tenancy-OCID>
    Define dynamic-group <dynamic-group-name2> as <dynamic-group-name1-OCID>
    Admit dynamic-group <dynamic-group-name2> of tenancy <tenancy-name2> to manage object-family in tenancy

特定のバケットへのアクセスの許可

コンパートメント内のBucketABucketBなどの特定のバケットへのアクセス。

カタログ・テナンシ:

Define tenancy <tenancy-name2> as <object-storage-tenancy-OCID>
Endorse dynamic group <dynamic-group-name1> to manage object-family in compartment <compartmentA> where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}

オブジェクト・ストレージ・テナントで:

Define tenancy <tenancy-name1> as <catalog-tenancy-OCID>
Define dynamic-group <dynamic-group-name2> as <dynamic-group-name1-OCID>
Admit dynamic group <dynamic-group-name2> of tenancy <tenancy-name1> to manage object-family in compartment compartmentA where any {target.bucket.name='bucketA', target.bucket.name='bucketB'}

同様に、コンパートメントIDを使用してコンパートメント内のバケットにアクセスすることもできます。

特定のコンパートメントへのアクセスを許可

コンパートメント名を使用して、特定のコンパートメント内のバケットにアクセスします。

カタログ・テナンシ:
Define tenancy <tenancy-name2> as <object-storage-tenancy-OCID>
Endorse dynamic group <dynamic-group-name1> to manage object-family in compartment <compartment-name>
オブジェクト・ストレージ・テナントで:
Define tenancy <tenancy-name1> as <catalog-tenancy-OCID>
Define dynamic group <dynamic-group-name2> as <dynamic-group-name1-OCID>
admit dynamic group <dynamic-group-name2> of tenancy <tenancy-name1> to manage object-family in compartment <compartment-name>

簡単に言えば、コンパートメントOCIDを使用して、特定のコンパートメント内のバケットにアクセスできます。

プライベート・エンドポイント・ポリシーの例

データ・カタログ・ユーザーがプライベート・ネットワークを構成するには、ポリシーを作成する必要があります。

ユーザーにデータ・カタログのプライベート・エンドポイントの管理を許可

このポリシーを作成すると、グループはデータ・カタログのプライベート・エンドポイントに対してすべてのアクションを実行できます。

allow group <group-name> to manage data-catalog-private-endpoints in tenancy
ユーザーにネットワーキング・リソースの管理を許可

グループがテナンシですべてのネットワーク関連操作を実行できるようにするには、このポリシーを作成します。

allow group <group-name> to manage virtual-network-family in tenancy
ユーザーにプライベート・エンドポイント・エラー・メッセージの表示を許可

データ・カタログのプライベート・エンドポイント・リソースを管理する場合は、作業リクエストの管理権限も持つことをお薦めします。これにより、プライベート・エンドポイントの処理中に発生したログおよびエラー・メッセージを表示できます。

allow group <group-name> to manage work-requests in tenancy
ユーザーによるデータ・カタログのプライベート・エンドポイントの削除の防止

このポリシーを作成すると、グループはデータ・カタログのプライベート・エンドポイントに対して削除以外のすべてのアクションを実行できます。

allow group <group-name> to manage data-catalog-private-endpoints in tenancy
 where request.permission!='CATALOG_PRIVATE_ENDPOINT_DELETE'
用語集ポリシーの例

ポリシーを作成して、ユーザーが用語集リソースにアクセスする方法を定義できます。用語集の動詞から権限へのマッピングを表示して、アクセス要件を満たす動詞を決定します。たとえば、INSPECTを使用すると、ユーザーは使用可能な用語集のリストを表示でき、READを使用すると、ユーザーは用語集の詳細を表示でき、用語集をエクスポートすることもできます。

テナンシで使用可能なすべての用語集、カテゴリおよび用語に対するすべての操作をグループが実行できるようにするには、このポリシーを作成します:

allow group <group-name> to manage data-catalog-glossaries in tenancy

グループが特定の用語集内の用語、カテゴリおよび関係を作成、更新および削除できるようにするには、このポリシーを作成します:

allow group <group-name> to use data-catalog-glossaries in tenancy where target.glossary.key = '<glossary-key>'
ノート

必要な用語集の用語集キーは、ユーザー・インタフェースの「用語集の詳細」ページからコピーできます。

このポリシーを作成すると、グループは特定のコンパートメントの用語集および用語集の詳細を表示できます:

allow group <group-name> to read data-catalog-glossaries in compartment <x>

テナンシ内の特定のデータ・カタログで使用可能なすべての用語集のリストをグループが表示できるようにするには、このポリシーを作成します:

allow group <group-name> to inspect data-catalog-glossaries in tenancy where target.catalog.id = 'ocid.datacatalog.oc1..<unique_ID>'
データ・アセット・ポリシーの例

ポリシーを作成して、ユーザーがデータ・アセット・リソースにアクセスする方法を定義できます。データ・アセット動詞から権限へのマッピングを表示して、アクセス要件を満たす動詞を決定します。たとえば、INSPECTを使用すると、使用可能なデータ・アセットのリストを表示でき、READを使用すると、ユーザーはデータ・アセットの詳細を表示できます。

このポリシーを作成して、テナンシで使用可能なすべてのデータ・アセットに対するすべての操作の実行をグループに許可します:

allow group <group-name> to manage data-catalog-data-assets in tenancy

このポリシーを作成して、グループがテナンシ内の特定のデータ・アセットを使用できるようにします:

allow group <group-name> to use data-catalog-data-assets in tenancy where target.data-asset.key='<data-asset-key>'
ノート

ユーザー・インタフェースのデータ・アセット詳細ページから、必要なデータ・アセットのデータ・アセット・キーをコピーできます。

このポリシーを作成すると、グループは、特定のコンパートメントで使用可能なすべてのデータ・アセットのデータ・アセット詳細(接続、フォルダ、データ・エンティティ、属性など)を表示できます。

allow group <group-name> to read data-catalog-data-assets in compartment <x>

このポリシーを作成すると、グループは、特定のコンパートメントの特定のデータ・カタログで使用可能なデータ・アセットのリストを表示できます。

allow group <group-name> to inspect data-catalog-data-assets in compartment <x> where target.catalog.id = 'ocid.datacatalog.oc1..<unique_ID>'
メタストア・ポリシーの例

詳細は、必須IAMポリシーを参照してください。

セキュリティ・ポリシーの例

ユーザーによるデータ・カタログ・インスタンスの削除の防止

このポリシーを作成すると、グループDataCatalogUsersはデータ・カタログ上のすべてのアクション(削除を除く)を実行できます。

allow group DataCatalogUsers to manage data-catalog-family in tenancy
 where request.permission!='CATALOG_DELETE'