Snowflake ver8.46のリリースよりNotebooksのContainer Runtime向けにSPCSのCompute poolが2つデフォルトで定義されるようになりました

Snowflake ver8.46のリリースよりNotebooksのContainer Runtime向けにSPCSのCompute poolが2つデフォルトで定義されるようになりました

Clock Icon2024.12.19

さがらです。

タイトルの通りなのですが、Snowflake ver8.46のリリースよりNotebooksのContainer Runtime向けにSPCSのCompute poolが2つデフォルトで定義されるようになりました。(私のアカウントでは2024年12月10日にCompute poolが作成されていました。)

こちらについて、どういうアップデートなのかの説明と、ユーザー側で必要であればやるべきことについて、本記事でまとめてみます。

今回のアップデートについて

まず2023年12月13日に、Snowflakeより下図のメールが届いていました。

2024-12-19_16h07_57

このメールの内容をまとめるとざっとこのような内容となります。

  • ver8.46のリリースよりNotebooksのContainer Runtime向けにSPCSのCompute poolが2つデフォルトで定義されるようになった(これらのCompute poolのOWNERSHIP権限はACCOUNTADMINロールが持つ)
    • SYSTEM_COMPUTE_POOL_CPU:「CPU_X64_S」のCompute pool
    • SYSTEM_COMPUTE_POOL_GPU:「GPU_NV_S」のCompute pool
  • これらのCompute poolが作られた理由は、NotebooksのContainer Runtimeをすぐに起動することができるようにするため
  • これらのCompute poolのUSAGE権限は、デフォルトでPUBLICロールに付与されている
    • そのため、Snowflakeアカウント内の全ユーザーがこれらのCompute poolを使える状態にある
  • これらのCompute poolが不要ならば、メールに記載のクエリで権限削除するかCompute poolごと削除も可能

実際に、Container RuntimeのNotebookを作成しようとすると、下図のようにCompute poolが選択可能です。

2024-12-19_16h20_15

2024-12-19_16h20_36

showコマンドでも、下図のようにCompute poolの確認ができます。

2024-12-19_16h22_13

2024-12-19_16h22_30

権限を見ると、OWNERSHIP権限がACCOUNTADMINロールに、USAGE権限がPUBLICロールに付いていることがわかります。

2024-12-19_16h25_23

Notebookを使う際、Compute poolの作成など気にせずContainer Runtimeを用いてすぐに開発できるのは楽に感じるかもしれません。

しかし、デフォルトでPUBLICロールに付与されているため、アカウント管理者からすると自由に使われてコストが増えないか心配になってしまうと思います。(個人的には、こう考える方のほうが多いと思います。)

そのため、本アップデートの告知メール文に記載のあったクエリを参考に、対策のクエリを載せていきます。

PUBLICロールに権限付与されるの困る!という方向けの対策

以下のクエリを実行して、PUBLICロールからCompute poolのUSAGE権限をなくしましょう。

USE ROLE ACCOUNTADMIN;

REVOKE USAGE ON COMPUTE POOL SYSTEM_COMPUTE_POOL_CPU FROM ROLE PUBLIC;
REVOKE USAGE ON COMPUTE POOL SYSTEM_COMPUTE_POOL_GPU FROM ROLE PUBLIC;

これにより、これらのCompute poolはOWNERSHIP権限だけが残り、ACCOUNTADMINのみ利用することが出来ます。(もしこれらのCompute poolを別のロールで使いたい場合は、別途USAGE権限をGRANTしてください。)

2024-12-19_16h31_13

Compute poolごと削除してしまいたい!という方向けの対策

以下のクエリを実行して、Compute poolを削除してしまいましょう。

USE ROLE ACCOUNTADMIN;

ALTER COMPUTE POOL SYSTEM_COMPUTE_POOL_CPU STOP ALL;
DROP COMPUTE POOL SYSTEM_COMPUTE_POOL_CPU;

ALTER COMPUTE POOL SYSTEM_COMPUTE_POOL_GPU STOP ALL;
DROP COMPUTE POOL SYSTEM_COMPUTE_POOL_GPU;

これにより、デフォルトで作られたCompute poolはアカウントから削除されました。NotebooksでContainer Runtimeを利用する場合は、別途新しくCompute poolの作成と権限付与を行いましょう!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.