Menggunakan Hibah Akses Amazon S3 dengan Amazon EMR - Amazon EMR

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 Hibah Akses S3 untuk Amazon EMR

Dengan Amazon EMR rilis 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 dapat menggunakan Access Grants untuk menskalakan izin data S3 untuk pengguna, peran, dan aplikasi di klaster 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 Mengelola akses dengan Hibah Akses S3 di Panduan Pengguna Amazon S3.

Untuk langkah-langkah menggunakan Hibah Akses S3 dengan penerapan EMR Amazon lainnya, lihat dokumentasi berikut:

Bagaimana Amazon EMR bekerja dengan S3 Access Grants

Amazon EMR merilis 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 pekerjaan Spark. Saat pekerjaan Spark membuat permintaan untuk data S3, Amazon S3 memberikan kredensyal 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.

Bagaimana Amazon EMR bekerja dengan S3 Access Grants
  1. Seorang pengguna mengirimkan pekerjaan Amazon EMR Spark yang menggunakan data yang disimpan di Amazon S3.

  2. Amazon EMR membuat permintaan S3 Access Grants untuk mengizinkan akses ke bucket, awalan, atau objek atas nama pengguna tersebut.

  3. Amazon S3 mengembalikan kredensyal sementara dalam bentuk token AWS Security Token Service (STS) untuk pengguna. Token dicakup untuk mengakses bucket, awalan, atau objek S3.

  4. Amazon EMR menggunakan token STS untuk mengambil data dari S3.

  5. Amazon EMR menerima data dari S3 dan mengembalikan hasilnya kepada pengguna.

Akses S3 Memberikan pertimbangan dengan Amazon EMR

Perhatikan perilaku dan batasan berikut saat Anda menggunakan S3 Access Grants dengan Amazon EMR.

Dukungan fitur

  • S3 Access Grants didukung dengan Amazon EMR rilis 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 meja terbuka yang didukung saat Anda menggunakan Hibah Akses S3 dengan Amazon EMR.

  • Kemampuan EMR Amazon berikut tidak didukung untuk digunakan dengan Hibah Akses S3:

    • Tabel Apache Iceberg

    • Otentikasi asli LDAP

    • Autentikasi asli Apache Ranger

    • AWS CLIpermintaan ke Amazon S3 yang menggunakan peran IAM

    • Akses S3 melalui protokol sumber terbuka S3A

  • fallbackToIAMOpsi ini tidak didukung untuk kluster EMR yang menggunakan propagasi identitas tepercaya dengan IAM Identity Center.

  • Hibah Akses S3 dengan hanya AWS Lake Formation didukung dengan kluster EMR Amazon yang berjalan di Amazon EC2.

Pertimbangan perilaku

  • Integrasi asli Apache Ranger dengan Amazon EMR memiliki fungsionalitas yang kongruen dengan S3 Access Grants sebagai bagian dari plugin EMRFS S3 Apache Ranger. Jika Anda menggunakan Apache Ranger untuk kontrol akses halus (FGAC), kami sarankan Anda menggunakan plugin itu alih-alih S3 Access Grants.

  • Amazon EMR menyediakan cache kredensyal di EMRFS untuk memastikan bahwa pengguna tidak perlu membuat permintaan berulang untuk kredensyal yang sama dalam pekerjaan Spark. Oleh karena itu, Amazon EMR selalu meminta hak istimewa tingkat default saat meminta kredensyal. Untuk informasi selengkapnya, lihat Meminta akses ke data S3 di Panduan Pengguna Amazon S3.

  • Jika pengguna melakukan tindakan yang tidak didukung oleh S3 Access Grants, Amazon EMR disetel untuk menggunakan peran IAM yang ditentukan untuk eksekusi pekerjaan. Untuk informasi selengkapnya, lihat Kembali ke peran IAM.

Luncurkan klaster EMR Amazon dengan Hibah Akses S3

Bagian ini menjelaskan cara meluncurkan klaster EMR yang berjalan di Amazon EC2, dan menggunakan Hibah Akses S3 untuk mengelola akses ke data di Amazon S3. Untuk langkah-langkah menggunakan Hibah Akses S3 dengan penerapan EMR Amazon lainnya, lihat dokumentasi berikut:

Gunakan langkah-langkah berikut untuk meluncurkan klaster EMR yang berjalan di Amazon EC2, dan menggunakan S3 Access Grants untuk mengelola akses ke data di Amazon S3.

  1. Siapkan peran eksekusi pekerjaan untuk klaster EMR Anda. Sertakan izin IAM yang diperlukan yang Anda perlukan untuk menjalankan pekerjaan Spark, dan: s3:GetDataAccess 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.

  2. Selanjutnya, gunakan AWS CLI untuk membuat klaster dengan Amazon EMR 6.15 atau lebih tinggi dan emrfs-site klasifikasi 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 Formationintegrasi, Anda dapat menggunakan Amazon S3 Access Grants untuk akses langsung atau tabular ke data di Amazon S3.

catatan

Hibah Akses S3 dengan hanya AWS Lake Formation didukung dengan kluster EMR Amazon 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.read

spark.read.csv("s3://...")

Saat Anda menggunakan Hibah Akses S3 dengan EMR AWS Lake Formation Amazon, semua pola akses langsung melalui Hibah Akses S3 untuk mendapatkan kredensyal S3 sementara.

Akses tabular

Akses tabular terjadi saat 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 EMR AWS Lake Formation Amazon, semua pola akses tabular melewati Lake Formation.

Kembali ke peran IAM

Jika pengguna mencoba melakukan tindakan yang tidak didukung oleh S3 Access Grants, Amazon EMR akan default ke peran IAM yang ditentukan untuk eksekusi pekerjaan saat konfigurasi dilakukan. fallbackToIAM true Hal ini memungkinkan pengguna untuk kembali pada peran eksekusi pekerjaan mereka untuk memberikan kredensyal 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 Hibah Akses S3 untuk data target, maka Amazon EMR memeriksa izin pada peran eksekusi pekerjaan mereka.

catatan

Kami menyarankan Anda menguji izin akses Anda dengan fallbackToIAM konfigurasi diaktifkan bahkan jika Anda berencana untuk menonaktifkan opsi untuk beban kerja produksi. Dengan pekerjaan Spark, ada cara lain agar pengguna dapat mengakses semua set izin dengan kredensyal IAM mereka. Saat diaktifkan pada kluster EMR, hibah dari S3 memberikan akses pekerjaan Spark 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 notebook, atau oleh aplikasi yang tidak didukung oleh S3 Access Grants seperti Hive atau Presto.