Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Hibah Akses Amazon S3 dengan Amazon EMR
Ikhtisar S3 Access Grants untuk Amazon EMR
Dengan rilis Amazon EMR 6.15.0 dan yang lebih tinggi, Amazon S3 Access Grants menyediakan solusi kontrol akses yang dapat diskalakan yang dapat Anda gunakan untuk menambah akses ke data Amazon S3 Anda dari Amazon EMR. Jika Anda memiliki konfigurasi izin yang kompleks atau besar untuk data S3 Anda, Anda dapat menggunakan Access Grants untuk menskalakan izin data S3 untuk pengguna, peran, dan aplikasi di cluster Anda.
Gunakan S3 Access Grants untuk menambah akses ke data Amazon S3 di luar izin yang diberikan oleh peran runtime atau peran IAM yang dilampirkan ke identitas dengan akses ke cluster EMR Anda. Untuk informasi selengkapnya, lihat M engelola akses dengan S3 Access Grants di Panduan Pengguna Amazon S3.
Untuk langkah-langkah menggunakan S3 Access Grants dengan penerapan Amazon EMR lainnya, lihat dokumentasi berikut:
Cara kerja Amazon EMR dengan S3 Access Grants
Amazon EMR rilis 6.15.0 dan yang lebih tinggi menyediakan integrasi asli dengan S3 Access Grants. Anda dapat mengaktifkan S3 Access Grants di Amazon EMR dan menjalankan tugas Spark. Saat pekerjaan Spark membuat permintaan untuk data S3, Amazon S3 menyediakan kredentif sementara yang dicakup ke bucket, awalan, atau objek tertentu.
Berikut ini adalah ikhtisar tingkat tinggi tentang bagaimana Amazon EMR mendapatkan akses ke data yang dilindungi oleh S3 Access Grants.
-
Pengguna mengirimkan pekerjaan Amazon EMR Spark yang menggunakan data yang disimpan di Amazon S3.
-
Amazon EMR membuat permintaan S3 Access Grants untuk mengizinkan akses ke bucket, awalan, atau objek atas nama pengguna tersebut.
-
Amazon S3 mengembalikan kredenSIAL sementara dalam bentuk token AWS Security Token Service (STS) untuk pengguna. Token dicakup untuk mengakses bucket, awalan, atau objek S3.
-
Amazon EMR menggunakan token STS untuk mengambil data dari S3.
-
Amazon EMR menerima data dari S3 dan mengembalikan hasilnya kepada pengguna.
Pertimbangan S3 Access Grants dengan Amazon EMR
Perhatikan perilaku dan batasan berikut saat Anda menggunakan S3 Access Grants dengan Amazon EMR.
Dukungan fitur
-
S3 Access Grants didukung dengan rilis Amazon EMR 6.15.0 dan yang lebih tinggi.
-
Spark adalah satu-satunya mesin kueri yang didukung saat Anda menggunakan S3 Access Grants dengan Amazon EMR.
-
Delta Lake dan Hudi adalah satu-satunya format tabel terbuka yang didukung saat Anda menggunakan S3 Access Grants dengan Amazon EMR.
-
Kemampuan Amazon EMR berikut tidak didukung untuk digunakan dengan S3 Access Grants:
-
Meja Apache Iceberg
-
Otentikasi asli LDAP
-
Otentikasi asli Apache Ranger
-
AWS CLI permintaan ke Amazon S3 yang menggunakan peran IAM
-
Akses S3 melalui protokol open-source S3A
-
-
fallbackToIAMOpsi ini tidak didukung untuk cluster EMR yang menggunakan propagasi identitas tepercaya dengan Pusat Identitas IAM. -
S3 Access Grants with hanya AWS Lake Formation didukung dengan cluster Amazon EMR yang berjalan di Amazon EC2.
Pertimbangan perilaku
-
Integrasi asli Apache Ranger dengan Amazon EMR memiliki fungsionalitas yang sesuai dengan S3 Access Grants sebagai bagian dari plugin EMRFS S3 Apache Ranger. Jika Anda menggunakan Apache Ranger untuk kontrol akses halus (FGAC), sebaiknya gunakan plugin itu alih-alih S3 Access Grants.
-
Amazon EMR menyediakan cache kredenSIAL di EMRFS untuk memastikan bahwa pengguna tidak perlu membuat permintaan berulang untuk kredenSIAL yang sama dalam pekerjaan Spark. Oleh karena itu, Amazon EMR selalu meminta hak istimewa tingkat default ketika meminta kredenSIAL. Untuk informasi selengkapnya, lihat Meminta akses ke data S3 di Panduan Pengguna Amazon S3.
-
Jika pengguna melakukan tindakan yang tidak didukung S3 Access Grants, Amazon EMR diatur untuk menggunakan peran IAM yang ditentukan untuk eksekusi pekerjaan. Untuk informasi selengkapnya, lihat Kembali ke peran IAM.
Luncurkan klaster Amazon EMR dengan S3 Access Grants
Bagian ini menjelaskan cara meluncurkan cluster EMR yang berjalan di Amazon EC2, dan menggunakan S3 Access Grants untuk mengelola akses ke data di Amazon S3. Untuk langkah-langkah menggunakan S3 Access Grants dengan penerapan Amazon EMR lainnya, lihat dokumentasi berikut:
Gunakan langkah-langkah berikut untuk meluncurkan cluster EMR yang berjalan di Amazon EC2, dan menggunakan S3 Access Grants untuk mengelola akses ke data di Amazon S3.
-
Siapkan peran eksekusi pekerjaan untuk cluster EMR Anda. Sertakan izin IAM yang diperlukan yang Anda perlukan untuk menjalankan tugas Spark,
s3:GetDataAccessdan:s3:GetAccessGrantsInstanceForPrefix{ "Effect": "Allow", "Action": [ "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": [ //LIST ALL INSTANCE ARNS THAT THE ROLE IS ALLOWED TO QUERY "arn:aws_partition:s3:Region:account-id1:access-grants/default", "arn:aws_partition:s3:Region:account-id2:access-grants/default" ] }catatan
Dengan Amazon EMR, S3 Access Grants menambah izin yang ditetapkan dalam peran IAM. Jika peran IAM yang Anda tentukan untuk eksekusi pekerjaan berisi izin untuk mengakses S3 secara langsung, maka pengguna mungkin dapat mengakses lebih banyak data daripada hanya data yang Anda tentukan di S3 Access Grants.
-
Selanjutnya, gunakan AWS CLI untuk membuat cluster dengan Amazon EMR 6.15 atau lebih tinggi dan
emrfs-siteklasifikasi untuk mengaktifkan S3 Access Grants, mirip dengan contoh berikut:aws emr create-cluster --release-label emr-6.15.0 \ --instance-count 3 \ --instance-type m5.xlarge \ --configurations '[{"Classification":"emrfs-site", "Properties":{"fs.s3.s3AccessGrants.enabled":"true", "fs.s3.s3AccessGrants.fallbackToIAM":"false"}}]'
Hibah Akses S3 dengan AWS Lake Formation
Jika Anda menggunakan Amazon EMR dengan AWS Lake Formation integrasi, Anda dapat menggunakan Amazon S3 Access Grants untuk akses langsung atau tabular ke data di Amazon S3.
catatan
S3 Access Grants with hanya AWS Lake Formation didukung dengan cluster Amazon EMR yang berjalan di Amazon EC2.
- Akses langsung
-
Akses langsung melibatkan semua panggilan untuk mengakses data S3 yang tidak memanggil API untuk layanan AWS Glue yang digunakan Lake Formation sebagai metastore dengan Amazon EMR, misalnya, untuk memanggil:
spark.readspark.read.csv("s3://...")Saat Anda menggunakan S3 Access Grants dengan AWS Lake Formation Amazon EMR, semua pola akses langsung akan melalui S3 Access Grants untuk mendapatkan kredenSIAL S3 sementara.
- Akses tabular
-
Akses tabular terjadi ketika Lake Formation memanggil API metastore untuk mengakses lokasi S3 Anda, misalnya, untuk menanyakan data tabel:
spark.sql("select * from test_tbl")Saat Anda menggunakan S3 Access Grants dengan AWS Lake Formation Amazon EMR, semua pola akses tabular melewati Formasi Danau.
Kembali ke peran IAM
Jika pengguna mencoba melakukan tindakan yang tidak didukung S3 Access Grants, Amazon EMR secara default akan menggunakan peran IAM yang ditentukan untuk eksekusi pekerjaan saat konfigurasi dilakukan. fallbackToIAM true Hal ini memungkinkan pengguna untuk kembali menggunakan peran eksekusi pekerjaan mereka untuk memberikan kredenSIAL untuk akses S3 dalam skenario yang tidak dicakup oleh S3 Access Grants.
Dengan fallbackToIAM diaktifkan, pengguna dapat mengakses data yang diizinkan oleh Access Grant. Jika tidak ada token S3 Access Grants untuk data target, Amazon EMR akan memeriksa izin pada peran eksekusi pekerjaan mereka.
catatan
Sebaiknya Anda menguji izin akses dengan fallbackToIAM konfigurasi diaktifkan meskipun Anda berencana untuk menonaktifkan opsi untuk beban kerja produksi. Dengan pekerjaan Spark, ada cara lain agar pengguna dapat mengakses semua kumpulan izin dengan kredentif IAM mereka. Saat diaktifkan pada cluster EMR, hibah dari S3 memberi pekerjaan Spark akses ke lokasi S3. Anda harus memastikan bahwa Anda melindungi lokasi S3 ini dari akses di luar EMRFS. Misalnya, Anda harus melindungi lokasi S3 dari akses oleh klien S3 yang digunakan di buku catatan, atau oleh aplikasi yang tidak didukung oleh S3 Access Grants seperti Hive atau Presto.