DataWorks'te MaxCompute ve EMR gibi hesaplama motorlarını kullanmak için öncelikle DataWorks'e gerekli erişim izinlerini vermeniz gerekir. İzinleri verdikten sonra sistem, her bir motor için önceden tanımlanmış erişim ilkelerine sahip hizmet bağlantılı rolleri otomatik olarak oluşturur.
Arka Plan
DataWorks konsolunda bir hesaplama motoru örneği eklediğinizde veya düzenlediğinizde sistem sizden izin vermenizi ister. Yetkilendirme işleminden sonra sistem otomatik olarak bir hizmet bağlantılı rolü oluşturur.
Bu izinleri yalnızca bir Alibaba Cloud hesabı veya
AliyunDataWorksFullAccessrolüne sahip bir RAM kullanıcısı verebilir. Bir RAM kullanıcısındaAliyunDataWorksFullAccessrolü yoksa önce bu rolü atayın. Daha fazla bilgi için bkz. RAM kullanıcı izinlerini yönetme.Veri Kaynağı Yönetimi gibi işlemler yetkilendirme istemini tetikler.
Rol ayrıntılarını RAM konsolu üzerindeki sayfasında görüntüleyin. Hizmet bağlantılı roller hakkında daha fazla bilgi için bkz. Hizmet Bağlantılı Rol.
Aşağıdaki tabloda otomatik olarak oluşturulan roller ve bunların ayrıntılarına yönelik bağlantılar listelenmektedir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Aşağıdaki bölümlerde MaxCompute ve EMR (yeni veri gölü) motorlarına ait roller ayrıntılı olarak açıklanmaktadır.
Rol 1: AliyunServiceRoleForDataworksEngine
Rol adı: AliyunServiceRoleForDataworksEngine
Amaç: DataWorks'ün hesaplama motorlarına (dataworks-engine) erişmesi için kullanılan bir hizmet bağlantılı roldür. dataworks-engine hizmeti, bu rolü kullanarak diğer cloud hizmetlerindeki kaynaklarınıza erişir.
Eklenen ilke: AliyunServiceRolePolicyForDataworksEngine
-
İlke ayrıntıları:
{ "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" } ] }
Rol 2: AliyunServiceRoleForDataworksOnEmr
Bu rolü veya erişim ilkesini değiştirmeyin ya da silmeyin. Aksi takdirde DataWorks on EMR özelliği çalışmayabilir.
Rol adı: AliyunServiceRoleForDataworksOnEmr
Amaç: DataWorks'ün Data Map'te verileri önizlemesini, DLF tipi EMR kümelerinden meta verileri almasını ve EMR küme yapılandırmalarını okumasını sağlar.
Eklenen ilke: AliyunServiceRolePolicyForDataworksOnEmr
-
İlke ayrıntıları:
-
EMR erişim izinleri
{ "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) erişim izinleri
Bir EMR kümesi meta veri yönetimi için DLF kullanıyorsa rol, DataWorks'ün EMR meta verilerini alabilmesi için aşağıdaki DLF izinlerini de içerir.
{ "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) erişim izinleri
EMR kümesi ACK üzerinde çalışıyorsa rol, aşağıdaki ACK izinlerini de içerir.
{ "Action": [ "cs:DescribeUserPermission", "cs:DescribeClusterDetail", "cs:DescribeClusterUserKubeconfig", "cs:GetClusters", "cs:GrantPermissions", "cs:RevokeK8sClusterKubeConfig" ], "Resource": "*", "Effect": "Allow" } -
Serverless Spark erişim izinleri
EMR kümesi bir Serverless Spark kümesiyse rol, aşağıdaki izinleri de içerir.
{ "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": "*" }Aşağıdaki OSS izinleri, SQL dosyalarının ve JAR paketlerinin yüklenmesine veya geçici sorgu sonuçlarının kaydedilmesine olanak tanır.
{ "Action": [ "oss:PutObject", "oss:GetObject", "oss:DeleteObject", "oss:DeleteObjectVersion" ], "Resource": [ "acs:oss:*:*:*/.dataworks/*", "acs:oss:*:*:*/.dlsdata/*" ], "Effect": "Allow" }, { "Action": "oss:PostDataLakeStorageFileOperation", "Resource": "*", "Effect": "Allow" }
-