ポリシー

データ・サイエンスへのアクセス権を持つユーザー、およびユーザーの各グループのアクセス権のタイプを管理するには、ポリシーを作成する必要があります。

データ・サイエンス・リソースをモニターするには、ポリシーで必要なアクセス権が付与されている必要があります。これは、コンソールを使用するか、REST APIとSDK、CLIまたはその他のツールを使用するかに関係なく当てはまります。ポリシーでは、モニタリング・サービスおよびモニター対象リソースへのアクセス権が付与されている必要があります。アクションを実行しようとしたときに、権限がない、または認可されていないというメッセージが表示された場合は、付与されているアクセスのタイプと作業できるコンパートメントを管理者に確認してください。モニタリングのユーザー認可の詳細は、関連するサービス、モニタリングまたは通知の認証および認可の項を参照してください

デフォルトでは、Administratorsグループのユーザーのみがすべてのデータ・サイエンス・リソースにアクセスできます。データ・サイエンスに関わるすべてのユーザーに対して、データ・サイエンス・リソースに対する適切な権限を割り当てる新しいポリシーを作成する必要があります。

OCIポリシーの完全なリストは、ポリシー・リファレンスを参照してください。

リソース・タイプ

データ・サイエンスには、ポリシーを記述するための集約および個々のリソース・タイプが用意されています。

集約リソース・タイプを使用すると、記述するポリシーの数を少なくできます。たとえば、グループがdata-science-projectsdata-science-notebook-sessionsdata-science-modelsおよびdata-science-work-requestsを管理できるようにするかわりに、そのグループで集約リソース・タイプdata-science-familyを管理できるようにするポリシーを設定できます。

集約リソース・タイプ

data-science-family

個別リソース・タイプ

data-science-projects

data-science-notebook-sessions

data-science-models

data-science-model-deployments

data-science-work-requests

data-science-jobs

data-science-job-runs

data-science-pipelines

data-science-pipeline-runs

data-science-private-endpoint

サポートされている変数

ポリシーに条件を追加するには、OCI一般変数またはサービス固有変数を使用できます。

データ・サイエンスではすべてのリクエストの一般的な変数がサポートされ、リソースおよび次のサービス固有の変数とともに使用できます:

データ・サイエンス・ポリシー変数

このリソース・タイプの操作...

使用できる変数...

変数タイプ

コメント

data-science-notebook-sessions

target.notebook-session.id

エンティティ(OCID)

CreateNotebookSessionとともに使用できません

target.notebook-session.createdBy

文字列

CreateNotebookSessionとともに使用できません

ノートブックを作成するユーザーは、これをオープンして使用できる唯一のユーザーです。

様々な操作の例

allow group <data_science_hol_users> to manage data_science_projects 
in compartment <datascience_hol>
allow group <data_science_hol_users> to manage data_science_models
in compartment <datascience_hol>
allow group <data_science_hol_users> to manage data_science_work_requests
in compartment <datascience_hol>
allow group <data_science_hol_users> to inspect data_science_notebook_sessions
in compartment <datascience_hol>
allow group <data_science_hol_users> to read data_science_notebook_sessions
in compartment <datascience_hol>
allow group <data_science_hol_users> to {DATA_SCIENCE_NOTEBOOK_SESSION_CREATE} 
in compartment <datascience_hol>
allow group <data_science_hol_users> to 
{DATA_SCIENCE_NOTEBOOK_SESSION_DELETE,DATA_SCIENCE_NOTEBOOK_SESSION_UPDATE,DATA_SCIENCE_NOTEBOOK
_SESSION_OPEN,DATA_SCIENCE_NOTEBOOK_SESSION_ACTIVATE,DATA_SCIENCE_NOTEBOOK_SESSION_DEACTIVATE} 
in compartment <datascience_hol> 
where target.notebook-session.createdBy = request.user.id

動詞とリソース・タイプの組合せの詳細

ポリシーの作成には、様々なOCI動詞とリソース・タイプを使用できます。

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

allow <subject> to <verb> <resource_type> in <location> where <conditions>.

