オブジェクトタグの紹介

タグとは

タグは、別のSnowflakeオブジェクトに割り当てることができるスキーマレベルのオブジェクトです。ユーザーは、タグをSnowflakeオブジェクトに割り当てる際に、タグと任意の文字列値を関連付けます。Snowflakeは、タグとその文字列値をキーと値のペアとして保存します。タグはスキーマに対して一意である必要があり、タグ値は常に文字列です。

以下は、オブジェクトタグの一般的な特徴です。

  • オブジェクトは同時に複数のタグを持つことができます。詳細については、 オブジェクトのタグクォータ をご参照ください。

  • 1つのタグを異なるオブジェクトタイプに同時に割り当てることができます(例えば、ウェアハウスとテーブルを同時に)。

  • 割り当て時に、タグ文字列値は、複製することも、一意のままにすることもできます。例えば、複数のテーブルに cost_center というタグを割り当てることができ、そのタグは常に文字列値 sales を持つことができます。あるいは、文字列値はテーブルごとに異なっていてもかまいません (たとえば、 engineeringmarketingfinance)。

タグを定義し、タグをSnowflakeオブジェクトに割り当てたら、タグをクエリしてオブジェクトの使用状況を監視し、監査やレポートなどのデータガバナンス業務を促進することができます。

ハイライト

使いやすさ:

タグを一度定義して、必要な数の異なるオブジェクトに適用します。

タグ継承:

タグは継承されるため、セキュアブル・オブジェクト階層の上位にあるオブジェクトにタグを適用すると、すべての子オブジェクトにタグが適用されます。たとえば、タグがテーブルに設定されている場合、そのタグはそのテーブルのすべての列に継承されます。

自動伝播:

タグを構成して、ソースオブジェクトからターゲットオブジェクトに自動的に伝搬させます。

一貫した割り当てと複製:

Snowflakeは、プライマリデータベース内のタグとその割り当てをセカンダリデータベースに複製します。

集中型または分散型の管理:

タグは、社内外の規制要件への準拠を促進するためのさまざまな管理アプローチをサポートします。

集中型アプローチでは、タグを作成してSnowflakeオブジェクトに適用する tag_admin カスタムロールを作成できます。

分散型アプローチでは、個々のチームがSnowflakeオブジェクトにタグを適用し、 tag_admin カスタムロールがタグを作成して、一貫したタグの命名を確実にします。

データ保護のためのタグの使用

タグはテーブル、ビュー、および列に割り当てることができるため、タグを設定してからタグをクエリすると、機密情報を含んでいる多数のデータベースオブジェクトおよび列を検出できます。発見時に、データスチュワードは、 行アクセスポリシー を使用した選択的フィルタリング、または マスキングポリシー を使用した、データのトークン化、完全なマスク化、部分的なマスク化、またはマスク解除の判断により、データの提供に関する最善の方法を決定できます。

また、オブジェクトタグとマスキングポリシーを組み合わせて、データのガバナンスを簡素化することもできます。このアプローチでは、マスキングポリシーをタグに割り当て、そのタグをテーブルまたは列に割り当てます。列のデータ型がマスキングポリシーのシグネチャのデータ型と一致すると、タグ付けされた列は自動的にマスキングポリシーによって保護されます。詳細については、 タグベースのマスキングポリシー をご参照ください。

タグを使用したリソースモニター

ウェアハウスにタグを割り当てると、正確なリソースの使用状況のモニターが可能になります。リソースのタグをクエリすることで、コストセンターなどの組織単位でリソースを簡単にグループ化できます。さらに、タグを使用すると、プロジェクトのような比較的短期間のビジネスアクティビティの分析が容易になり、どのようなリソースが、いつ、どのように使用されたかについて、より詳細な洞察を得ることができます。

タグを使用してリソースの使用状況をモニターする例については、 コスト帰属へのオブジェクトタグのセットアップ を参照してください。

タグがオブジェクトに関連付けられる方法

タグは以下の方法でオブジェクトに関連付けることができます。

  • CREATE <オブジェクト> または ALTER <オブジェクト> コマンドを使用して、誰かが手動でオブジェクトにタグをセットしました。 タグのセット をご参照ください。

  • このオブジェクトは、Snowflake セキュアブルオブジェクト階層の上位にあるオブジェクトからタグを継承しています。例えば、アカウント内のウェアハウスは、アカウントにセットされたタグを継承します。 タグ継承 をご参照ください。

  • タグは、あるオブジェクトから別のオブジェクトへ自動的に伝播されました。タグは、オブジェクトが他のオブジェクトに依存関係を持っている場合 (例えば、タグ付きテーブルをベースとした表示) や、タグ付きオブジェクトから他のオブジェクトにデータが移動した場合 (例えば、 CTAS ステートメントを使用してテーブルを作成した場合) に伝播されます。 ユーザー定義タグによるタグの自動伝播 をご参照ください。

  • タグは、機密データを含むと分類された列に自動的にセットされました。自動機密データ分類がタグマップを使用してこれらのタグをセットする方法については、 タグマッピングについて を参照してください。

  • 誰かが CREATE TABLE ... LIKE または CREATE TABLE ... CLONE コマンドを使って、タグのある既存のテーブルからテーブルを作成しました。

タグがどのようにオブジェクトに関連づけられたかを判断します。

以下の表示と関数には、 apply_method 列があり、タグがオブジェクトにどのように関連づけられたかを示します。

例えば、タグがオブジェクトに手動でセットされたのか、伝播されたのかを調べるには、以下のコマンドを実行し、 apply_method 列の値をチェックします。

