❄️

Accountadmin以外のロールでもコスト管理をしよう

2022/11/06に公開
1

管理者以外もコストを確認しよう

チーム内で「非エンジニアの方でコストの確認をしたい」という要望がチーム内で出て来ました。デフォルトでは、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