次に、データ・サイエンスの各動詞に対応する権限およびAPI操作について説明します。アクセス・レベルは、inspectからreadusemanageへと進むに従って累積していきます。表セル内のプラス記号(+)は、その上のセルと比較して増分アクセスを示しますが、「余分なし」は増分アクセスを示しません。

data-science-projects

ここには、data-science-projectsリソース・タイプに関して対象となるAPIがリストされます。APIは権限ごとにアルファベット順に表示されます。

Verb

権限

完全に対象となるAPI

部分的に対象となるAPI

inspect

DATA_SCIENCE_PROJECT_INSPECT

ListProjects

ListWorkRequests

追加なし

read

inspect +

DATA_SCIENCE_PROJECT_READ

inspect +

GetProject

GetWorkRequest

CreateNotebookSession (manage data-science-notebook-sessionsも必要です。)

CreateModel (manage data-science-modelsも必要です。)

CreateJob

CreateJobRun (create data-science-jobも必要です。)

use

read +

DATA_SCIENCE_PROJECT_UPDATE

read +

UpdateProject

追加なし

manage

use +

DATA_SCIENCE_PROJECT_CREATE

DATA_SCIENCE_PROJECT_DELETE

DATA_SCIENCE_PROJECT_MOVE

use +

CreateProject

DeleteProject

ChangeProjectCompartment

追加なし

data-science-notebook-sessions

ここには、data-science-notebook-sessionsリソース・タイプに関して対象となるAPIがリストされます。APIは権限ごとにアルファベット順に表示されます。

Verb

権限

完全に対象となるAPI

部分的に対象となるAPI

inspect

DATA_SCIENCE_NOTEBOOK_

SESSION_INSPECT

ListNotebookSessions

ListNotebookSessionShapes

ListWorkRequests

追加なし

read

inspect +

DATA_SCIENCE_NOTEBOOK_

SESSION_READ

inspect +

GetNotebookSession

GetWorkRequest

ActivateNotebookSession

DeactivateNotebookSession

追加なし

use

read +

DATA_SCIENCE_NOTEBOOK_SESSION_OPEN

DATA_SCIENCE_NOTEBOOK_SESSION_UPDATE

read +

OpenNotebookSession

UpdateNotebookSession

ActivateNotebookSession

DeactivateNotebookSession

追加なし

manage

use+

DATA_SCIENCE_NOTEBOOK_SESSION_CREATE

DATA_SCIENCE_NOTEBOOK_SESSION_DELETE

DATA_SCIENCE_NOTEBOOK_SESSION_MOVE

DATA_SCIENCE_PRIVATE_ENDPOINT_READ

DATA_SCIENCE_PRIVATE_ENDPOINT_ATTACH

use+

CreateNotebookSession

DeleteNotebookSession

ChangeNotebookSessionCompartment

ActivateNotebookSession

CreateNotebookSession (read data-science-projectsも必要です。)

data-science-models

ここには、data-science-modelsリソース・タイプに関して対象となるAPIがリストされます。APIは権限ごとにアルファベット順に表示されます。

Verb

権限

完全に対象となるAPI

部分的に対象となるAPI

inspect

DATA_SCIENCE_MODEL_INSPECT

ListModels

ListWorkRequests

追加なし

read

inspect +

DATA_SCIENCE_MODEL_READ

inspect +

GetModel

GetModelProvenance

GetModelArtifact

GetWorkRequest

追加なし

use

read +

DATA_SCIENCE_MODEL_UPDATE

read +

ActivateModel

DeactivateModel

UpdateModel

UpdateModelProvenance

追加なし

manage

use +

DATA_SCIENCE_MODEL_CREATE

DATA_SCIENCE_MODEL_DELETE

DATA_SCIENCE_MODEL_MOVE

use +

CreateModelArtifact

CreateModelProvenance

DeleteModel

ChangeModelCompartment

CreateModel (read data-science-projectsも必要)

data-science-work-requests
data-science-model-deployments

ここには、data-science-model-deploymentsリソース・タイプに関して対象となるAPIがリストされます。APIは権限ごとにアルファベット順に表示されます。

Verb

権限

