Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengotorisasi akses ke data EMRFS di Amazon S3
Secara default, peran EMR dalam EC2 menentukan izin untuk mengakses data EMRFS di Amazon S3. Kebijakan IAM yang dilampirkan ke peran ini berlaku terlepas dari pengguna atau grup yang membuat permintaan melalui EMRFS. Default adalah EMR_EC2_DefaultRole
. Untuk informasi selengkapnya, lihat Peran layanan untuk instans EC2 cluster (profil instans EC2).
Mulai dari rilis Amazon EMR versi 5.10.0, Anda dapat menggunakan konfigurasi keamanan untuk menentukan IAM role untuk EMRFS. Ini memungkinkan Anda dalam menyesuaikan izin permintaan EMRFS ke Amazon S3 untuk klaster yang memiliki banyak pengguna. Anda dapat menentukan IAM role yang berbeda untuk pengguna dan grup yang berbeda, dan untuk lokasi bucket Amazon S3 yang berbeda berdasarkan prefiks di Amazon S3. Saat EMRFS membuat permintaan ke Amazon S3 yang cocok dengan pengguna, grup, atau lokasi yang Anda tentukan, klaster akan menggunakan peran terkait yang Anda tentukan, bukan peran EMR untuk EC2. Untuk informasi selengkapnya, lihat Mengonfigurasi peran IAM untuk permintaan EMRFS ke Amazon S3.
Atau, jika solusi Amazon EMR Anda memiliki tuntutan di luar apa yang disediakan oleh IAM role untuk EMRFS, Anda dapat menentukan kelas penyedia kredensial khusus, yang memungkinkan Anda untuk menyesuaikan akses terhadap data EMRFS di Amazon S3.
Membuat penyedia kredensial khusus untuk data EMRFS di Amazon S3
Untuk membuat penyedia kredensial kustom, Anda menerapkan kelas AWSCredentialsProviderdan Hadoop Configurable.
Untuk penjelasan terperinci tentang pendekatan ini, lihat Menganalisis data dengan aman dari akun AWS lain menggunakan EMRFS
Langkah-langkah dasarnya adalah sebagai berikut:
Untuk menentukan penyedia kredensial khusus
Buat kelas penyedia kredensial khusus yang dikompilasi sebagai file JAR.
Jalankan skrip sebagai tindakan bootstrap untuk menyalin file JAR penyedia kredensial khusus ke lokasi
/usr/share/aws/emr/emrfs/auxlib
di simpul utama klaster. Untuk informasi selengkapnya tentang tindakan bootstrap, lihat (Opsional) Membuat tindakan bootstrap untuk menginstal perangkat lunak tambahan.-
Sesuaikan klasifikasi
emrfs-site
untuk menentukan kelas yang Anda terapkan dalam file JAR. Untuk informasi selengkapnya tentang menentukan objek konfigurasi untuk menyesuaikan aplikasi, lihat Mengkonfigurasi aplikasi di Panduan Rilis Amazon EMR.Contoh berikut menunjukkan perintah
create-cluster
yang meluncurkan klaster Hive menggunakan parameter konfigurasi umum, dan juga mencakup:Tindakan bootstrap yang menjalankan skrip,
, yang mana disimpan kecopy_jar_file.sh
dalam Amazon S3.mybucket
Klasifikasi
emrfs-site
yang menentukan penyedia kredensial khusus yang ditentukan dalam file JAR sebagaiMyCustomCredentialsProvider
catatan
Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca. Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda pangkat (^).
aws emr create-cluster --applications Name=Hive \ --bootstrap-actions '[{"Path":"
s3://mybucket/copy_jar_file.sh
","Name":"Custom action"}]' \ --ec2-attributes '{"KeyName":"MyKeyPair
","InstanceProfile":"EMR_EC2_DefaultRole",\ "SubnetId":"subnet-xxxxxxxx","EmrManagedSlaveSecurityGroup":"sg-xxxxxxxx",\ "EmrManagedMasterSecurityGroup":"sg-xxxxxxxx"}' \ --service-role EMR_DefaultRole_V2 --enable-debugging --release-labelemr-7.0.0
\ --log-uri 's3n://my-emr-log-bucket
/' --name 'test-awscredentialsprovider-emrfs' \ --instance-type=m5.xlarge --instance-count 3 \ --configurations '[{"Classification":"emrfs-site",\ "Properties":{"fs.s3.customAWSCredentialsProvider":"MyAWSCredentialsProviderWithUri"},\ "Configurations":[]}]'