SELECT tag_name, tag_value, apply_method, level, domain
  FROM TABLE(my_db.INFORMATION_SCHEMA.TAG_REFERENCES('my_table', 'TABLE'));
Copy

オブジェクトのタグクォータ

テーブルやビューを含め、1つのオブジェクトに最大50個のタグをセットできます。これはタグの数の制限であり、以下の例に示すように、タグと値の組み合わせの数の制限では ありません

オブジェクト上の2つのタグ
ALTER TABLE t1 SET TAG tag1 = 'val1', tag2 = 'val1';
Copy
オブジェクトにタグ1つ
ALTER TABLE t1
  MODIFY COLUMN col1 SET TAG tag1 = 'val1'
  MODIFY COLUMN col2 SET TAG tag1 = 'val2';
Copy

タグが上限に達し、1つ削除したい場合は、 ALTER <オブジェクト> UNSET TAG ステートメントを実行します。

1つのステートメントで複数の CREATE <オブジェクト> または ALTER <オブジェクト> コマンドを実行する場合、指定できるタグの最大数は 100 です。

列の追加枠

他のすべてのオブジェクトと同様に、テーブルまたは表示のタグの最大数は一意の50タグです。テーブルまたはビューの に追加のクォータがあります。1つのテーブルまたは表示のすべての列のタグの最大総数は50です。

例えば、テーブルの1つの列に10個のタグがセットされている場合、Snowflakeでは以下のことが可能です。

  • 同じ列またはテーブルの列の組み合わせに40の追加タグをセット。

  • テーブル自体に50個の追加タグをセット。

Enterprise Editionが必要な機能

タグの作成とセットはすべてのアカウントで利用可能です。ただし、Enterprise Edition以上を必要とする高度な機能があります。以下の機能を使用するには、Enterprise Edition以上のアカウントが必要です。

サポートされているオブジェクト

次のテーブルに、列を含む、タグでサポートされているオブジェクトをSnowflakeのセキュリティ保護可能なオブジェクト階層に基づいて示します。

タグは、以下のテーブルでそれ以外に指定されている場合を除き、 CREATE <オブジェクト> ステートメントまたは ALTER <オブジェクト> ステートメントを使用してオブジェクトに設定できます。

タグは、 CREATE TABLE、 CREATE VIEW、 ALTER TABLE ... MODIFYCOLUMN または ALTER VIEW ステートメントを使用して列にセットすることができます。

オブジェクト階層

サポートされているオブジェクト

注意

組織

アカウント

タグは、 APPLY TAG グローバル権限を持つロールによって 現在のアカウント設定 できます。

アカウント

アプリケーション

アプリケーションパッケージ

コンピューティングプール

データベース

フェールオーバーグループ

統合

すべての がサポートされています。

ALTER INTEGRATION コマンドを使用して、統合にタグを設定します。

ネットワークポリシー

ALTER NETWORK POLICY コマンドを使用して、ネットワークポリシーにタグを設定します。

複製グループ

ロール

共有

タグは、データ共有プロバイダーによって共有に設定されます。これらのタグは、データ共有コンシューマーには表示されません。 ALTER SHARE コマンドを使用して、共有にタグを設定します。

ユーザー

ウェアハウス

データベース

データベースロール

ALTER DATABASE ROLE コマンドを使用して、データベースロールにタグを設定します。

スキーマ

スキーマ

集計ポリシー

アラート

BUDGETインスタンス

ALTER BUDGET コマンドを使用して、外部関数または SNOWFLAKE.CORE.BUDGET クラスのインスタンスにタグを設定します。

CLASSIFICATIONインスタンス

ALTER SNOWFLAKE.ML.CLASSIFICATION コマンドを使用して、外部関数または SNOWFLAKE.ML.CLASSIFICATION クラスのインスタンスにタグを設定します。

動的テーブル

イベントテーブル

外部関数および UDF

ALTER FUNCTION コマンドを使用して、外部関数または UDF にタグを設定します。

外部テーブル

CREATE EXTERNAL TABLE ステートメントを使用すると、タグ付きの外部テーブルを作成できます。

外部テーブルのタグ割り当てを管理するには、 ALTER TABLE コマンドを使用します。

Gitリポジトリ

Apache Iceberg™ テーブル

イメージリポジトリ

結合ポリシー

マテリアライズドビュー

ノートブック

パスワードポリシー

パイプ

ALTER PIPE ステートメントでパイプにタグを設定します。

ポリシー

対応する ALTER <ポリシー> ステートメントを使用して、 マスキングパスワード行アクセスセッション集計結合、 および 投影 ポリシーにタグを設定します。

プロシージャ

ALTER PROCEDURE ステートメントを使用して、ストアドプロシージャにタグを設定します。

投影ポリシー

セッションポリシー

スナップショット

ステージ

ALTER STAGE ステートメントを使用して、ステージにタグを設定します。

ストリーム

Streamlit

テーブル

タスク

ALTER TASK ステートメントを使用して、タスクにタグを設定します。

ビュー

テーブルまたはビュー

イベントテーブル を含みます。

制限と考慮事項

将来の付与:

タグに対する権限の 将来の付与 はサポートされていません。

回避策として、カスタムロールに APPLYTAG 権限を付与して、そのロールが別のオブジェクトにタグを適用できるようにします。

Snowflake Native App:

バージョン管理されたスキーマにタグが存在する場合は、セットアップスクリプトを作成する際に注意してください。情報については、 バージョンスキーマに関する考察 を参照してください。