EMR 3.32之后版本、EMR 4.5之后版本,以及EMR 5.x系列版本,將Metaservice服務替換為ECS應用角色,在EMR集群創建和擴容時自動分配給EMR集群中的每個ECS實例。在EMR集群之上運行的應用程序通過該角色來獲得與其他云服務交互的權限,實現以免AccessKey的方式訪問阿里云資源,避免了在配置文件中暴露AccessKey的風險。
前提條件
已授權該角色,詳情請參見阿里云賬號角色授權。
權限內容
默認角色AliyunECSInstanceForEMRRole包含系統權限策略為AliyunECSInstanceForEMRRolePolicy,OSS以及DLF相關權限內容如下。
名稱(Action) | 說明 |
oss:GetObject | 上傳文件或文件夾對象。 |
oss:ListObjects | 獲取文件或文件夾對象。 |
oss:PutObject | 查詢文件列表信息。 |
oss:DeleteObject | 刪除某個文件。 |
oss:ListBuckets | |
oss:AbortMultipartUpload | 終止MultipartUpload事件。 |
oss:ListMultipartUploads | 列舉所有執行中的Multipart Upload事件 |
oss:RestoreObject | 解凍歸檔類型(Archive)或冷歸檔(Cold Archive)的文件(Object) |
oss:GetBucketInfo | 查看存儲空間(Bucket)的相關信息 |
oss:ListObjectVersions | 用于列出Bucket中包括刪除標記(Delete Marker)在內的所有Object的版本信息。 |
oss:DeleteObjectVersion | 刪除指定版本Object。 |
oss:PostDataLakeStorageFileOperation | |
ots:CreateTable | 根據給定的表結構信息創建相應的數據表。 |
ots:DeleteTable | 刪除本實例下指定的表。 |
ots:GetRow | 根據指定的主鍵讀取單行數據。 |
ots:PutRow | 插入數據到指定的行。 |
ots:UpdateRow | 更新指定行的數據。 |
ots:DeleteRow | 刪除一行數據。 |
ots:GetRange | 讀取指定主鍵范圍內的數據。 |
ots:BatchWriteRow | 批量插入、修改或刪除一個或多個表中的若干行數據。 |
ots:BatchGetRow | 批量讀取一個表或多個表中的若干行數據。 |
ots:ComputeSplitPointsBySize | 將全表的數據在邏輯上劃分成接近指定大小的若干分片,返回這些分片之間的分割點以及分片所在機器的提示。 |
ots:StartLocalTransaction | 為分區鍵值創建一個局部事務,并獲取局部事務ID。 |
ots:CommitTransaction | 提交局部事務。 |
ots:AbortTransaction | 丟棄局部事務。 |
dlf:BatchCreatePartitions | 批量創建分區。 |
dlf:BatchCreateTables | 批量創建數據表。 |
dlf:BatchDeletePartitions | 批量刪除分區。 |
dlf:BatchDeleteTables | 批量刪除表。 |
dlf:BatchGetPartitions | 批量獲取分區列表。 |
dlf:BatchGetTables | 批量獲取數據表列表。 |
dlf:BatchUpdatePartitions | 批量更新分區信息。 |
dlf:BatchUpdateTables | 批量更新數據表。 |
dlf:CreateDatabase | 創建數據庫。 |
dlf:CreateFunction | 創建函數。 |
dlf:CreatePartition | 創建分區。 |
dlf:CreateTable | 創建數據表。 |
dlf:DeleteDatabase | 刪除數據庫。 |
dlf:DeleteFunction | 刪除函數。 |
dlf:DeletePartition | 刪除分區。 |
dlf:DeleteTable | 刪除數據表。 |
dlf:GetDatabase | 獲取數據庫。 |
dlf:GetFunction | 獲取函數。 |
dlf:GetPartition | 獲取分區。 |
dlf:GetTable | 獲取數據表。 |
dlf:ListCatalogs | 獲取數據目錄列表。 |
dlf:ListDatabases | 獲取數據庫列表。 |
dlf:ListFunctionNames | 獲取函數名稱列表。 |
dlf:ListFunctions | 獲取函數列表。 |
dlf:ListPartitionNames | 獲取分區名稱列表。 |
dlf:ListPartitions | 獲取分區列表。 |
dlf:ListPartitionsByExpr | 按條件獲取元數據表分區列表。 |
dlf:ListPartitionsByFilter | 按條件獲取元數據表分區列表。 |
dlf:ListTableNames | 獲取數據表名稱列表。 |
dlf:ListTables | 獲取數據表列表。 |
dlf:RenamePartition | 修改分區名稱。 |
dlf:RenameTable | 修改數據表名稱。 |
dlf:UpdateDatabase | 更新數據庫信息。 |
dlf:UpdateFunction | 更新函數信息。 |
dlf:UpdateTable | 更新數據表信息。 |
dlf:UpdateTableColumnStatistics | 更新元數據表統計信息。 |
dlf:GetTableColumnStatistics | 獲取元數據表統計信息。 |
dlf:DeleteTableColumnStatistics | 刪除元數據表統計信息。 |
dlf:UpdatePartitionColumnStatistics | 更新分區統計信息。 |
dlf:GetPartitionColumnStatistics | 獲取分區統計信息 |
dlf:DeletePartitionColumnStatistics | 刪除分區統計信息。 |
dlf:BatchGetPartitionColumnStatistics | 批量獲取表分區統計信息。 |
dlf:CreateLock | 創建元數據鎖。 |
dlf:UnLock | 解鎖指定的元數據鎖。 |
dlf:AbortLock | 終止元數據鎖。 |
dlf:RefreshLock | 刷新元數據鎖。 |
dlf:GetLock | 獲取元數據鎖。 |
dlf:GetAsyncTaskStatus | 獲取異步任務狀態。 |
dlf:DeltaGetPermissions | |
dlf:GetPermissions | 獲取數據權限信息。 |
dlf:GetServiceInfo | |
dlf:GetRoles | 獲取數據權限中角色信息。 |
dlf:CheckPermissions | 數據權限校驗。 |
請謹慎編輯和刪除默認角色AliyunECSInstanceForEMRRole,否則會造成集群創建失敗或作業運行失敗。
使用ECS應用角色獲取臨時憑證
基于STS臨時憑證可以獲取本賬號下其他云資源的訪問權限,詳情請參見使用實例RAM角色訪問其他云資源。