このトピックでは、DataWorks メンバーのクラウドアカウントと EMR クラスター内の特定のアカウントとの間のマッピングを手動で設定する方法について説明します。これにより、DataWorks メンバーはマッピングされたクラスターアイデンティティを使用してタスクを実行できます。
注意事項
-
EMR クラスターのアイデンティティマッピングは、そのクラスターが登録されているすべてのワークスペースに適用されます。EMR クラスターの設定は慎重に変更してください。
-
アカウントマッピングを手動で設定しない場合、タスクの実行に使用するクラウドアカウントに関係なく、DataWorks はデフォルトのポリシーを使用して EMR クラスターにタスクを送信します。
-
タスクを RAM ユーザー として実行する場合:デフォルトでは、DataWorks は RAM ユーザーと同じ名前の EMR クラスターのシステムアカウントを使用してタスクを実行します。クラスターで LDAP または Kerberos 認証が有効になっていない場合は、このトピックで説明されているようにマッピングを設定する必要があります。そうしない場合、DataWorks タスクは失敗します。
-
タスクを Alibaba Cloud アカウント として実行する場合:クラスターで LDAP または Kerberos 認証が有効になっているかどうかにかかわらず、Alibaba Cloud アカウントのアカウントマッピングを手動で設定する必要があります。そうしない場合、Alibaba Cloud アカウントを使用して実行されるすべてのタスクは失敗します。
説明DataWorks から EMR クラスターにアクセスするために使用されるアカウントは、EMR クラスターを登録する際に指定するアクセスアイデンティティによって異なります。
-
RAM ユーザーとしてタスクを実行するには、DataWorks で EMR コンピューティングリソースをバインドする際に、デフォルトのアクセスアイデンティティとして タスク所有者によってマップされたクラスターアカウント または Alibaba Cloudサブアカウントにマッピングされたクラスターアカウント を選択します。
-
Alibaba Cloud アカウントとしてタスクを実行するには、DataWorks で EMR コンピューティングリソースをバインドする際に、デフォルトのアクセスアイデンティティとして Alibaba Cloudプライマリアカウントでマッピングされたクラスターアカウント を選択します。
-
-
注意事項
-
認証方法
DataWorks は LDAP と Kerberos の両方のアカウントマッピングを同時に設定することをサポートしていません。したがって、EMR コンポーネントで LDAP と Kerberos の両方の認証が有効になっている場合、DataWorks で実行されるタスクは失敗します。
-
ホワイトリストの設定
クラスターで Ranger 認証が有効になっている場合は、DataWorks が EMR クラスターにアクセスできるように、DataWorks をホワイトリストに追加する必要があります。詳細については、「付録:DataWorks をホワイトリストに追加」をご参照ください。
-
ユーザー管理
クラスターのアイデンティティ認証にシステムアカウント以外のアカウント (Kerberos など) を使用する場合は、まずクラスターで対応する認証サービスを有効にし、次に DataWorks での EMR タスク開発に使用するアカウントをそのサービスに追加する必要があります。詳細については、「Kerberos 認証の設定」をご参照ください。
-
データ権限
EMR クラスターの権限管理コンポーネントを使用して、異なる DataWorks ユーザーのデータ権限を分離できます。たとえば、Ranger コンポーネントを使用して、Alibaba Cloud アカウントにマッピングされたクラスターユーザーの権限を管理できます。
EMR クラスターがメタデータサービスとして Data Lake Formation (DLF) を使用し、権限を管理するために DLF-Auth コンポーネントを有効にしている場合、DataWorks セキュリティセンターでデータ権限を申請できます。詳細については、「DLF データアクセス制御」をご参照ください。
-
マッピング設定
以下のシナリオでは、DataWorks タスクが失敗する場合があります:
シナリオ
説明
DataWorks でのシステムアカウントマッピングの使用
-
タスクが RAM ユーザーによって実行されたものの、同名のクラスターアカウントが存在しない場合。
-
RAM ユーザーによってタスクが実行され、DataWorks ワークスペースメンバーとクラスターアカウント間のマッピングが手動で設定されたものの、マッピングされたクラスターアカウントまたはパスワードが正しくない場合。
-
Alibaba Cloud アカウントによってタスクが実行されたものの、そのアカウントのマッピングが設定されていない場合。
DataWorks でのLDAP / Kerberos アカウントマッピングの使用
-
クラスターで LDAP または Kerberos 認証が有効になっているものの、DataWorks に対応するアカウントマッピングが存在しないか、正しくない場合。
-
DataWorks で Kerberos マッピングを選択したものの、クラスターで Kerberos が有効になっていない場合。
-
DataWorks で LDAP マッピングを選択したものの、クラスター上のコンポーネントで認証サービスが有効になっていない場合。
説明DataWorks で LDAP マッピングを設定した後、Hive、Impala、Presto、Trino などの SQL タスクは、デフォルトでマッピングされたアカウントを認証に使用します。クラスターコンポーネントで LDAP 認証が有効になっていない場合、これらのタスクは失敗します。
-
制限事項
-
以下のロールを持つユーザーのみが、ワークスペースメンバーのアイデンティティマッピングを設定できます:
-
Alibaba Cloud アカウント
-
AliyunDataWorksFullAccess および AliyunEMRFullAccess 権限を持つ RAM ユーザー または RAM ロール。
-
ワークスペース管理者ロールが割り当てられ、AliyunEMRFullAccess 権限を持つ RAM ユーザー または RAM ロール。
-
-
これらのロールを持たないユーザーは、自分自身のアイデンティティマッピングのみを設定できます。
アカウントマッピングページへの移動
[Management Center] ページに移動します。
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、[Management Center] をクリックします。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[管理センターに移動] をクリックします。
-
左側メニューで Computing Resources をクリックし、Computing Resources ページに移動します。
-
コンピューティングリソースのリストで、ターゲット EMR クラスターを見つけます。[アカウントマッピング] タブで、右上隅にある [アカウントマッピングの編集] をクリックして、「アカウントマッピングの編集」ページに移動します。
[アカウントマッピング] タブには [本番および開発環境] セクションがあり、[マッピングタイプ] および [マッピングされたアカウント数] フィールドが表示されます。
クラスターアカウントマッピングの設定
「アカウントマッピングの編集」ページで、次の手順に従ってクラスターのアイデンティティマッピングを設定します。
-
設定ファイルのアップロード
-
クラスターで Kerberos 認証が有効になっている場合は、クラスターから認証情報をダウンロードする必要があります。
-
Keystoreファイルのアップロード をクリックして、ダウンロードした認証情報をアップロードします。これにより、EMR Trino および EMR Presto タスクが期待どおりに実行されるようになります。
-
-
マッピングの設定
-
構成モード:現在のクラスターのマッピングを定義するか、[別のクラスターの設定を参照] を選択して既存のマッピング設定を再利用できます。
-
マッピングタイプ:クラスター認証のアカウントタイプを指定します。サポートされているタイプには、システムアカウントマッピング、OPEN LDAP アカウントマッピング、Kerberos アカウントマッピングがあります。
説明-
[マッピングタイプ] として Kerberosアカウントマッピング を選択した場合は、キーストア ファイルをアップロードする必要があります。
-
Kerberos アカウントマッピングを使用する前に、クラスターで Kerberos サービスが有効になっていることを確認してください。詳細については、「Kerberos の有効化」をご参照ください。
-
LDAP アカウントマッピングを使用する前に、関連コンポーネントで LDAP サービスが有効になっていることを確認してください。DataWorks で LDAP マッピングを設定した後、Hive、Impala、Presto、Trino などの SQL タスクは、デフォルトでマッピングされたアカウントを認証に使用します。クラスターコンポーネントで LDAP 認証が有効になっていない場合、これらのタスクは失敗します。
-
-
Confirm をクリックして、クラスターアカウントマッピングの設定を保存します。
付録:DataWorks をホワイトリストに追加
EMR クラスターで Ranger が有効になっている場合、DataWorks で EMR ジョブを開発する前に、EMR で DataWorks をホワイトリストに追加し、Hive を再起動する必要があります。そうしないと、ジョブは実行時に Cannot modify spark.yarn.queue at runtime または Cannot modify SKYNET_BIZDATE at runtime というエラーで失敗します。
-
サービスの再起動
ホワイトリストを設定した後、変更を有効にするにはサービスを再起動する必要があります。