共有ワークスペースのベストプラクティス

以下の推奨事項では、管理者が共有ワークスペースを効果的に計画、構成、維持する方法について詳しく説明します。

共有ワークスペースの計画と設定

共有ワークスペースは、標準データベース内にスキーマレベルのオブジェクトとして作成され、Snowflakeの既存のロールベースのアクセス制御( RBAC )モデルに従います。

共有ワークスペースを作成するには、ユーザーはターゲットスキーマを所有するか、以下の権限を持っている必要があります。

  • データベースとスキーマに対する USAGE

  • スキーマに対する CREATE WORKSPACE

作成権限を付与する

  1. 管理者として、必要なスキーマレベルの権限をユーザーに付与するには、次のコマンドを実行します。

    GRANT USAGE ON DATABASE <database_name>.<schema_name> TO ROLE <role_name>;
    GRANT CREATE WORKSPACE ON SCHEMA <database_name>.<schema_name> TO ROLE <role_name>;
    
    Copy

ワークスペース管理コマンド

次のコマンドを使用して、既存の共有ワークスペースへのアクセスを監視および管理します。

アクション

構文

すべてのワークスペースを一覧表示する

SHOW WORKSPACES IN ACCOUNT;

ワークスペース権限を表示する

SHOW GRANTS ON WORKSPACE <workspace_name>;

編集権限を付与する

GRANT WRITE ON WORKSPACE <workspace_name> TO ROLE <role_name>;

編集権限を取り消す

REVOKE WRITE ON WORKSPACE <workspace_name> FROM ROLE <role_name>;

GRANT WRITE ON WORKSPACE my_workspace;

REVOKE WRITE ON WORKSPACE my_workspace;
Copy

ガバナンスのベストプラクティス

アカウントで共有ワークスペースを有効にする場合は、以下のベストプラクティスを考慮してください。

  • 意図的に計画します。共有ワークスペースを特定のチーム、プロジェクト、またはユースケースに合わせて調整します。ワークスペースを少数にし、明確に定義することで、煩雑さやユーザーの混乱を軽減します。

  • 作成権限を制限します。CREATE WORKSPACE 権限を、指定されたスチュワードロールとスキーマ所有者に制限します。この権限を広範に付与すると、不要な重複やワークスペースの分散が発生する可能性があります。

  • ワークスペースのライフサイクルを監視します。既存の共有ワークスペースを定期的に精査し、古いワークスペースや未使用のワークスペースを廃止します。軽量なレビュープロセス(例えば、四半期ごと)を確立して、アクティブで関連性のあるワークスペースのみが利用可能であることを確認します。

組織モデル

管理者は、組織のコラボレーションモデルに応じて、異なる方法で共有ワークスペースを構造化できます。

集中型コラボレーションハブ

すべてのチームの共有ワークスペース専用の単一のデータベースとスキーマにより、チーム間のコラボレーションのための一貫した場所が提供されます。

設定例

CREATE DATABASE IF NOT EXISTS SHARED_WORKSPACES_DB;
CREATE SCHEMA IF NOT EXISTS SHARED_WORKSPACES_SCHEMA;

GRANT USAGE ON DATABASE SHARED_WORKSPACES_DB.SHARED_WORKSPACES_SCHEMA TO ROLE WORKSPACES_STEWARDS;
GRANT CREATE WORKSPACE ON SCHEMA SHARED_WORKSPACES_DB.SHARED_WORKSPACES_SCHEMA TO ROLE WORKSPACES_STEWARDS;
Copy

チームスコープのワークスペース

各チームは独自のデータベースまたはスキーマを所有し、そのスコープ内の共有ワークスペースを管理します。このモデルは、部門、分野、または事業部門ごとにデータベースとロールをすでに調整している組織に適しています。

ハイブリッド型アプローチ

チーム間プロジェクトや注目度の高いプロジェクトには統合された中央スキーマを使用し、日常的なコラボレーションにはチーム固有のスキーマを使用します。このモデルは、柔軟性と、一元化されたガバナンスおよび発見可能性のバランスを実現します。

ロールの設計とアクセス管理の考慮事項

  • 共有ワークスペースは ロール とのみ共有できます(個々のユーザーではありません)。

  • ほとんどの組織は、既存のロールを使用してアクセスを管理できます。必要がない限り、共有ワークスペース専用の新しいロールを作成することは避けてください。

ベストプラクティス

  • すでにチームメンバーシップまたは機能を表している既存のロールを使用します。

  • アクセス管理と作業場所の構造の維持を担当する指定のスチュワードロールを割り当てます。

採用とメンテナンス

  • 命名規則: 発見可能性を高めるため、 TEAM_PROJECT_NAME のような明確で一貫したパターンを使用します。

  • 所有権: 説明責任を明確にするため、各共有ワークスペースにスチュワードまたは所有者ロールを割り当てます。

  • ドキュメント: アクティブな共有ワークスペースとその目的をリストする内部ディレクトリまたはウィキを維持します。

  • 一貫性: コードやクエリのコラボレーションの準備ができたら、プライベートワークスペースから共有ワークスペースに移行するようユーザーに促します。

  • 定期的に精査する: ロール、スキーマ、共有ワークスペースを定期的に監査し、それらが組織のポリシーとチーム構造に適合していることを確認します。