完全に対象となるAPI

部分的に対象となるAPI

inspect

DATA_SCIENCE_MODEL_DEPLOYMENT_INSPECT

ListModelDeployment

ListWorkRequests

ListModelDeploymentShapes

追加なし

read

inspect +

DATA_SCIENCE_MODEL_DEPLOYMENT_READ

inspect +

GetModelDeployment

GetWorkRequest

追加なし

use

read +

DATA_SCIENCE_MODEL_DEPLOYMENT_UPDATE

DATA_SCIENCE_MODEL_DEPLOYMENT_PREDICT

read +

ActivateModelDeployment

DeactivateModelDeployment

UpdateModelDeployment

PredictModelDeployment

追加なし

manage

use +

DATA_SCIENCE_MODEL_DEPLOYMENT_CREATE

DATA_SCIENCE_MODEL_DEPLOYMENT_DELETE

DATA_SCIENCE_MODEL_DEPLOYMENT_MOVE

use +

CreateModelDeployment

DeleteModelDeployment

ChangeModelDeploymentCompartment

追加なし

data-science-jobs

ここには、data-science-jobsリソース・タイプに関して対象となるAPIがリストされます。APIは権限ごとにアルファベット順に表示されます。

Verb

権限

完全に対象となるAPI

部分的に対象となるAPI

inspect

DATA_SCIENCE_JOB_INSPECT

ListJobs

ListJobShapes

ListWorkRequests

CreateJobRun

read

inspect +

DATA_SCIENCE_JOB_READ

inspect +

GetWorkRequest

CreateJobRun (read data-science-jobおよびcreate data-science-job-runも必要です。)

use

read +

DATA_SCIENCE_JOB_UPDATE

read +

UpdateJob

CreateJobRun (DATA_SCIENCE_JOB_READも必要です。)

manage

use +

DATA_SCIENCE_JOB_CREATE

DATA_SCIENCE_JOB_DELETE

DATA_SCIENCE_JOB_MOVE

use +

DeleteJob

ChangeJobCompartment

CreateJob

data- science- job- runs

ここには、data-science-job-runsリソース・タイプに対応しているAPIがリストされます。APIは権限ごとにアルファベット順に表示されます。

Verb

権限

完全に対象となるAPI

部分的に対象となるAPI

inspect

DATA_SCIENCE_JOB_RUN_INSPECT

ListJobRuns

追加なし

read

inspect +

DATA_SCIENCE_JOB_RUN_READ

inspect +

GetJobRun

追加なし

use

read +

DATA_SCIENCE_JOB_RUN_UPDATE

read +

UpdateJobRun

CancelJobRun (DATA_SCIENCE_JOB_RUN_READも必要です。)

manage

use +

DATA_SCIENCE_JOB_RUN_CREATE

DATA_SCIENCE_JOB_RUN_DELETE

DATA_SCIENCE_JOB_RUN_MOVE

use +

CreateJobRun

DeleteJobRun

ChangeJobRunCompartment

CreateJob

データ・サイエンス・パイプライン

ここには、data-science-pipelinesリソース・タイプに関して対象となるAPIがリストされます。APIは権限ごとにアルファベット順に表示されます。

Verb

権限

完全に対象となるAPI

部分的に対象となるAPI

inspect

DATA_SCIENCE_PIPELINE_INSPECT

ListPipelines

追加なし

read

inspect +

DATA_SCIENCE_PIPELINE_READ

inspect +

GetPipeline

CreatePipelineRun (read data-science-projectsread data-science-pipelineおよびcreate data-science-pipeline-runも必要です。)

use

read +

DATA_SCIENCE_PIPELINE_UPDATE

read +

UpdatePipeline

CreatePipelineRunGetPipeline (DATA_SCIENCE_PROJECT_READおよびDATA_SCIENCE_PIPELINE_READも必要です。)

manage

use +

DATA_SCIENCE_PIPELINE_CREATE

DATA_SCIENCE_PIPELINE_DELETE

DATA_SCIENCE_PIPELINE_MOVE

use +

CreatePipeline

DeletePipeline

ChangePipelineCompartment

