質問
特定のワークスペースのストレージのみを参照可能にし、他のリソース(プロジェクトなど)は参照できないように権限を設定する方法を教えてください。
回答
ワークスペースのアクセス権限とストレージサービスへのアクセス権限を組み合わせることで実現できます。
■基本的な権限設定
以下の権限を該当ユーザーに付与してください。
1. ワークスペースのアクセス権限
- 全てのワークスペースへのアクセスを許可する場合:「WorkspaceAdminAccess」
- 個別のワークスペースへのアクセスを許可する場合:「ListWorkspace」と「ViewWorkspace」
※ワークスペース内のリソースを閲覧する権限としては「EditWorkspace」ではなく「ViewWorkspace」が適切です
2. ストレージサービス内のファイルへのアクセス権限:「ObjectAdminAccess」
3. プロジェクトへのアクセス権限:付与しない
この設定により、ワークスペース配下のストレージのみ閲覧可能なユーザー設定を行うことが可能です。
■重要な制約事項
・単一ユーザーで複数ワークスペースに異なる権限を設定することはできません
・複数グループに所属した場合、所属している全てのグループの権限やワークスペースの割り当てが積み上がる形で適用されます
・ワークスペースごとに異なる権限を設定する場合は、別々のユーザーを作成して使い分ける必要があります
■複数ワークスペースで異なる権限を設定する場合の例
ワークスペースAはストレージのみ参照可能、ワークスペースBは全てのリソースを参照可能にしたい場合:
【グループA】
- 権限:ListWorkspace、ViewWorkspace、ObjectAdminAccess
- 割り当てワークスペース:ワークスペースA
【グループB】
- 権限:ListWorkspace、ViewWorkspace、各種リソースへのFullAccess
- 割り当てワークスペース:ワークスペースB
【ユーザーA】
- 所属グループ:グループA
- 結果:ワークスペースAのストレージのみ参照可能
【ユーザーB】
- 所属グループ:グループB
- 結果:ワークスペースBの全リソースを参照可能
※ユーザーAとユーザーBを使い分けることで、ワークスペースごとに異なる権限を実現できます
■スクリプト開発時と実行時の権限について
・スクリプト開発時(実装のみ):権限がなくても他のワークスペースのストレージパスを記載してスクリプトを実装することは可能です
・スクリプト実行時:実行するユーザーに対象ワークスペースへのアクセス権限が必要です
例:ユーザーBがワークスペースB上でワークスペースAのストレージを読み取るスクリプトを開発する場合
- 開発時:ユーザーBはワークスペースAへの権限がなくてもスクリプトの実装は可能
- 実行時:ユーザーBを一時的にグループAに所属させるか、両方のワークスペースへのアクセス権限を持つ別のユーザーで実行する必要があります
コメント
0件のコメント
記事コメントは受け付けていません。