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 | 列舉所有儲存空間(Bucket)。 |
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 | OSS-HDFS存取權限。 |
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角色訪問其他雲資源。