CreatePipeline

(read data-science-projectsも必要です。)

データ・サイエンス・パイプライン

ここには、data-science-pipelinerunsリソース・タイプに関して対象となるAPIがリストされます。APIは権限ごとにアルファベット順に表示されます。

Verb

権限

完全に対象となるAPI

部分的に対象となるAPI

inspect

DATA_SCIENCE_PIPELINE_RUN_INSPECT

ListPipelineRuns

追加なし

read

inspect +

DATA_SCIENCE_PIPELINE_RUN_READ

inspect +

GetPipelineRun

追加なし

use

read +

DATA_SCIENCE_PIPELINE_RUN_UPDATE

read +

UpdatePipelineRun

CancelPipelineRun (DATA_SCIENCE_PIPELINE_RUN_READも必要です。)

manage

use +

DATA_SCIENCE_PIPELINE_RUN_CREATE

DATA_SCIENCE_PIPELINE_RUN_DELETE

DATA_SCIENCE_PIPELINE_RUN_MOVE

use +

CreatePipelineRun

DeletePipelineRun

ChangePipelineRunCompartment

CreatePipeline

data-science-privateエンドポイント

ここには、data-science-private-endpointリソース・タイプに関して対象となるAPIがリストされます。APIは権限ごとにアルファベット順に表示されます。

Verb

権限

完全に対象となるAPI

部分的に対象となるAPI

inspect

DATA_SCIENCE_PRIVATE_ENDPOINT_INSPECT

ListDataSciencePrivateEndpoint

追加なし

read

inspect +

DATA_SCIENCE_PRIVATE_ENDPOINT_READ

inspect +

GetDataSciencePrivateEndpoint

CreateNotebookSession

ActivateNotebookSession

DeactivateNotebookSession

use

read +

DATA_SCIENCE_PRIVATE_ENDPOINT_ATTACH

DATA_SCIENCE_PRIVATE_ENDPOINT_DETACH

read +

UpdateDataSciencePrivateEndpoint

追加なし

manage

use +

DATA_SCIENCE_PRIVATE_ENDPOINT_CREATE

DATA_SCIENCE_PRIVATE_ENDPOINT_UPDATE

DATA_SCIENCE_PRIVATE_ENDPOINT_DELETE

DATA_SCIENCE_PRIVATE_ENDPOINT_MOVE

use +

CreateDataSciencePrivateEndpoint

DeleteDataSciencePrivateEndpoint

ChangePrivateEndpointCompartment

AttachPrivateEndpoint

DetachPrivateEndpoint

CreatePrivateEndpoint

CreateNotebookSession

ActivateNotebookSession

DeactivateNotebookSession

ポリシーの例

ノート

APIでは、データ・サイエンスの集約リソース・タイプdata-science-familyおよび個別リソース・タイプが対象となります。たとえば、allow group <group_name> to manage data-science-family in compartment <compartment_name>は、次の4つのポリシーを記述することと同じです:

allow group <group_name>> to manage <data_science_projects> in compartment 
<compartment_name>
allow group <group_name> to manage data-science-notebook-sessions in compartment 
<compartment_name>
allow group <group_name> to manage data-science-models in compartment 
<compartment_name>
allow group <group_name> to manage data-science-work-requests in compartment 
<compartment_name>
ノート

ポリシーを構成するステップ・バイ・ステップ・ガイドについては、「データ・サイエンス・テナンシの手動構成」チュートリアルのポリシーの作成を参照してください。

例: リスト・ビュー

グループが特定のコンパートメントのすべてのデータ・サイエンス・モデルのリストを表示できるようにします:

allow group <group_name> to inspect data-science-models in compartment 
<compartment_name>

data-science-modelsread動詞には、DATA_SCIENCE_MODEL_READ権限とGetModelGetModelArtifactなどのその対象となるAPI操作を使用したinspect動詞と同じ権限およびAPI操作が含まれています。

例: すべての操作

グループが指定されたコンパートメントでDATA_SCIENCE_MODEL_READにリストされているすべての操作を実行できるようにします:

allow group <group_name> to read data-science-models in compartment 
<compartment_name>

