[Snowflake]クレジットの使用状況だけ確認できるユーザを作成する

何もしない!何もしないから!ホントちょっと見るだけだから!
2021.01.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Snowflakeは、[アカウント]タブ-[使用状況]の画面でクレジットの使用状況が確認できます。

この画面を表示するためには、ユーザにACCOUNTADMINロールの付与が必要です。しかしACCOUNTADMINロールはアカウント内で全ての操作を実施できるため誤操作の危険も伴います。そこで「クレジットの使用状況だけ確認できるユーザ」を作成する方法を紹介します。

「クレジット使用状況だけ確認できるユーザ」を作成する方法

基本方針

クレジット使用状況を確認できる権限はMONITOR USAGEです。

ACCOUNTADMINロールはこのMONITOR USAGE権限を含んでいるため、クレジットの使用状況が確認できます。

この権限だけを持つロールを作成し、ユーザに付与すれば良いことになります。

では実際にクレジット使用状況だけ確認できるユーザを作成します。以下の操作をACCOUNTADMINロールで実施します。

  1. 新規ロールを作成する
  2. MONITOR USAGE権限だけを新規ロールに付与する
  3. 新規ユーザを作成する
  4. 新規ユーザに新規ロールを付与する

補足:正確には、権限の付与操作だけACCOUNTADMINロールが必要で、それ以外はSECURITYADMINロールで実施可能です。ACCOUNTADMINロールはSECURITYADMINロールを包含しているので、ACCOUNTADMINロールでも代用できます。

例として、クレジット使用状況だけ確認できるユーザ「BILLING_WATCHER」、専用ロール「BILLING_CHECK」を作成するものとします。

新規ロール作成

新規ロールBILLING_CHECKは、以下の文で実行できます。

CREATE ROLE billing_check;

ロールへの権限付与

作成したロールに、MONITOR USAGE権限を付与します。

GRANT MONITOR USAGE ON ACCOUNT TO ROLE billing_check;

新規ユーザ作成

クレジット使用状況だけ確認できるユーザBILLING_WATCHERを新規に作成します。

CREATE USER billing_watcher IDENTIFIED BY 'Password1';

ユーザへのロール付与

新規に作成したユーザBILLING_WATCHERに、作成したロールを付与します。

GRANT ROLE billing_check TO USER billing_watcher;

また、ユーザBILLING_WATCHERがログイン時に行使できるデフォルトのロールをBILLING_CHECKに設定しておくと良いでしょう。

ALTER USER billing_watcher SET DEFAULT_ROLE = billing_check;

注意点として、PUBLICロールはユーザ作成時、全てのユーザに自動的に付与されます。言い方を換えるとPUBLICロールの権限は削除できません。そのため、PUBLICロールに含まれる権限はこの新規ユーザにも適用されるので注意ください。

動作確認

新規に作成したユーザBILLING_WATCHERでSnoflakeコンソールにログインし、動作を確認します。以下URLがクレジット使用状況を確認する画面の直リンクなので、クレジット使用状況だけ確認するユーザは、以下URLをブックマークしておくと良いと思います。

https://<アカウントID>.<契約IaaS名("ap-northeast-1.aws"など)>.snowflakecomputing.com/console#/account/billing

ログインすると、以下の画面が表示され、すぐにクレジット利用状況が確認できます。

以上、ご参考になれば幸いです。