すべてのプロダクト
Search
ドキュメントセンター

Data Lake Formation:権限

最終更新日:Jun 22, 2026

このトピックでは、Data Lake Formation (DLF) の権限モデルについて説明し、RAM ユーザーが DLF の機能を使用およびアクセスするために適切な権限を付与する方法を解説します。

Data Lake Formation (DLF) の権限モデルは、RAM 権限と DLF データ権限という 2 つの主要なレイヤーで構成されています。ユーザーが DLF のページやデータにアクセスするには、通常、データリソースにアクセスするために両方の権限レイヤーのチェックに合格する必要があります。

  • RAM 権限:すべての DLF OpenAPI オペレーションへのアクセスを制御し、RAM ユーザーがどの DLF OpenAPI オペレーションまたはページにアクセスできるかを決定します。

  • DLF データ権限:データベース、テーブル、列、関数、データカタログなどの内部 DLF リソースへのアクセスや使用、およびデータ認可オペレーションの権限を制御します。

レイヤー 1:RAM OpenAPI 権限

このレイヤーは、すべての DLF OpenAPI オペレーションへのアクセスを制御し、RAM ユーザーが特定の DLF OpenAPI オペレーションまたはページにアクセスできるかどうかを決定します。RAM コンソール には、2 つの組み込み認可ポリシーがあります。

  • AliyunDLFFullAccess:すべての DLF OpenAPI オペレーションを呼び出す権限を付与します。

  • AliyunDLFReadOnlyAccessList または Get で始まる API オペレーションなど、読み取り専用の DLF OpenAPI オペレーションを呼び出す権限を付与します。このポリシーは、CreateDelete などの書き込みオペレーションの権限を付与しません。

    重要

    SubmitQuery オペレーションは書き込みオペレーションであるため、 AliyunDLFFullAccess 権限が必要です。

OpenAPI レベルでよりきめ細かい制御を行うために、カスタム RAM 認可ポリシーを作成することもできます。

レイヤー 2:DLF のきめ細かいデータ権限

このレイヤーは、データベース、テーブル、列、関数、データカタログなどの内部 DLF リソースへのアクセスや使用、およびロール管理、ユーザー管理、認可などのオペレーションの権限を制御します。

説明
  • レイヤー 2 の権限制御は、DLF のきめ細かいデータ権限と RAM DLF-DSS の粗粒度のデータ権限の 2 種類に分かれています。これらの種類は OR 関係にあります。ユーザーはどちらかの種類の権限チェックに合格するとアクセス権を取得でき、両方のチェックに失敗した場合にのみアクセスが拒否されます。

  • データベース、テーブル、列、関数、データカタログなどのデータリソースに対する権限チェックは、データカタログの権限設定を有効にして初めて有効になります。ただし、ロール、ユーザー、認可管理などの管理オペレーションの権限検証は、設定が有効になっているかどうかに関係なく、常にきめ細かいデータ権限によって適用されます。

データ権限管理を簡素化するために、DLF では組み込みのデータ管理者ロールが提供されています。これらのロールは、[Data Permission] > [Role] ページで確認し、特定のユーザーに割り当てることができます。

  • admin (データレイク管理者):Data Lake Formation のすべてのデータおよび認可権限を持ちます。

  • super_administrator (スーパー管理者):Data Lake Formation のすべてのデータおよび認可権限を持ち、admin ロールを持つユーザーを変更できます。

きめ細かい権限の設定に関する詳細については、「データ権限の概要」をご参照ください。

レイヤー 2:RAM DLF-DSS の粗粒度のデータ権限

このレイヤーは、データベース、テーブル、列、関数、データカタログなどの内部 DLF リソースへのアクセスや使用、およびロール管理、ユーザー管理、認可などのオペレーションの権限を制御します。RAM コンソールには、2 つの組み込み認可ポリシーがあります。

  • AliyunDLFDSSFullAccess:すべてのきめ細かい DLF リソースへのアクセスを許可します。

  • AliyunDLFDSSReadOnlyAccessListGetSelectExecute などのオペレーションを含め、すべてのきめ細かい DLF リソースへの読み取り専用アクセスを許可します。

説明
  • きめ細かいデータ権限制御には、DLF のきめ細かいデータ権限を使用することを推奨します。

  • データベース、テーブル、列、関数、データカタログなどのデータリソースに対する権限チェックは、データカタログの権限設定を有効にした後にのみ有効になります。ただし、ロール、ユーザー、および権限管理などの管理操作に対する権限検証は、設定が有効になっているかどうかに関係なく、常に DLF-DSS の粗粒度のデータ権限によって強制されます。

  • RAM の AdministratorAccess ポリシーを持つ RAM ユーザーは、すべての DLF-DSS 権限も持ち、これは AliyunDLFDSSFullAccess ポリシーを持つことと同等です。