data-science-modelsmanage動詞には、read動詞と同じ権限およびAPI操作に加えて、DATA_SCIENCE_MODEL_CREATEDATA_SCIENCE_MODEL_MOVEDATA_SCIENCE_MODEL_UPDATEおよびDATA_SCIENCE_MODEL_DELETE権限のAPIも含まれています。たとえば、ユーザーがモデルを削除できるのは、管理権限または特定のDATA_SCIENCE_MODEL_DELETE権限のみです。data-science-modelsに対するread権限を使用して、ユーザーはモデルを削除できません。

例: すべてのリソースの管理

グループが、データ・サイエンスが使用するすべてのリソースを管理できるようにします:

allow group <group_name> to manage <data_science_family> in compartment 
<compartment_name>

グループが、データ・サイエンス・プロジェクトの削除を除いて、すべてのデータ・サイエンス・リソースを管理できるようにします:

allow group <group_name> to manage <data_science_family> in compartment 
<compartment_name> where request.permission !='DATA_SCIENCE_PROJECT_DELETE'

ここには、data-science-projectsリソース・タイプに関して対象となるAPIがリストされます。APIは権限ごとにアルファベット順に表示されます。

ポリシーの例

モデル・デプロイメントのためにテナンシで採用しそうなポリシー・ステートメントは次のとおりです:

ユーザーのグループ<group-name>で、モデル・カタログに格納されているモデルに対してすべてのCRUD操作を実行できます。モデル・デプロイメントを介してモデルをデプロイするすべてのユーザーは、デプロイするモデルにアクセスする必要もあります。
allow group <group-name> to manage data-science-models 
in compartment <compartment-name>
ユーザーのグループ<group-name>が、特定のコンパートメントのモデル・デプロイメント・リソースに対して、予測エンドポイントの呼出しを含むすべてのCRUD操作を実行できるようにします。manage動詞を変更して、ユーザーが実行できる操作を制限できます。
allow group <group-name> to manage data-science-model-deployments 
in compartment <compartment-name>
リソースの動的グループ(ノートブック・セッションなど)が、特定のコンパートメントのモデル・デプロイメント・リソースに対して、予測エンドポイントのコールを含むすべてのCRUD操作を実行できるようにします。manage動詞を変更して、リソースが実行できることを制限できます。
allow dynamic-group <dynamic-group-name> to manage  data-science-model-deployments 
in compartment <compartment-name>
または、リソースに同じことを許可することもできます。指定された動的グループ内のリソースの動的グループのみが、特定のコンパートメントで作成されたモデル・デプロイメント・リソースのモデル・エンドポイントをコールできます。
allow dynamic-group <dynamic-group-name-2> to {DATA_SCIENCE_MODEL_DEPLOYMENT_PREDICT} 
in compartment <compartment-name>
(オプション)モデル・デプロイメントが、オブジェクト・ストレージ・バケットに格納されている公開済のconda環境にアクセスできるようにします。これは、公開済Conda環境を使用してモデルのサード・パーティの依存関係を取得する場合に必要です。
allow any-user to read objects in compartment <compartment-name>
where ALL { request.principal.type='datasciencemodeldeployment', 
target.bucket.name=<published-conda-envs-bucket-name> }
(オプション)モデル・デプロイメントがロギング・サービスにログを出力できるようにします。モデル・デプロイメントでロギングを使用している場合は、このポリシーが必要です。この文は寛容です。たとえば、特定のコンパートメントでlog-contentを使用する権限を制限できます。
allow any-user to use log-content in tenancy 
where ALL {request.principal.type = 'datasciencemodeldeployment'}
(オプション)モデル・デプロイメントで、テナンシに存在するオブジェクト・ストレージ・バケットにアクセスできます。たとえば、管理対象のオブジェクト・ストレージ・バケットからファイル(参照CSVファイル)を読み取るデプロイ済モデルなどです。
allow any-user to read objects in compartment <compartment-name> 
where ALL { request.principal.type='datasciencemodeldeployment', target.bucket.name=<bucket-name> }

ジョブおよびジョブ実行の例

