ポリシーの例
次に、データ・カタログのポリシーの例をいくつか示します。
ポリシー構文は次のようになります:
allow <subject> to <verb> <resource-type> in <location> where <conditions>
詳細は、ポリシー構文を参照してください。ポリシーの作成の詳細は、ポリシーの機能、ポリシー・リファレンスおよびオブジェクト・ストレージのポリシー詳細を参照してください。
ポリシーを作成して、ユーザーがデータ・カタログ・リソースにアクセスする方法を定義できます。アクセス要件を満たす動詞を決定するには、データ・カタログの動詞から権限へのマッピングを表示します。
data-catalogs
のread
動詞は、inspect
動詞と同様の権限とAPI操作、およびCATALOG_READ
、CATALOG_JOB_DEFINITION_READ
、CATALOG_JOB_READ
、CATALOG_WORK_REQUEST_READ
権限、ならびにListGlossaries
、GetCatalog
などの対象となる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操作CreateCatalog
、DeleteCatalog
およびMoveCatalog
のそれぞれを含むCATALOG_CREATE
、CATALOG_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データ・アセットを作成する前に、必要なデータ・オブジェクトへのアクセスを有効にするポリシーを作成します。これらのポリシーを作成した後、オブジェクト・ストレージのデータ・アセットを収集すると、データ・カタログ・インスタンスがアクセスできるデータ・エンティティのみがリストされます。表示されたリストから、収集するデータ・オブジェクトを選択できます。
少なくとも、個々のすべてのリソース・タイプobjectstorage-namespaces
、buckets
および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
特定のバケットへのアクセスの許可
コンパートメント内のBucketA
やBucketB
などの特定のバケットへのアクセス。
カタログ・テナンシ:
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'