EMR(E-MapReduce)V3.32.0 より後のマイナーバージョン、または EMR V4.5.0 以降および EMR 5.x シリーズでは、MetaService の代わりに Elastic Compute Service (ECS) アプリケーションロール AliyunECSInstanceForEMRRole が使用されます。EMR は、クラスターの作成時またはスケールアウト時に、このロールをクラスター内のすべての ECS インスタンスに自動的に割り当てます。クラスター上で実行されるアプリケーションは、ランタイム時にこのロールを偽装して他の Alibaba Cloud サービスにアクセスします。AccessKey ペアは不要であり、構成ファイル内に保存することもありません。
AliyunECSInstanceForEMRRole を変更または削除する場合は、十分に注意してください。そうしないと、クラスターの作成に失敗したり、ジョブの実行に失敗したりする可能性があります。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
-
ロールの権限付与が完了していること。詳細については、「Alibaba Cloud アカウントへのロールの割り当て」をご参照ください。
権限
AliyunECSInstanceForEMRRole には、ポリシー AliyunECSInstanceForEMRRolePolicy がアタッチされています。このポリシーは、Object Storage Service (OSS)、Tablestore、Data Lake Formation (DLF) の 3 つのサービスに対する権限を付与します。
OSS 権限
EMR クラスターは、このロールを使用して OSS に対してデータの読み取りおよび書き込みを行います。以下の権限は、標準的なオブジェクト操作、マルチパートアップロード、バージョン管理、および OSS-HDFS アクセスをカバーしています。
| 権限(操作) | 説明 |
|---|---|
| oss:PutObject | ファイルまたはフォルダをアップロードします。 |
| oss:GetObject | ファイルまたはフォルダを照会します。 |
| oss:ListObjects | ファイルの一覧を表示します。 |
| oss:DeleteObject | ファイルを削除します。 |
| oss:ListBuckets | バケットの一覧を表示します。 |
| oss:AbortMultipartUpload | マルチパートアップロードを中止します。 |
| oss:ListMultipartUploads | 進行中のすべてのマルチパートアップロードを一覧表示します。 |
| oss:RestoreObject | アーカイブまたはコールドアーカイブストレージのオブジェクトを復元します。 |
| oss:GetBucketInfo | バケット情報を照会します。 |
| oss:ListObjectVersions | 削除マーカーを含む、バケット内のすべてのオブジェクトバージョンを一覧表示します。 |
| oss:DeleteObjectVersion | 特定のオブジェクトバージョンを削除します。 |
| oss:PostDataLakeStorageFileOperation | OSS-HDFS にアクセスします。 |
Tablestore 権限
EMR は、これらの権限を使用して Tablestore 内の構造化データの読み取りおよび書き込みを行います。これには、行単位の操作、範囲照会、バッチアクセス、およびローカルトランザクションが含まれます。
| 権限(操作) | 説明 |
|---|---|
| ots:CreateTable | 指定されたテーブルスキーマに基づいてテーブルを作成します。 |
| ots:DeleteTable | 現在のインスタンスからテーブルを削除します。 |
| ots:GetRow | プライマリキーで単一行を読み取ります。 |
| ots:PutRow | 特定の行にデータを挿入します。 |
| ots:UpdateRow | 特定の行のデータを更新します。 |
| ots:DeleteRow | 1 行のデータを削除します。 |
| ots:GetRange | プライマリキーの値の範囲内にあるデータを読み取ります。 |
| ots:BatchWriteRow | 1 つまたは複数のテーブルに対して、複数行の挿入、変更、または削除を一度に行います。 |
| ots:BatchGetRow | 1 つまたは複数のテーブルから、複数行を一度に読み取ります。 |
| ots:ComputeSplitPointsBySize | テーブルデータを指定サイズに近いシャードに分割し、分割ポイントとパーティションホスト情報を返します。 |
| ots:StartLocalTransaction | パーティションキーの値に基づいてローカルトランザクションを作成し、トランザクション ID を返します。 |
| ots:CommitTransaction | ローカルトランザクションをコミットします。 |
| ots:AbortTransaction | ローカルトランザクションを中止します。 |
DLF 権限
EMR は、これらの権限を使用して Data Lake Formation 内のメタデータ(データベース、テーブル、パーティション、関数、カタログ、ロック、統計情報、およびデータ権限など)を管理します。
| 権限(操作) | 説明 |
|---|---|
| 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 | データ権限を検証します。 |
STS 一時認証情報の取得
このロールを通じて取得したセキュリティトークンサービス(STS)の一時認証情報を使用すると、ご利用のアカウント内で他の Alibaba Cloud サービスにアクセスできます。詳細については、「ECS インスタンスの RAM ロール」をご参照ください。