DataWorks で MaxCompute や E-MapReduce (EMR) などのコンピュートエンジンを使用するには、最初に必要なアクセス権限を DataWorks に付与する必要があります。権限付与後、システムは各エンジンに対して、事前定義されたアクセス権限ポリシーを持つサービスリンクロールを自動的に作成します。
背景情報
DataWorks コンソールでコンピュートエンジンインスタンスを追加または編集すると、システムが権限付与を求めるプロンプトを表示します。権限付与後、システムはサービスリンクロールを自動的に作成します。
-
これらの権限を付与できるのは、
AliyunDataWorksFullAccessロールを持つ Alibaba Cloud アカウントまたは RAM ユーザーのみです。 RAM ユーザーがAliyunDataWorksFullAccessロールを持っていない場合は、まずそのロールを割り当ててください。 詳細については、「RAM ユーザー権限の管理」をご参照ください。 -
データソース管理 などの操作を行うと、権限付与を求めるプロンプトが表示されます。
-
RAM コンソールの ページでロールの詳細を表示できます。サービスにリンクされたロールの詳細については、「サービスにリンクされたロール」をご参照ください。
次の表に、自動的に作成されるロールと、その詳細へのリンクを示します。
|
ロール |
目的 |
詳細 |
|
|
DataWorks に MaxCompute へのアクセス権限を付与します。 |
|
|
|
EMR (新しいデータレイク) からメタデータを取得し、データマップでデータレコードをプレビューできるようにします。 |
|
|
|
専用リソースグループをデータソースに接続するために、VPC とセキュリティグループの設定を管理します。 |
|
|
|
データソースアクセスを設定する際に選択できるよう、RAM ロールを一覧表示します。 |
|
|
|
データソースの設定、タスクの設定、データ同期を行う際に、現在の Alibaba Cloud アカウント配下にある他のクラウドサービスのリソースへ DataWorks がアクセスできるようにします。これには、RDS、Redis、MongoDB、PolarDB-X、HybridDB for MySQL、AnalyticDB for PostgreSQL、PolarDB、DMS、DLF などのクラウドリソースに対する一部の管理権限が含まれます。 |
|
|
|
DataWorks Open Platform のメッセージ機能とイベント機能をサポートするために、EventBridge イベントを管理します。 |
|
|
|
DLF メタデータを取得し、メタデータ権限を管理します。これにより、Security Center は DLF の権限リクエストと承認を処理できます。 |
|
|
|
EventBridge のリソースを管理し、OSS などの他のクラウドサービスのリソースにアクセスします。 |
以降のセクションでは、MaxCompute および EMR (新しいデータレイク) エンジン向けのロールについて説明します。
ロール 1:AliyunServiceRoleForDataworksEngine
-
ロール名:[AliyunServiceRoleForDataworksEngine]
-
目的:DataWorks がコンピュートエンジン (dataworks-engine) にアクセスするためのサービスリンクロールです。dataworks-engine サービスは、このロールを使用して他のクラウドサービス内のお客様のリソースにアクセスします。
-
アタッチされるポリシー:[AliyunServiceRolePolicyForDataworksEngine]
-
ポリシーの詳細:
{ "Version": "1", "Statement": [ { "Action": "odps:*", "Effect": "Allow", "Resource": "*" }, { "Action": [ "stream:ActOnBehalfOfAnotherUser", "stream:CreateDeployment", "stream:StartJobWithParams", "stream:ListDeployments", "stream:GetDeployment", "stream:GetJob", "stream:StopJob", "stream:DeleteDeployment" ], "Effect": "Allow", "Resource": "*" }, { "Action": "dlf-auth:ActOnBehalfOfAnotherUser", "Resource": "*", "Effect": "Allow" }, { "Action": [ "pai:*", "paiplugin:*", "eas:*", "featurestore:*" ], "Resource": "*", "Effect": "Allow" }, { "Effect": "Allow", "Action": [ "emr-serverless-spark:StartSessionCluster", "emr-serverless-spark:CreateSqlStatement", "emr-serverless-spark:GetSqlStatement", "emr-serverless-spark:TerminateSqlStatement", "emr-serverless-spark:ListSessionClusters", "emr-serverless-spark:ListWorkspaces", "emr-serverless-spark:ListWorkspaceQueues", "emr-serverless-spark:ListReleaseVersions", "emr-serverless-spark:CancelJobRun", "emr-serverless-spark:ListJobRuns", "emr-serverless-spark:GetJobRun", "emr-serverless-spark:StartJobRun", "emr-serverless-spark:AddMembers", "emr-serverless-spark:GrantRoleToUsers", "emr-serverless-spark:ListLogContents", "emr-serverless-spark:GetTemplate", "emr-serverless-spark:ListKyuubiServices", "emr-serverless-spark:GetLivyCompute", "emr-serverless-spark:CreateLivyCompute", "emr-serverless-spark:UpdateLivyCompute", "emr-serverless-spark:ListLivyCompute", "emr-serverless-spark:DeleteLivyCompute", "emr-serverless-spark:StartLivyCompute", "emr-serverless-spark:StopLivyCompute", "emr-serverless-spark:CreateLivyComputeToken", "emr-serverless-spark:GetLivyComputeToken", "emr-serverless-spark:ListLivyComputeToken", "emr-serverless-spark:DeleteLivyComputeToken", "emr-serverless-spark:RefreshLivyComputeToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "adb:SubmitSparkApp", "adb:GetSparkAppState", "adb:GetSparkAppLog", "adb:GetSparkAppWebUiAddress", "adb:ListSparkApps", "adb:GetSparkAppInfo", "adb:KillSparkApp", "adb:DescribeAdbMySqlTables", "adb:getDatabaseObjectsByFilter", "adb:getTable" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "lindorm:GetLindormInstanceList", "lindorm:GetLindormInstance", "lindorm:GetLindormInstanceEngineList", "lindorm:GetLindormV2InstanceEngineList", "lindorm:ListLdpsComputeGroups", "lindorm:RestartLdpsComputeGroup" ], "Resource": "*" }, { "Action": "ram:DeleteServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "engine.dataworks.aliyuncs.com" } } }, { "Action": [ "searchengine:GetInstance", "searchengine:ListInstances", "searchengine:GetTable", "searchengine:ListTables" ], "Resource": "*", "Effect": "Allow" } ] }
ロール 2:AliyunServiceRoleForDataworksOnEmr
このロールまたはそのアクセス権限ポリシーを変更または削除しないでください。変更または削除すると、EMR 上の DataWorks 機能が正常に機能しなくなる可能性があります。
-
ロール名:[AliyunServiceRoleForDataworksOnEmr]
-
目的:DataWorks がデータマップでデータをプレビューし、DLF タイプの EMR クラスターからメタデータを取得し、EMR クラスター構成を読み取れるようにします。
-
アタッチされるポリシー:[AliyunServiceRolePolicyForDataworksOnEmr]
-
ポリシーの詳細:
-
EMR アクセス権限
{ "Version": "1", "Statement": [ { "Action": [ "emr:GetCluster", "emr:GetOnKubeCluster", "emr:GetClusterClientMeta", "emr:GetApplicationConfigFile", "emr:ListClusters", "emr:ListNodes", "emr:ListNodeGroups", "emr:ListApplications", "emr:ListApplicationConfigs", "emr:ListApplicationConfigFiles", "emr:ListApplicationLinks", "emr:ListComponentInstances", "emr:DescribeClusterV2", "emr:DescribeCluster", "emr:DescribeClusterServiceConfig", "emr:DescribeFlowAgentToken", "emr:DescribeClusterBasicInfo", "emr:ListClusterHostComponent" ], "Resource": "*", "Effect": "Allow" } ] } -
Data Lake Formation (DLF) アクセス権限
EMR クラスターがメタデータ管理に DLF を使用している場合、このロールには、DataWorks が EMR メタデータを取得できるよう、DLF のアクセス権限も含まれます。
{ "Action": [ "dlf:SubmitQuery", "dlf:GetQueryResult", "dlf:GetTable", "dlf:ListDatabases", "dlf:GetTableProfile", "dlf:GetCatalogSettings", "dlf:BatchGrantPermissions", "dlf:ListPartitionsByFilter", "dlf:ListPartitions", "dlf:GetHudiProperties", "dlf:ListCatalogs", "dlf:GetDatabase", "dlf:GetLifecycleRule", "dlf:GetCatalog", "dlf:GetIcebergNamespace", "dlf:GetIcebergTable" ], "Resource": "*", "Effect": "Allow" } -
Container Service for Kubernetes (ACK) アクセス権限
EMR クラスターが ACK で実行されている場合、このロールには次の ACK 権限も含まれます。
{ "Action": [ "cs:DescribeUserPermission", "cs:DescribeClusterDetail", "cs:DescribeClusterUserKubeconfig", "cs:GetClusters", "cs:GrantPermissions", "cs:RevokeK8sClusterKubeConfig" ], "Resource": "*", "Effect": "Allow" } -
サーバーレス Spark アクセス権限
EMR クラスターがサーバーレス Spark クラスターの場合、このロールには次の権限も含まれます。
{ "Effect": "Allow", "Action": [ "emr-serverless-spark:StartSessionCluster", "emr-serverless-spark:CreateSqlStatement", "emr-serverless-spark:GetSqlStatement", "emr-serverless-spark:TerminateSqlStatement", "emr-serverless-spark:ListSessionClusters", "emr-serverless-spark:ListWorkspaces", "emr-serverless-spark:ListWorkspaceQueues", "emr-serverless-spark:ListReleaseVersions", "emr-serverless-spark:CancelJobRun", "emr-serverless-spark:ListJobRuns", "emr-serverless-spark:GetJobRun", "emr-serverless-spark:StartJobRun", "emr-serverless-spark:AddMembers", "emr-serverless-spark:GrantRoleToUsers", "emr-serverless-spark:ListLogContents", "emr-serverless-spark:GetTemplate", "emr-serverless-spark:ListKyuubiServices", "emr-serverless-spark:GetLivyCompute", "emr-serverless-spark:CreateLivyCompute", "emr-serverless-spark:UpdateLivyCompute", "emr-serverless-spark:ListLivyCompute", "emr-serverless-spark:DeleteLivyCompute", "emr-serverless-spark:StartLivyCompute", "emr-serverless-spark:StopLivyCompute", "emr-serverless-spark:CreateLivyComputeToken", "emr-serverless-spark:GetLivyComputeToken", "emr-serverless-spark:ListLivyComputeToken", "emr-serverless-spark:DeleteLivyComputeToken", "emr-serverless-spark:RefreshLivyComputeToken", "emr-serverless-spark:ListLogContents" ], "Resource": "*" }次の OSS 権限は、SQL ファイルと JAR パッケージのアップロードや一時的なクエリ結果の保存を許可します。
{ "Action": [ "oss:PutObject", "oss:GetObject", "oss:DeleteObject", "oss:DeleteObjectVersion" ], "Resource": [ "acs:oss:*:*:*/.dataworks/*", "acs:oss:*:*:*/.dlsdata/*" ], "Effect": "Allow" }, { "Action": "oss:PostDataLakeStorageFileOperation", "Resource": "*", "Effect": "Allow" }
-