Dengan menyambungkan peran aplikasi ECS kustom ke kluster EMR, node-node kluster tersebut dapat mengakses sumber daya cloud lainnya — seperti Object Storage Service (OSS) dan Simple Log Service (SLS) — di Akun Alibaba Cloud Anda tanpa menyimpan kredensial. Kebijakan yang ditautkan pada peran tersebut secara tepat menentukan sumber daya dan operasi yang dapat diakses oleh kluster, sehingga memberikan kontrol detail halus.
Jika Anda membuat kluster yang menjalankan EMR V5.x atau versi lebih baru, versi minor yang lebih baru dari EMR V4.5, atau versi minor yang lebih baru dari EMR V3.32, pembaruan kebijakan kepercayaan pada Langkah 2 tidak diperlukan. Untuk versi sebelumnya, Anda harus mengubah layanan tepercaya dari ECS ke EMR — lihat Langkah 2, sub-langkah 4.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Membuat kluster — lihat Buat kluster
Menetapkan role pada Akun Alibaba Cloud Anda — lihat Tetapkan role ke Akun Alibaba Cloud
Membuat bucket OSS di wilayah yang sama dengan rencana pembuatan kluster EMR — lihat Buat bucket
Ikhtisar
Pengaturan ini mencakup tiga langkah:
Buat kebijakan — tentukan sumber daya yang dapat diakses oleh kluster dan operasi yang dapat dilakukannya.
Buat RAM role — buat role yang dapat diasumsikan oleh ECS dan tautkan kebijakan dari langkah 1.
Buat kluster dan verifikasi akses — tautkan RAM role saat membuat kluster, lalu konfirmasi bahwa akses berfungsi.
Langkah 1: Buat kebijakan
Login ke Konsol RAM menggunakan Akun Alibaba Cloud Anda.
Di panel navigasi kiri, pilih Permissions > Policies, lalu klik Create Policy.
Pada halaman Create Policy, klik tab JSON dan masukkan isi kebijakan di editor. Contoh berikut memberikan akses read-only ke bucket OSS tertentu:
{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:ListObjects" ], "Resource": [ "acs:oss:*:*:examplebucket", "acs:oss:*:*:examplebucket/*" ], "Effect": "Allow" } ] }Ganti
examplebucketdengan nama bucket OSS Anda yang sebenarnya. BidangResourcememerlukan dua entri: satu untuk bucket itu sendiri (examplebucket) dan satu untuk semua objek di dalamnya (examplebucket/*). BidangActionmemberikan akses read-only —oss:GetObjectuntuk mengunduh objek danoss:ListObjectsuntuk menampilkannya. Untuk detail tentang sintaksis kebijakan dan aksi yang tersedia, lihat Elemen kebijakan.Klik OK, lalu isi bidang Name di bagian Basic information. Pada contoh ini, namanya adalah
test-emr.Klik OK.
Langkah 2: Buat RAM role
Di panel navigasi kiri Konsol RAM, pilih Identities > Roles, lalu klik Create Role.
Pada langkah Select Role Type, atur Select Trusted Entity menjadi Alibaba Cloud Service dan klik Next.
Pada langkah Configure Role, atur parameter berikut: Klik OK.
Parameter Nilai RAM Role Name Masukkan nama untuk role tersebut. Pada contoh ini: test-emrSelect Trusted Service Pilih Elastic Compute Service (Opsional) Perbarui kebijakan kepercayaan. Untuk versi sebelumnya, layanan tepercaya harus diubah dari ECS ke EMR. Tanpa perubahan ini, pembuatan kluster akan gagal dengan error NoPermission.
PentingLewati langkah ini jika Anda membuat kluster yang menjalankan EMR V5.x atau versi lebih baru, versi minor yang lebih baru dari EMR V4.5, atau versi minor yang lebih baru dari EMR V3.32. Versi-versi tersebut tidak memerlukan perubahan ini.
Pada halaman Roles, klik nama RAM role yang telah Anda buat.
Klik tab Trust Policy, lalu klik Edit Trust Policy.
Ubah
ecs.aliyuncs.commenjadiemr.aliyuncs.com.
Klik Save trust policy document.
Berikan izin yang diperlukan kepada role tersebut:
Pada halaman Roles, temukan role yang telah Anda buat dan klik Grant Permission di kolom Actions.
Di panel Grant Permission, pilih Custom Policy dari daftar drop-down di bagian Policy, lalu pilih kebijakan yang telah Anda buat di Langkah 1.
Klik Grant permissions, lalu klik Close.
Langkah 3: Buat kluster dan verifikasi akses
Login ke Konsol EMR. Di panel navigasi kiri, klik EMR on ECS.
Di bilah navigasi atas, pilih wilayah tempat kluster Anda akan berada dan pilih kelompok sumber daya.
Klik Create Cluster. Di bagian Advanced Settings pada langkah Basic Configuration, masukkan nama RAM role yang telah Anda buat di Langkah 2. Untuk opsi konfigurasi kluster lainnya, lihat Buat kluster.

Setelah kluster dibuat, login ke kluster menggunakan SSH. Lihat Login ke kluster.
Jalankan perintah berikut untuk memverifikasi bahwa kluster dapat mengakses bucket OSS yang ditentukan dalam kebijakan:
hdfs dfs -ls oss://<yourBucketName>/Ganti
<yourBucketName>dengan nama bucket OSS Anda yang sebenarnya.Jika isi bucket ditampilkan, akses berfungsi dengan benar.
Jika akses ditolak, kluster tidak memiliki izin untuk mengakses bucket tersebut — lihat FAQ di bawah ini.
FAQ
Mengapa muncul error NoPermission saat saya membuat kluster?
Periksa hal berikut secara berurutan:
RAM user yang membuat kluster harus memiliki
AliyunEMRFullAccess. Jika pengguna memilikiAliyunEMRDevelopAccess, ubah menjadiAliyunEMRFullAccess.Periksa apakah nama peran aplikasi ECS yang Anda tentukan valid dan sesuai dengan RAM role yang telah Anda buat.
Jika Anda menggunakan versi EMR yang memerlukan pembaruan kebijakan kepercayaan (lebih lama dari EMR V5.x, EMR V4.5, atau EMR V3.32), pastikan bahwa
ecs.aliyuncs.comtelah diubah menjadiemr.aliyuncs.comdalam kebijakan kepercayaan.
Mengapa saya tidak dapat mengakses bucket OSS dari Hadoop Distributed File System (HDFS)?
Periksa hal berikut secara berurutan:
Bucket OSS harus berada di wilayah yang sama dengan kluster EMR. Jika berada di wilayah berbeda, tambahkan titik akhir bucket tersebut ke string koneksi.
Bucket tersebut harus tercantum sebagai resource dalam kebijakan. Jika tidak, perbarui bidang
Resourcedalam kebijakan agar mencakup bucket tersebut.Jika izin tingkat bucket dikonfigurasi langsung di Konsol OSS, pengaturan tersebut mungkin bertentangan dengan kebijakan. Hapus izin di Konsol OSS dan kelola akses secara eksklusif melalui bidang
Actiondalam kebijakan RAM.