モデル・デプロイメント・ポリシー

モデル・デプロイメント・リソースを使用してモデルをデプロイする前に、モデル・デプロイメントを操作する権限を持つユーザーのグループを作成する必要があります。

または、デプロイメントの作成を認可されたリソースの動的グループ(ノートブック・セッションなど)を作成できます。この場合、ノートブック・セッションにアクセスできるすべてのユーザーがノートブック・セッションのIDを取得し、モデル・デプロイメントを作成できます。ノートブック・セッションからの認証方式では、リソース・プリンシパルが使用されます。

デプロイメント後にモデル・エンドポイントを呼び出す場合も同じことが言えます。モデルを呼び出すには、ユーザーまたはリソースのグループは認可される必要があります。

次の例は、モデル・デプロイメントで使用する最も一般的なポリシー・ステートメントで、モデル・デプロイメント・ポリシーの例にさらに例が含まれています。

モデル・デプロイメント・ポリシーの管理

ユーザーのグループ<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>

前述のポリシーの例は寛容です。より制限的なポリシーを作成できます。一般的な例としては、モデル・デプロイメントの予測エンドポイントを呼び出すことができるユーザーまたはリソースを制限することです。

予測エンドポイントへのアクセスを許可するポリシー

ユーザーのグループ<group-name>が、特定のコンパートメントのモデル・デプロイメント・リソースに対して、予測エンドポイントのコールを含むすべてのCRUD操作を実行できるようにします。manage動詞を変更して、ユーザーが実行できることを制限できます。
allow group <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環境にアクセスできるようにします。これは、公開された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 = 'datasciencemodeldeployment' }

動的グループがカスタム・コンテナを読み取れるようにします。

allow dynamic-group <dynamic-group-name> to read repos in compartment <compartment-name> where ANY {
    request.operation='ReadDockerRepositoryMetadata',
    request.operation='ReadDockerRepositoryManifest',
    request.operation='PullDockerLayer'

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

allow dynamic-group <dynamic-group-name> to read repos in tenancy where ANY {
    request.operation='ReadDockerRepositoryMetadata',
    request.operation='ReadDockerRepositoryManifest',
    request.operation='PullDockerLayer'
}

認証と認可のその他の方法

モデル・デプロイメントでは、OCI Identity and Access Management (IAM)サービスで定義された認可および認証のみがサポートされます。モデル・デプロイメントでは、OAuthなどの他の認可および認証方法はサポートされません。