すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:EMR V3.32 以前および EMR V4.5 以前における ECS アプリケーションロール

最終更新日:Mar 27, 2026

E-MapReduce (EMR) では、作成するすべてのクラスターに対して、MetaService と呼ばれる ECS アプリケーションロールが自動的にバインドされます。クラスター上で実行されるジョブおよびアプリケーションは、このロールを利用して Alibaba Cloud リソースにアクセスします。構成ファイルやコード内に AccessKey ペアを記述する必要はなく、認証情報の不正公開リスクを完全に排除できます。

MetaService は、AccessKey ペアを用いずに以下のサービスへのアクセスをサポートします。

サービス デフォルトで有効
Object Storage Service (OSS) はい
Log Service いいえ — 追加の RAM 権限が必要
Message Service (MNS) いいえ — 追加の RAM 権限が必要

Log Service または MNS へのアクセスを有効化するには、RAM コンソールAliyunEmrEcsDefaultRole ロールに必要な権限を付与してください。詳細については、「RAM ロールへの権限付与」をご参照ください。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

MetaService の仕組み

ジョブまたはアプリケーションが対応する Alibaba Cloud サービスを呼び出すと、MetaService はバックグラウンドでセキュリティトークンサービス (STS) の一時的な認証情報を提供します。コードや構成ファイル内に AccessKey ペアを記述する必要はありません。

STS 認証情報のローテーション: 現在の STS 認証情報の有効期限が切れる 30 分前に、新しい一時的認証情報が生成されます。この 30 分間の重複ウィンドウ期間中は、両方の認証情報が有効です。

デフォルトの権限

AliyunEmrEcsDefaultRole ロールには、AliyunEmrECSRolePolicy ポリシーが設定されており、以下の権限が付与されています。

OSS の権限

権限(操作) 説明
oss:PutObject ファイルまたはフォルダをアップロードします。
oss:GetObject ファイルまたはフォルダを照会します。
oss:ListObjects ファイルを照会します。
oss:DeleteObject ファイルを削除します。
oss:ListBuckets バケットを照会します。
oss:AbortMultipartUpload マルチパートアップロードイベントを中止します。
oss:ListMultipartUploads 進行中のすべてのマルチパートアップロードイベントを照会します。
oss:RestoreObject Archive または コールドアーカイブオブジェクトを復元します。
oss:GetBucketInfo バケットに関する情報を照会します。
oss:ListObjectVersions バケット内のすべてのオブジェクトのバージョン(削除マーカーを含む)を照会します。
oss:DeleteObjectVersion 特定のオブジェクトの特定のバージョンを削除します。
oss:PostDataLakeStorageFileOperation OSS-HDFS にアクセスします。

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 ローカルトランザクションを中止します。

Data Lake Formation (DLF) の権限

権限(操作) 説明
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 データ権限を検証します。

MetaService の利用方法

ワークロードに合ったアプローチを選択してください。

シナリオ アプローチ 得られるもの
クラスター上で実行されるジョブ(Hadoop、Hive、Spark) 簡易 OSS パスの利用 パス内に認証情報を含めずに OSS にアクセス可能
自己管理型サービスまたはカスタムアプリケーション MetaService の HTTP API を呼び出し OSS、Log Service、MNS 用の STS 一時的認証情報

クラスター上のジョブから OSS にアクセス

MetaService が有効な場合、任意のクラスター上のジョブで簡易パス形式を使用します。

oss://<bucket-name>/<object-path>

MetaService が認証を自動的に処理します。パス内に認証情報を埋め込む必要はありません。また、OSS リソースとの連携体験も向上し、入力する OSS パスが大幅に短縮されます。

Hadoop — オブジェクトの一覧表示:

# MetaService を使用しない場合(パス内に認証情報が埋め込まれている)
hadoop fs -ls oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c

# MetaService を使用した場合(簡易パス)
hadoop fs -ls oss://bucket/a/b/c

Hive — OSS をバックエンドとする外部テーブルの作成:

-- MetaService を使用しない場合(パス内に認証情報が埋め込まれている)
CREATE EXTERNAL TABLE test_table(id INT, name string)
        ROW FORMAT DELIMITED
        FIELDS TERMINATED BY '/t'
        LOCATION 'oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c';

-- MetaService を使用した場合(簡易パス)
CREATE EXTERNAL TABLE test_table(id INT, name string)
        ROW FORMAT DELIMITED
        FIELDS TERMINATED BY '/t'
        LOCATION 'oss://bucket/a/b/c';

Spark — OSS データの読み込み:

// MetaService を使用しない場合(パス内に認証情報が埋め込まれている)
val data = sc.textFile("oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c")

// MetaService を使用した場合(簡易パス)
val data = sc.textFile("oss://bucket/a/b/c")

自己管理型サービスから STS 認証情報の取得

MetaService は、各クラスターノードの http://localhost:10011 で HTTP API を提供しています。これらのエンドポイントを呼び出すことで、AccessKey ペアを用いずに Alibaba Cloud リソースにアクセスするための STS 一時的認証情報をアプリケーションが取得できます。

例 — クラスターのリージョンを取得:

curl http://localhost:10011/cluster-region

利用可能なエンドポイント:

エンドポイント 返却内容
/cluster-region クラスターが配置されているリージョン
/cluster-role-name ロール名
/role-access-key-id STS 認証情報の AccessKey ID
/role-access-key-secret STS 認証情報の AccessKey Secret
/role-security-token STS 認証情報のセキュリティトークン
/cluster-network-type ネットワークタイプ

注意事項

重要

AliyunEmrEcsDefaultRole ロールの変更または削除は、慎重に行ってください。このロールを誤って削除または誤設定すると、クラスターの作成失敗やジョブの失敗が発生します。セキュリティリスクを最小限に抑えるため、RAM コンソールで権限を設定する際は、最小権限の原則に従ってください。