(オプション)ジョブのロギングを統合できます。有効な場合、ジョブ実行リソースはログをロギング・サービスに出力する権限を必要とします。次を使用してジョブ実行動的グループを作成する必要があります:

all { resource.type='datasciencejobrun', resource.compartment.id='<job-run-compartment-ocid>' }

次に、この動的グループがロギング・サービス・ログに書き込むことを許可します:

allow dynamic-group <job-runs-dynamic-group> to use log-content in compartment <your-compartment-name>

最後に、ジョブ実行を開始するユーザーには、ログ・グループおよびログを使用するアクセス権も必要です:

ノート

インスタンス・プリンシパル動的グループを使用してジョブ実行を作成および開始する場合は、動的グループにグループ・ポリシーを適用する必要があります。具体的には、インスタンス・プリンシパルにto manage log-groupsポリシーが設定されている必要があります。

allow group <group-name> to manage log-groups in compartment <compartment-name>
allow group <group-name> to use log-content in compartment <compartment-name> 

(オプション)データ・サイエンスconda環境でジョブを実行するために必要な追加のポリシーはありません。公開されたカスタムconda環境でジョブを実行するには、ジョブ実行リソースにテナンシのオブジェクト・ストレージからconda環境をダウンロードする権限が必要です。次を使用して、ジョブ実行動的グループにコンパートメント内のオブジェクトへのアクセスを許可する必要があります:

allow dynamic-group <job-runs-dynamic-group> to read objects in compartment <compartment-name> where target.bucket.name='<bucket-name>'

OCIRからコンテナ・イメージをプルできるようにするには、次のポリシーを追加します:

allow dynamic-group <your-dynamic-group> to read repos in compartment <compartment-name>

リポジトリがルート・コンパートメントにある場合は、次を使用してテナンシの読取りを許可する必要があります:

allow dynamic-group <your-dynamic-group> to read repos in tenancy where all {target.repo.name=<repository-name>}

パイプラインの例

データ・サイエンスは、他のOCIサービスを使用して、主にジョブであるパイプラインを実行します。パイプラインを正しく機能させるには、テナンシまたはコンパートメントでそれらのリソースを操作する権限が必要です。データ・サイエンス・パイプラインを使用するには、動的グループおよびポリシーを作成する必要があります。

新しい動的グループを作成するか、既存の動的グループを更新して次の行を追加します:

パイプライン実行がロギング、ネットワーキング、オブジェクト・ストレージなどのOCIサービスにアクセスできるようにするには:

all {resource.type='datasciencepipelinerun',resource.compartment.id='ocid1.compartment.oc1..<>'}

パイプラインに1つ以上のジョブがステップとして含まれている場合は、ジョブ実行でリソースへのアクセスを許可する必要があります:

all {resource.type='datasciencejobrun',resource.compartment.id='ocid1.compartment.oc1..<>'}

リソース・プリンシパル認証を使用してノートブック・セッションから作業する場合、ノートブックがリソースにアクセスできるようにする必要があります:

all {resource.type='datasciencenotebooksession',resource.compartment.id='ocid1.compartment.oc1..<>'}

次に、関連するポリシーを追加して、動的グループがコンパートメントまたはテナンシ内のリソースにアクセスできるようにします。次に、動的グループの有用なポリシーの例をいくつか示します:

(オプション)ノートブック、ジョブ、パイプラインなど、すべてのデータ・サイエンス・リソースを管理できます:

allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to manage data-science-family in compartment <YOUR_COMPARTMENT_NAME>

(オプション)OCI オブジェクト・ストレージおよびファイル・ストレージ・サービスの使用を含むネットワーキングを使用できます:

allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to use virtual-network-family in compartment <YOUR_COMPARTMENT_NAME>

(オプション)オブジェクト・ストレージの管理を許可します:

allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to manage objects in compartment <YOUR_COMPARTMENT_NAME>

(オプション)ロギング・サービス・ログへのログ記録を許可します:

allow dynamic-group <YOUR_DYNAMIC_GROUP_NAME> to use log-content in compartment <YOUR_COMPARTMENT_NAME>