OneLake Shared Access Signature (SAS) を使用すると、OneLake 内のリソースへの安全かつ短期的な委任アクセスが可能になります。 OneLake SAS を使用すると、クライアントがデータにアクセスする方法をきめ細かく制御できます。 次に例を示します。
- クライアントがアクセスできるリソース。
- 彼らがリソースに対して持っている許可。
- SAS が有効である期間。
すべての OneLake SAS (およびユーザー委任キー) は、常に Microsoft Entra ID によってサポートされ、最大有効期間は 1 時間であり、lakehouse などのデータ項目内のフォルダーとファイルへのアクセスのみを許可できます。
Shared Access Signature の機能
Shared Access Signature は、OneLake リソースの URI に追加されるトークンです。 トークンには、クライアントからリソースへのアクセス方法を示す特殊なクエリ パラメーター セットが含まれます。 クエリ パラメーターの 1 つが署名です。 これは SAS パラメーターで作成され、SAS の作成に使用されたキーで署名されています。 OneLake ではこの署名を使用して、OneLake 内のフォルダーまたはファイルへのアクセスを承認します。 OneLake SAS では 、Azure Storage ユーザー委任 SAS と同じ形式とプロパティが使用されますが、有効期間とスコープに関するセキュリティ制限が強化されています。
OneLake SAS はユーザー委任キー (UDK) で署名されており、これは Microsoft Entra 資格情報によってサポートされています。 ユーザー委任キーを要求するには、Get User Delegation Key 操作を使用します。 次に、このキーを (まだ有効の間に) 使用して、OneLake SAS を作成します。 その Microsoft Entra 資格情報のアクセス許可と、SAS に明示的に付与されたアクセス許可によって、リソースへのクライアントのアクセスが決まります。
OneLake SAS の承認
クライアントまたはアプリケーションが OneLake SAS を使用して OneLake にアクセスすると、要求は、SAS の作成に使用された UDK を要求した Microsoft Entra 資格情報を使って承認されます。 そのため、SAS には、その Microsoft Entra ID に付与されるすべての OneLake アクセス許可が適用されます。つまり、SAS は、自身を作成したユーザーのアクセス許可を超えることはできません。 さらに、SAS を作成するときに明示的にアクセス許可を付与することで、スコープをさらに絞り込んだアクセス許可を SAS に付与することができます。 Microsoft Entra ID、明示的に付与されたアクセス許可、および短い有効期間の間で、OneLake は、データへの委任アクセスを提供するためのセキュリティのベスト プラクティスに従っています。
OneLake SAS を使用するタイミング
OneLake SAS は、Microsoft Entra ID によってサポートされる、セキュリティで保護された一時的なアクセスを OneLake に委任します。 Microsoft Entra がネイティブ サポートされていないアプリケーションでも、OneLake SAS を使用すれば、複雑なセットアップや統合作業を行うことなく、一時的にアクセスしてデータを読み込むことができます。
OneLake SAS では、ユーザーとそのデータ間のプロキシとして機能するアプリケーションもサポートされています。 たとえば、一部の独立系ソフトウェア ベンダー (ISV) は、ユーザーとその Fabric ワークスペースの間で実行され、追加の機能が提供され、場合によっては別の認証モデルが提供されます。 OneLake SAS を使用してアクセスを委任することで、これらの ISV は、ユーザーに Microsoft Entra ID がなくても、基になるデータへのアクセスを管理し、データへの直接アクセスを提供することができます。
OneLake SAS の管理
Fabric テナントの 2 つの設定によって、OneLake SAS の使用が管理されます。
最初の設定はテナント レベルの設定です。ユーザー委任キーの生成を管理する、 有効期間の短いユーザー委任 SAS トークンを使用します。 ユーザー委任キーは、テナント レベルで生成されるため、テナント設定によって制御されます。 この設定は既定でオンになっています。これらのユーザー委任キーは、それを要求する Microsoft Entra ID と同等のアクセス許可を持ち、常に有効期間が短いためです。
注
この機能をオフにすると、すべてのユーザーがユーザー委任キーを生成できなくなるため、すべてのワークスペースで OneLake SAS を使用できなくなります。
2 番目の設定は、委任されたワークスペース設定である OneLake ユーザー委任 SAS トークンを使用して認証します。これは、ワークスペースが OneLake SAS を受け入れるかどうかを制御します。 この設定は、既定では無効になっています。 ワークスペース管理者は、この設定を有効にして、ワークスペース内の OneLake SAS での認証を許可できます。 テナント管理者は、テナント設定を使用して、すべてのワークスペースに対してこの設定をオンにするか、ワークスペース管理者にオンにしてもらいます。
Microsoft Purview ポータルでユーザー委任キーの作成を監視することもできます。 テナントで生成されたすべてのキーを表示するには、操作名 generateonelakeudk を検索します。 SAS の作成はクライアント側の操作であるため、自身で OneLake SAS の作成を監視、制限することはできませんが、UDK の生成だけは監視および制限できます。
OneLake SAS のベスト プラクティス
- 常に HTTPS を使用して SAS を作成または配布することで、SAS をインターセプトしようとする中間者攻撃から保護します。
- 自分のトークン、キー、SAS トークンの有効期限を追跡します。 OneLake ユーザー委任キーと SAS トークンの有効期間は最大 1 時間です。 UDK を要求しようとすると、または有効期間が 1 時間を超える SAS を作成しようとすると、要求は失敗します。 期限切れ OAuth トークンの有効期間延長に SAS が使用されるのを防ぐため、トークンの有効期間も、ユーザー委任キーと SAS の有効期限より長くなければなりません。
- SAS トークンの開始時刻には注意してください。 SAS の開始時刻を現在の時刻として設定すると、マシン間の開始時刻 (クロック スキュー) が異なるため、最初の数分間のエラーが発生する可能性があります。 開始時刻を数分前に設定すると、このようなエラーが発生するのを防ぐことができます。
- 可能な限り最小限の特権を SAS に付与します。 最小限のリソースに必要最小限の特権を提供することがセキュリティのベスト プラクティスであり、SAS が侵害された場合の影響を軽減します。
- ユーザー委任キーの生成を監視します。 Microsoft Purview ポータルでユーザー委任キーの作成を監査できます。 操作名 generateonelakeudk を検索して、テナントで生成されたキーを表示します。
- OneLake SAS の制限事項について説明します。 OneLake SAS トークンはワークスペース レベルのアクセス許可を持つことができないため、Azure Storage Explorer などのデータを走査するコンテナー レベルのアクセス許可を必要とする一部の Azure Storage ツールと互換性がありません。
- OneLake 診断を有効にして、OneLake SAS の使用状況を追跡します。 OneLake SAS トークンを使用してデータにアクセスすると、委任ユーザーの ID やトークンを使用するアプリケーションの IP アドレスなど、その使用状況が OneLake 診断によってログに記録されます。 診断を有効にして、データへの OneLake SAS アクセスの完全な監査証跡を維持します。