このトピックでは、DataWorks テナントメンバーの Alibaba Cloud アカウントと E-MapReduce(EMR)クラスタ内の特定の ID のアカウントとの間のマッピングを手動で構成する方法について説明します。これにより、テナントメンバーは、マッピングされたクラスタの特定の ID を使用して DataWorks でタスクを実行できます。
注意事項
テナントメンバーアカウントと EMR クラスタアカウント間のマッピングは、EMR クラスタが登録されているすべてのワークスペースに適用されます。ビジネスに必要な場合を除き、EMR クラスタを変更しないでください。
このトピックの手順に従ってテナントメンバーアカウントと EMR クラスタアカウント間のマッピングを構成しない場合、DataWorks はデフォルトで次のポリシーに基づいて実行するタスクを EMR クラスタに発行します。
RAM ユーザーを使用している場合、RAM ユーザーと同じ名前を持つ EMR クラスタのシステムアカウントを使用してタスクが実行されます。 EMR クラスタで Lightweight Directory Access Protocol(LDAP)または Kerberos 認証が有効になっていない場合は、このトピックの操作を実行して、RAM ユーザーと EMR クラスタのシステムアカウント間のマッピングを構成する必要があります。そうしないと、RAM ユーザー、RAM ユーザーと同じ名前を持つ EMR クラスタのシステムアカウントを使用してタスクが実行されます。タスクが DataWorks で実行に失敗します。
Alibaba Cloud アカウントを使用している場合、EMR クラスタで LDAP または Kerberos 認証が有効になっているかどうかに関係なく、Alibaba Cloud アカウントと EMR クラスタアカウント間のマッピングを手動で構成する必要があります。そうしないと、DataWorks でタスクを実行できません。Alibaba Cloud アカウント、EMR クラスタで LDAP 認証または Kerberos 認証が有効になっているかどうかにかかわらず、Alibaba Cloud アカウントと EMR クラスタアカウント間のマッピングを手動で構成する必要があります。構成しない場合、DataWorks でタスクが実行されません。
説明DataWorks で EMR クラスタにアクセスするためにユーザーが使用するアカウントは、EMR クラスタを登録したときに指定したアクセス ID によって異なります。
RAM ユーザー:DataWorks で EMR クラスタを登録する 場合、タスクオーナーまたは RAM ユーザーが EMR クラスタのデフォルトのアクセス ID として使用されます。
Alibaba Cloud アカウント:DataWorks で EMR クラスタを登録する 場合、Alibaba Cloud アカウントが EMR クラスタのデフォルトのアクセス ID として使用されます。
使用上の注意
認証方法
DataWorks では、LDAP 認証と Kerberos 認証が有効になっているテナントメンバーアカウントと EMR クラスタアカウント間のマッピングを構成することはできません。このタイプのマッピングを構成すると、DataWorks でタスクを実行できません。
ホワイトリスト構成
EMR クラスタで Ranger 認証が有効になっている場合、DataWorks が EMR クラスタにアクセスできるように、DataWorks を EMR クラスタのホワイトリストに追加する必要があります。DataWorks を EMR クラスタのホワイトリストに追加する方法については、このトピックの付録:DataWorks を EMR クラスタのホワイトリストに追加する セクションを参照してください。
ユーザー管理
EMR クラスタのシステムアカウントではないアカウントを ID 認証に使用する場合(Kerberos 認証など)、EMR クラスタの関連認証サービスを有効にし、DataWorks で EMR タスクを開発するために使用するアカウントを認証サービスに追加する必要があります。詳細については、「サードパーティ認証ファイルを管理する」をご参照ください。
データ権限
EMR クラスタのサービスに対する権限を管理できます。これにより、DataWorks ユーザーのデータ操作権限が分離されます。たとえば、Alibaba Cloud アカウントにマッピングされている EMR クラスタアカウントの権限を管理するために Ranger を使用できます。
Data Lake Formation(DLF)が EMR クラスタのメタデータストレージサービスとして指定されており、DLF-Auth コンポーネントを使用して DLF のデータ権限管理機能が有効になっている場合、DataWorks コンソールのセキュリティセンターでデータ権限をリクエストできます。詳細については、「DLF の権限を管理する」をご参照ください。
マッピング構成
次の表に示すシナリオでは、DataWorks でタスクを実行できないことに注意してください。
シナリオ
説明
DataWorks でマッピング構成に EMR クラスタのシステムアカウントが使用されている
RAM ユーザーを使用して DataWorks でタスクを実行しています。ただし、RAM ユーザーと同じ名前の EMR クラスタアカウントはありません。
RAM ユーザーを使用して DataWorks でタスクを実行し、RAM ユーザーと EMR クラスタアカウント間のマッピングを手動で構成しています。ただし、マッピングされた EMR クラスタのアカウントまたはパスワードが、EMR クラスタの実際のアカウントまたはパスワードと異なっています。
Alibaba Cloud アカウントを使用して DataWorks でタスクを実行しています。ただし、Alibaba Cloud アカウントは EMR クラスタアカウントにマッピングされていません。
DataWorks で LDAP または Kerberos アカウントマッピングタイプが使用されている
EMR クラスタで LDAP または Kerberos 認証サービスが有効になっていますが、DataWorks でテナントメンバーアカウントと EMR クラスタアカウント間のマッピングが構成されていないか、正しく構成されていません。
DataWorks で Kerberos アカウントマッピングタイプが使用されています。ただし、EMR クラスタアカウントで Kerberos 認証サービスが有効になっていません。。ただし、EMR クラスタアカウントでは Kerberos 認証サービスが有効になっていません。
DataWorks で LDAP アカウントマッピングタイプが使用されています。ただし、EMR クラスタの関連コンポーネントで LDAP 認証サービスが有効になっていません。
説明DataWorks で LDAP アカウントマッピングを構成すると、DataWorks の SQL タスク(Hive、Impala、Presto、Trino タスクなど)は、デフォルトでマッピングされた EMR クラスタアカウントを使用して認証を行います。ただし、EMR クラスタの関連コンポーネントで LDAP 認証が有効になっていない場合、タスクは失敗します。
制限事項
すべてのユーザーの ID マッピングを構成するには、次のアカウントまたはロールのみを使用できます。
Alibaba Cloud アカウント
RAM ユーザーまたはAliyunDataWorksFullAccessポリシーとAliyunEMRFullAccessポリシーがアタッチされている RAM ロール
RAM ユーザー または RAM ロール に ワークスペース管理者ロールが割り当てられ、AliyunEMRFullAccess ポリシーがアタッチされている場合
上記のタイプに属さないメンバーアカウントは、自分自身の ID マッピングを構成するためにのみ使用できます。
アカウントマッピングページに移動する[アカウント マッピング] ページ
SettingCenter ページに移動します。
DataWorks コンソール にログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[管理センターに移動] をクリックします。
SettingCenter ページの左側のナビゲーションウィンドウで、クラスタ管理をクリックします。クラスタ管理ページで、クラスタの登録をクリックします。「クラスタタイプの選択」ダイアログボックスで、E-MapReduceをクリックします。[EMR クラスタの登録] ページが表示されます。
アカウントマッピングページに移動します。
EMR クラスタページで、目的の EMR クラスタを見つけ、アカウントマッピングタブをクリックします。
テナントメンバーアカウントと EMR クラスタアカウント間のマッピングを構成する
[アカウントマッピングの編集] を「アカウントマッピング」タブの右上隅でクリックします。表示されるページで、次の手順を実行して EMR クラスタの ID マッピングを構成できます。
構成ファイルをアップロードします。
EMR クラスタで Kerberos 認証が有効になっている場合、EMR TrinoタスクとEMR Prestoタスクが想定どおりに実行されるように、最初に keytab ファイルをアップロードする必要があります。詳細については、「ユーザーアカウントの認証資格情報をダウンロードする」をご参照ください。
マッピングを構成します。
構成モード:パラメータを「クラスタのカスタム構成」または別のクラスタの参照構成に設定できます。
マッピングタイプ:クラスタ認証のマッピングタイプ。有効な値:システムアカウントへのマッピング、OpenLDAP アカウントへのマッピング、Kerberos アカウントへのマッピング。
説明もし[kerberos アカウントへのマッピング] を マッピングの種類 パラメーターに選択した場合、keytab ファイルをアップロードする必要があります。
Kerberos アカウントマッピングを選択する前に、EMR クラスタで Kerberos 認証サービスが有効になっていることを確認してください。詳細については、「Kerberos 認証を有効にする」をご参照ください。
OPEN LDAP アカウントマッピングを選択する前に、EMR クラスタの関連コンポーネントでLDAP 認証サービスが有効になっていることを確認してください。 DataWorks で LDAP アカウントマッピングを構成すると、DataWorks の SQL タスク(Hive、Impala、Presto、Trino タスクなど)は、デフォルトでマッピングされた EMR クラスタアカウントを使用して認証を行います。ただし、EMR クラスタの関連コンポーネントで LDAP 認証が有効になっていない場合、タスクは失敗します。
付録:DataWorks を EMR クラスタのホワイトリストに追加する
EMR クラスタで Ranger が有効になっている場合、DataWorks で EMR タスクを開発する前に、EMR クラスタのホワイトリストに DataWorks を追加し、Hive サービスを再起動する必要があります。そうしないと、EMR タスクの実行時に次のエラーが報告されます: Cannot modify spark.yarn.queue at runtime
または Cannot modify SKYNET_BIZDATE at runtime
。
サービスを再起動します。
ホワイトリストを構成した後、構成を有効にするには Hive サービスを再起動する必要があります。