Snowpark Container Services: イメージレジストリおよびリポジトリの操作

Snowpark Container Servicesは、 OCIv2 準拠のイメージレジストリサービスと、イメージを格納するためのストレージユニット呼び出しリポジトリを提供します。

イメージレジストリ

イメージレジストリサービスは、 OCI 準拠のコンテナーイメージを保存するための OCIv2 API を提供します。

イメージレジストリのホスト名

Snowflakeアカウントの各イメージレジストリには一意のホスト名があり、 OCI クライアント(Docker CLI など)が REST API 呼び出しを使用してイメージレジストリにアクセスできるようにします。イメージレジストリのホスト名の一般的な構文は次のとおりです。

<orgname>-<acctname>.registry.snowflakecomputing.com

ホスト名で、

  • <組織名>-<アカウント名> は、Snowflakeアカウントを識別します。

  • registry は、Snowflakeがレジストリの顧客にアカウントごとにホスト名を提供することを許可します。

    ホスト名は常にすべて小文字にする必要があります。

注釈

Snowflakeのアカウント名(<アカウント名>)にはアンダースコア(例: my_account)を付けることができますが、 URL ではアンダースコアは無効です。したがって、レジストリのホスト名を使う場合は、アンダースコアをダッシュに置き換える必要があります。たとえば、 my_accountmy-account に変更します。

イメージリポジトリのホスト名の組織名とアカウント名の情報は、以下のいずれかの方法で見つけることができます。

イメージレジストリ認証

Snowflake アカウントでイメージリポジトリにアクセスするには、ユーザーは Snowflake 認証情報を使用してイメージレジストリに認証する必要があります。さらに、レジストリ内のリポジトリにアクセスするには、適切な 権限 が必要です。これらの権限を得るには、ユーザーはリポジトリへのアクセス権限を与えるロールを持つ必要があります。

あなたのアカウントにあるイメージレジストリでクライアントを認証するには、以下のオプションがあります。

  • クライアントが提供するコマンドを使う: Dockerのようなツールは、ユーザー名とパスワードを使ってレジストリを認証するコマンドを提供します。例えば、チュートリアル1( チュートリアル1: イメージのビルドとアップロード を参照)では、 docker login コマンドを使ってレジストリでDockerを認証します。この方法は、アカウント管理者がユーザー名/パスワード認証の使用を許可している場合にのみ使用できます。

  • Snowflake CLIを使う: Snowflake CLI は、すべての形式の Snowflake 認証をサポートしています。

    • Dockerクライアントでは、 snow spcs image-registry login コマンドを使用してレジストリでDockerを認証します。

    • あらゆるクライアント(Dockerを含む)に対して、Snowflake CLI は最初に認証トークンを生成し、それをクライアントの認証に使用するオプションも提供します。詳細については、 snow spcs image-registry token をご参照ください。

イメージリポジトリ

レジストリ は OCIv2 API を提供するサービスであり、 リポジトリ はサービス内に作成するストレージユニットです。

リポジトリとは、イメージを格納するアカウント内の名前付きの場所です。これは、 DBMS と DBMS 内のテーブルの関係に似ています。つまり、 DBMS はレジストリに相当し、テーブルはリポジトリに相当します。

Snowflakeアカウントには、1つ以上のリポジトリを作成できます。たとえば、 DEV、 TEST、 PROD リポジトリは、開発、テスト、実稼働の各段階でイメージを格納できます。また、異なる権限を持つリポジトリを作成することもできます。たとえば、あるロールに対してあるリポジトリを読み取り専用にすることもできます。

アクセス制御はリポジトリレベルでサポートされており、個別のイメージレベルのアクセス制御はサポートされていません。

イメージをイメージリポジトリにアップロードするために、レジストリ・サービスは 様々な認証オプション とシングルサインオン (SSO) を提供します。

注意

Snowpark Container Servicesのイメージリポジトリは、 Tri-Secret Secure定期的なキー更新 をサポートしていません。つまり、お客様のアカウントで Tri-Secret Secure が有効になっている場合や、定期的なキー更新が有効になっている場合は、他のすべてのSnowflakeデータには引き続きセキュリティが追加されますが、Snowpark Container Servicesのイメージリポジトリに格納されているイメージには、この追加セキュリティが適用されません。

Tri-Secret Secure または定期的なキー更新を使用するアカウントでイメージリポジトリを作成するには、まず、イメージリポジトリに対するこの追加セキュリティの恩恵を受けずに継続することを理解して、同意する必要があります。同意を確認するには、アカウント管理者(ACCOUNTADMIN ロールを持つユーザー)がアカウントレベルのパラメーター ENABLE_TRI_SECRET_AND_REKEY_OPT_OUT_FOR_IMAGE_REPOSITORYTRUE に設定する必要があります。

イメージリポジトリ URL

以下はSnowflakeリポジトリ URL の一般的な構文です。

<registry-hostname>/<db_name>/<schema_name>/<repository_name>

例:

myorg-myacct.registry.snowflake.com/my_db/my_schema/my_repository

アカウント内のリポジトリ URL を検索するには、 SHOW IMAGE REPOSITORIES SQL コマンドを使用します。

注釈

  • Snowflake URL は、$文字をエンコードします。これはSnowflakeが識別子でサポートする唯一の URL 以外の文字です(識別子の要件 を参照)。特殊文字を含む二重引用符で囲まれた名前はサポートされていません。

  • 手動でリポジトリ URL を構築する場合は、アカウント名(my_acct)のアンダースコアをダッシュ(my-acct)に置き換えます。

リポジトリ操作

リポジトリを作成および管理するために、Snowflakeは以下の リポジトリ操作 をサポートしています。

  • CREATE IMAGE REPOSITORY

  • DROP IMAGE REPOSITORY

  • SHOW IMAGE REPOSITORIES

Snowflakeイメージリポジトリに格納されているイメージを一覧表示するには、以下のコマンドを使用します。

リポジトリの作成とイメージのアップロードの例については、 共通セットアップのチュートリアル をご参照ください。

リポジトリ権限

リポジトリで作業する場合には、以下の権限モデルが適用されます。

  • スキーマにリポジトリを作成するには、スキーマの CREATE IMAGE REPOSITORY 権限を持っている必要があります。

  • リポジトリ管理のために、以下の権限(機能)がサポートされています。

    権限

    使用状況

    READ

    イメージのリスト表示とリポジトリからのダウンロードを可能にします。

    WRITE

    イメージのリスト表示とリポジトリからのダウンロードを可能にします。リポジトリにイメージをプッシュすることもできます。

    OWNERSHIP

    イメージのリスト表示とリポジトリからのダウンロードを可能にします。リポジトリにイメージをプッシュすることもできます。

    SERVICE READ

    コンテナサービスが、リポジトリからイメージをリストアップしてダウンロードできるようにします。これは、 モデルサービング のイメージ構築ステップに必要です。

    SERVICE WRITE

    コンテナサービスがリポジトリにイメージをプッシュできるようにします。これは、 モデルサービング のイメージ構築ステップに必要です。

ガイドラインと制約

  • リポジトリからのイメージのドロップは現在サポートされていません。リポジトリをドロップすることもできますが、その場合はすべてのイメージが削除されます。