DataWorks で E-MapReduce (EMR) タスクを実行するには、EMR 側と DataWorks 側の両方で設定が必要です。適切な設定が行われていない場合、タスクが完全に失敗するか、すべてのワークスペースメンバーが同じクラスター権限を共有することになり、ユーザーレベルでのデータ分離が実現できません。
各ロールの作業内容
| ロール | 作業内容 |
|---|---|
| ワークスペース管理者 | EMR クラスターを DataWorks に登録し、設定センターでアカウントマッピングを設定 |
| データ開発者 / タスクオーナー | LDAP ユーザーおよび DataWorks ワークスペースに追加される (OpenLDAP アカウントマッピングの場合のみ必要) |
仕組み
DataWorks は、ワークスペースメンバーを登録済みの EMR クラスター上のアカウントにマッピングします。メンバーが EMR タスクを実行すると、DataWorks はマッピングされたアカウントを使用してクラスターで認証を行い、タスクはそのアカウントのデータ権限で実行されます。これにより、各ユーザーに独自のデータアクセス境界が与えられます。
マッピングでは、システムアカウントと OpenLDAP アカウントの 2 種類のアカウントタイプがサポートされています。クラスターごとに有効にできる認証方式は 1 つだけです。
認証方式のサポートはコンピュートエンジンによって異なります。マッピングタイプを選択する前に、ご利用の EMR クラスターが LDAP 認証をサポートしているかどうかを EMR コンソールで確認してください。
事前準備
設定を開始する前に、以下の点を確認してください:
マッピングはクラスターレベルでのみ設定可能です。
マッピングで使用される EMR クラスターのアカウントとパスワードは、DataWorks に登録されている EMR クラスターの実際のアカウントとパスワードと一致している必要があります。認証情報が一致しない場合、タスクは失敗します。
[OpenLDAP アカウントへのマッピング] を使用する場合、クラスターおよび SQL タスク (Hive、Impala、Presto) を実行する各サービスで LDAP 認証を有効にする必要があります。あるサービスで LDAP 認証が無効になっている場合、クラスターレベルのマッピングが設定されていても、そのサービス上の SQL タスクは失敗します。
[システムアカウントへのマッピング] を使用する場合、LDAP 認証は不要です。
EMR 側での権限管理
LDAP 認証の有効化
OpenLDAP アカウントを ID 認証に使用するには、クラスターで LDAP 認証を有効にし、関連するアカウントを LDAP ユーザーに追加します。
クラスターで LDAP 認証を有効にします。詳細については、「LDAP 認証の有効化」をご参照ください。
DataStudio で EMR タスクを作成、テスト、コミット、デプロイするアカウントを、LDAP ユーザーおよび関連する DataWorks ワークスペースに追加します。ワークスペースへのアカウント追加の詳細については、「ユーザー、ロール、権限の概要」をご参照ください。
データ権限の管理
クラスターレベルでデータ権限を分離するには、EMR Ranger を使用して、Alibaba Cloud アカウントにマッピングされる各 EMR クラスターアカウントに付与される権限を管理します。
DataWorks 側での権限管理
DataWorks 側には、プラットフォーム権限 (ユーザーがアクセスできるモジュール) とデータ権限 (アカウントマッピングに基づいてユーザーが読み書きできるデータ) という 2 つの異なる権限レイヤーがあります。両方を設定する必要があります。
DataWorks への EMR クラスターの登録
EMR クラスターをコンピュートエンジンインスタンスとして使用できるように、DataWorks に登録します。この操作は、AliyunEMRFullAccess ポリシーがアタッチされたアカウントのみが実行できます。このポリシーのアタッチに関する詳細については、「ユーザー、ロール、権限の概要」をご参照ください。
サービスモジュールの権限付与
DataWorks で EMR タスクを実行するには、各ユーザーに、関連するサービスモジュール (DataStudio、データマップ、Data Quality、インテリジェントモニタリング) に対する権限が必要です。これらの権限により、ユーザーは EMR タスクを開発し、タスクの O&M (運用保守) 操作を実行し、タスクのデータ品質を監視できます。これらの権限はプラットフォーム機能へのアクセスのみを制御し、ユーザーが読み書きできるデータを決定するものではありません。詳細については、「ユーザー、ロール、権限の概要」をご参照ください。
アカウントマッピングの設定
セキュリティモードで EMR クラスターを登録した後、DataWorks ワークスペースメンバーと EMR クラスターアカウント間のマッピングを設定します。メンバーは、マッピングされたアカウントと同じデータ権限を継承します。
DataWorks で、[設定センター] > [クラスター管理] に移動します。
ワークスペースメンバーと登録済み EMR クラスターのアカウント間のマッピングを設定します。
詳細な手順については、「DataWorks の設定」をご参照ください。
失敗シナリオ
| マッピングタイプ | タスクが失敗するケース |
|---|---|
| システムアカウントへのマッピング | マッピング内のアカウントまたはパスワードが、実際の EMR クラスターの認証情報と一致しない |
| OpenLDAP アカウントへのマッピング | クラスターで LDAP 認証が有効になっているが、DataWorks でアカウントマッピングが設定されていない |
| OpenLDAP アカウントへのマッピング | DataWorks で LDAP 認証が有効になっているが、EMR クラスター内の特定のサービス (Hive、Impala、Presto など) で無効になっている |