❄️
Accountadmin以外のロールでもコスト管理をしよう
管理者以外もコストを確認しよう
チーム内で「非エンジニアの方でコストの確認をしたい」という要望がチーム内で出て来ました。デフォルトでは、AccountAdminロールのみが、コストを確認することができる権限を持っています。
しかし、accountadminロールを非エンジニア・非管理者の方に直接渡してしまうのはリスクにつながるため、新しくロールを作成して、それを非エンジニアロールに付与するという方法を取りました。
チーム全員でコスト感覚を身につけて開発ができることは非常に良いことだと思います。
コスト管理ロールの作成と権限の付与
cost_monitor
というロールでコスト画面を開いた時に、コストの確認ができるようにしていきます。
use role accountadmin;
create role cost_monitor;
grant role cost_monitor
to user $USER_NAME;
create or replace warehouse cost_monitor_wh
warehouse_size=XSMALL
auto_resume=TRUE
auto_suspend=30
initially_suspended=TRUE
statement_timeout_in_seconds=600
comment='Cost monitor'
;
grant usage on warehouse cost_monitor_wh
to role cost_monitor;
おそらく、この時点でコスト確認画面を開くと、Switch to ACCOUNTADMIN or a role with access to usage data
のような表示になると思います。
次のようにsnowflake db
へのimported privileges
権限をロールに付与することでコストが確認できるようになります。
grant imported privileges on database snowflake
to role cost_monitor;
cost_monitor
ロールを左上から選択した上で、以下のように表示することができました。
この方法であれば、アカウント参加者の誰にロールを付与しても良いので、チーム全体でコスト感覚を意識しながら開発や分析などを進められるようになります。
他の人のQuery Historyを確認する
次に、他の人のクエリを全員で確認できれば良いなと思い、方法を探しました。
以下の方法で特定のユーザーのクエリを確認することができました。
grant monitor on user $USER_NAME
to role cost_monitor;
しかし、アカウントの参加ユーザ全員のクエリを全て確認するための方法は見つからなかったため、方法がわかる方は共有・コメントいただければと思います。
Discussion
全ユーザのクエリを確認するには、ウェアハウスのmonitor/operate権限を付与する必要があります。以下のドキュメントの「使用上の注意」の1点目を確認頂ければと思います。