[新機能]Snowflake Cortex Code のクレジット使用量による制限機能を試してみた
さがらです。
Snowflake の Cortex Code に、アカウント単位およびユーザー単位でクレジット使用量制限を設定できる機能が追加されています。ACCOUNTADMIN が日次推定クレジット使用量の上限を設定でき、超過した場合に Cortex Code へのアクセスをブロックできる機能です。
今回は特定のユーザーに対してクレジット制限をかけ、Snowsight の Cortex Code から試した際にどのような表示・挙動になるかを確認してみました。
機能概要
Cortex Code のクレジット使用量制限は、ACCOUNTADMIN がアカウント単位またはユーザー単位で日次推定クレジット使用量の上限を設定できる機能です。「24時間ごと」の使用量を追跡し、閾値を超えると該当サービスへのアクセスをブロックします。
設定できるパラメータは以下の2種類で、Cortex Code CLI 用と Snowsight 用で分かれています。
| パラメータ名 | 対象 |
|---|---|
CORTEX_CODE_CLI_DAILY_EST_CREDIT_LIMIT_PER_USER |
Cortex Code CLI |
CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER |
Snowsight の Cortex Code |
これらのパラメータは、アカウントレベル(ALTER ACCOUNT)とユーザーレベル(ALTER USER)の両方で設定できます。
設定できる値と動作は以下のとおりです。
| 値 | 動作 |
|---|---|
| -1(デフォルト) | 無制限アクセス |
| 0 | 完全ブロック |
| 正の数 | その値(推定クレジット)を超えると24時間ブロック |
ユーザーレベルの設定はアカウントレベルの設定を上書きします。 アカウント全体に制限をかけつつ、特定のユーザーにはより高い制限(または無制限)を設定する、といった柔軟な使い方が可能です。
試してみた
1. ユーザーに制限をかける
ACCOUNTADMIN ロールで以下の SQL を実行し、SAGARA_SATOSHI ユーザーの Snowsight 向け Cortex Code クレジット使用量制限を 0(完全ブロック)に設定します。
なお、アカウントレベルで設定する場合は ALTER ACCOUNT SET CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER = 0; のように実行します。今回はユーザーレベルで設定します。
USE ROLE ACCOUNTADMIN;
-- SAGARA_SATOSHIユーザーのSnowsight向けCortex Codeクレジット使用量を完全ブロック
ALTER USER SAGARA_SATOSHI SET CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER = 0;

設定が完了したら、念のため現在の設定値を確認しておきましょう。CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER の value が 0 になっていればOKです。
-- 設定値の確認
SHOW PARAMETERS LIKE 'CORTEX_CODE_SNOWSIGHT%' FOR USER SAGARA_SATOSHI;

2. 対象ユーザーで Snowsight の Cortex Code を開く
SAGARA_SATOSHI ユーザーで Snowsight にログインし、Cortex Code を開いて適当にテキストを送ってみます。
すると制限値が 0(完全ブロック)のため、Cortex Code へのアクセス時に下図のとおりエラーが返されます。

3. 制限を解除して動作が戻ることを確認する
制限の挙動を確認したら、ACCOUNTADMIN ロールで制限を解除します(デフォルト値の -1 に戻す)。
USE ROLE ACCOUNTADMIN;
-- 制限を解除(-1 = 無制限に戻す)
ALTER USER SAGARA_SATOSHI SET CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER = -1;
SHOW PARAMETERS LIKE 'CORTEX_CODE_SNOWSIGHT%' FOR USER SAGARA_SATOSHI;

再度 SAGARA_SATOSHI ユーザーで Cortex Code でテキストを送信し、正常にレスポンスが返ってくればOKです。

最後に
Snowflake Cortex Code のクレジット使用量制限機能を試してみました。
ALTER USER や ALTER ACCOUNT で CORTEX_CODE_SNOWSIGHT_DAILY_EST_CREDIT_LIMIT_PER_USER を設定するだけで、SQL 一本で Cortex Code の利用を制御できます。設定の管理コストが低い点が魅力です。
ユーザーレベルの設定がアカウントレベルを上書きする仕様なので、「アカウント全体には緩めの制限をかけつつ、特定のユーザーには制限なし(またはより厳しく)」といった柔軟な運用も可能です。組織で Cortex Code を活用していく際のコスト管理の選択肢として、ぜひ活用してみてください。