一般的なシナリオ

  • ユースケース:データ権限制御を必要としない DLF メタデータのクエリ。

    • 組み込みの AliyunDLFFullAccess または AliyunDLFReadOnlyAccess 認可ポリシーをアタッチして、「レイヤー 1:RAM OpenAPI 権限」を RAM ユーザーに付与します。

  • ユースケース:きめ細かいデータ認可のための DLF の使用。

    • ステップ 1:組み込みの AliyunDLFFullAccess または AliyunDLFReadOnlyAccess 認可ポリシーをアタッチして、「レイヤー 1:RAM OpenAPI 権限」を RAM ユーザーに付与します。

    • ステップ 2:データカタログの権限設定を有効にします。

    • ステップ 3 (オプション):E-MapReduce (EMR) などの他のサービスを使用してデータのクエリや変更を行う場合は、EMR クラスターで DLF-Auth 権限スイッチも有効にする必要があります。

    • ステップ 4:RAM ユーザーに必要なデータ権限を付与します。次のいずれかの方法を使用します。

      • 管理者ロールの割り当て:Alibaba Cloud アカウントを使用して、admin または super_administrator ロールを RAM ユーザーに付与します。これにより、RAM ユーザーに完全なデータおよび認可管理権限が付与されます。詳細については、「ロールの管理」をご参照ください。

      • データベース管理者権限の割り当て:特定のデータベースに対するすべての権限をユーザーに付与します。詳細については、「権限の付与」をご参照ください。

      • テーブルまたは列へのアクセス権限の割り当て:テーブルまたは列に対する特定の権限をユーザーに付与します。詳細については、「権限の付与」をご参照ください。

よくある質問

  • 問題 1:ユーザーが DLF API を呼び出すために必要な RAM 権限がないことを示すエラーメッセージが表示される。

    症状:ページに、dlf:xxx 権限に対して RAM 認可が必要であることを示すエラーメッセージが表示されます。これは、ユーザーがレイヤー 1 の OpenAPI 権限を必要とすることを意味します。RAM コンソールで組み込みの AliyunDLFFullAccess または AliyunDLFReadOnlyAccess ポリシーをアタッチして、必要な権限を付与してください。

  • 問題 2:権限を付与しようとすると、リソースに対する権限がユーザーにないことを示すエラーメッセージが表示される。

    症状:ユーザーが権限を付与しようとすると、必要な dlf permission がないことを示すエラーメッセージが表示されます。

    • 特定のリソースに対する認可権限をユーザーに付与してください。ロールを割り当てることによって、これらの権限を付与することもできます。詳細については、「権限の付与」をご参照ください。

    • ユーザーに admin または super_administrator ロールを付与してください。詳細については、「ロールの管理」をご参照ください。

    • ユーザーに dlf-dss 権限を付与してください。たとえば、dlf-dss:BatchGrantPermissionsdlf-dss:SelectTable を付与すると、ユーザーはすべてのテーブルに対する SELECT 権限を他のユーザーに付与できます。

    エラーポップアップの例:タイトルは Error Occurred で、エラーメッセージは Authorization Failed [4019] です。このメッセージは、ユーザーがリソース acs:dlf:cn-hangzhou:{accountId}:metastore/catalogs/{catalogName},databases/default に対する All 権限を持っていないことを示します。エラーコードは NoPermission で、プリンシパルが dlf 権限チェックに失敗した旨のメッセージが表示されます。

  • 問題 3:ユーザーが ListPermissionsListRoles などのコントロールプレーン API オペレーションを呼び出す権限がないことを示すエラーメッセージが表示される。

    症状:ユーザーが権限のクエリやロールの管理などのコントロールプレーン API オペレーションを呼び出すと、エラーコード NoPermission のエラーが発生します。エラーメッセージは、ユーザーがそのオペレーションに対する権限を持っていないことを示します。この問題を解決するには、次のいずれかの方法を使用してください。

    エラーポップアップの例:タイトルは Error Occurred です。エラーメッセージは、ユーザーが ListPermissionsListRoles などのコントロールプレーン API を呼び出す際に操作を実行する権限がないことを示します。エラーコードは NoPermission で、プリンシパルが dlf 権限チェックに失敗した旨のメッセージが表示されます。

    • ユーザーに admin または super_administrator ロールを付与してください。詳細については、「ロールの管理」をご参照ください。

    • ユーザーに dlf-dss 権限を付与してください。DLF では、RAM コンソールで組み込みの AliyunDLFDSSFullAccess および AliyunDLFDSSReadOnlyAccess ポリシーが提供されています。例:

      • dlf-dss:ListRoles:ユーザーが DLF 内のすべてのロールを表示できるようにします。

      • dlf-dss:ListPermissions:ユーザーが DLF で付与されたすべての権限を表示できるようにします。