Konfigurasikan IAM peran untuk EMRFS permintaan ke Amazon S3 - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasikan IAM peran untuk EMRFS permintaan ke Amazon S3

catatan

Kemampuan pemetaan EMRFS peran yang dijelaskan di halaman ini telah ditingkatkan dengan diperkenalkannya Hibah Akses Amazon S3 di EMR Amazon 6.15.0. Untuk solusi kontrol akses yang dapat diskalakan untuk data Anda di Amazon S3, sebaiknya gunakan Hibah Akses S3 dengan Amazon. EMR

Saat aplikasi yang berjalan pada data referensi cluster menggunakan s3://mydata format, Amazon EMR menggunakan EMRFS untuk membuat permintaan. Untuk berinteraksi dengan Amazon S3, gunakan EMRFS kebijakan izin yang dilampirkan ke profil instans Amazon Anda. EC2 Profil EC2 instans Amazon yang sama digunakan terlepas dari pengguna atau grup yang menjalankan aplikasi atau lokasi data di Amazon S3.

Jika Anda memiliki klaster dengan beberapa pengguna yang memerlukan tingkat akses data yang berbeda di Amazon S3EMRFS, Anda dapat mengatur konfigurasi keamanan dengan IAM peran untuk. EMRFS EMRFSdapat mengasumsikan peran layanan yang berbeda untuk EC2 instance cluster berdasarkan pengguna atau grup yang membuat permintaan, atau berdasarkan lokasi data di Amazon S3. Setiap IAM peran untuk EMRFS dapat memiliki izin yang berbeda untuk akses data di Amazon S3. Untuk informasi selengkapnya tentang peran layanan untuk EC2 instance cluster, lihatPeran layanan untuk EC2 instance cluster (profil EC2 instance).

Menggunakan IAM peran khusus untuk EMRFS didukung di Amazon EMR versi 5.10.0 dan yang lebih baru. Jika Anda menggunakan versi yang lebih lama atau memiliki persyaratan di luar IAM peran yang EMRFS disediakan, Anda dapat membuat penyedia kredensyal kustom sebagai gantinya. Untuk informasi selengkapnya, lihat Mengotorisasi akses ke EMRFS data di Amazon S3.

Saat Anda menggunakan konfigurasi keamanan untuk menentukan IAM peranEMRFS, Anda menyiapkan pemetaan peran. Setiap pemetaan peran menentukan IAM peran yang sesuai dengan pengidentifikasi. Pengidentifikasi ini menentukan dasar untuk akses ke Amazon EMRFS S3 melalui. Pengidentifikasi dapat berupa pengguna, grup, atau prefiks Amazon S3 yang menunjukkan lokasi data. Saat EMRFS membuat permintaan ke Amazon S3, jika permintaan cocok dengan dasar akses, EMRFS EC2 instance cluster akan mengambil IAM peran yang sesuai untuk permintaan tersebut. IAMIzin yang dilampirkan pada peran tersebut berlaku alih-alih IAM izin yang dilampirkan ke peran layanan untuk instance klasterEC2.

Para pengguna dan grup di pemetaan peran adalah pengguna Hadoop dan grup yang didefinisikan pada klaster. Pengguna dan grup diteruskan ke EMRFS dalam konteks aplikasi yang menggunakannya (misalnya, peniruan identitas YARN pengguna). Prefiks Amazon S3 bisa menjadi penspesifikasi bucket dari kedalaman apapun (misalnya, s3://mybucket atau s3://mybucket/myproject/mydata). Anda dapat menentukan beberapa pengidentifikasi di pemetaan peran tunggal, tetapi mereka semua harus dari tipe yang sama.

penting

IAMperan untuk EMRFS menyediakan isolasi tingkat aplikasi antara pengguna aplikasi. Ini tidak menyediakan isolasi tingkat host antara pengguna pada host. Setiap pengguna dengan akses ke klaster dapat melewati isolasi untuk mengambil salah satu peran.

Saat aplikasi cluster membuat permintaan ke Amazon S3EMRFS, EMRFS evaluasi pemetaan peran dalam urutan top-down yang muncul dalam konfigurasi keamanan. Jika permintaan yang dibuat EMRFS tidak cocok dengan pengenal apa EMRFS pun, kembali menggunakan peran layanan untuk EC2 instance cluster. Untuk alasan ini, kami merekomendasikan bahwa kebijakan yang terlampir pada peran ini membatasi izin untuk Amazon S3. Untuk informasi selengkapnya, lihat Peran layanan untuk EC2 instance cluster (profil EC2 instance).

Konfigurasi peran

Sebelum Anda menyiapkan konfigurasi keamanan dengan IAM peran untukEMRFS, rencanakan dan buat peran dan kebijakan izin untuk dilampirkan ke peran. Untuk informasi selengkapnya, lihat Bagaimana cara kerja peran untuk EC2 instans? dalam IAMUser Guide. Saat membuat kebijakan izin, sebaiknya Anda memulai dengan kebijakan terkelola yang dilampirkan ke EMR peran Amazon defaultEC2, lalu mengedit kebijakan ini sesuai dengan kebutuhan Anda. Nama peran default adalah EMR_EC2_DefaultRole, dan kebijakan terkelola default untuk mengedit adalah AmazonElasticMapReduceforEC2Role. Untuk informasi selengkapnya, lihat Peran layanan untuk EC2 instance cluster (profil EC2 instance).

Memperbarui kebijakan kepercayaan untuk mengambil izin peran

Setiap peran yang EMRFS digunakan harus memiliki kebijakan kepercayaan yang memungkinkan EMR peran Amazon klaster EC2 untuk mengasumsikannya. Demikian pula, EMR peran Amazon cluster untuk EC2 harus memiliki kebijakan kepercayaan yang memungkinkan EMRFS peran untuk mengambilnya.

Contoh kebijakan kepercayaan berikut dilampirkan pada peran untukEMRFS. Pernyataan tersebut memungkinkan EMR peran Amazon default EC2 untuk mengambil peran tersebut. Misalnya, jika Anda memiliki dua EMRFS peran fiktifEMRFSRole_Second, EMRFSRole_First dan pernyataan kebijakan ini ditambahkan ke kebijakan kepercayaan untuk masing-masing peran tersebut.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::AWSAcctID:role/EMR_EC2_DefaultRole" }, "Action":"sts:AssumeRole" } ] }

Selain itu, contoh pernyataan kebijakan kepercayaan berikut ditambahkan ke EMR_EC2_DefaultRole untuk memungkinkan dua EMRFS peran fiktif untuk mengasumsikan itu.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS": ["arn:aws:iam::AWSAcctID:role/EMRFSRole_First", "arn:aws:iam::AWSAcctID:role/EMRFSRole_Second"] }, "Action":"sts:AssumeRole" } ] }
Untuk memperbarui kebijakan kepercayaan suatu IAM peran

Buka IAM konsol di https://console.aws.amazon.com/iam/.

  1. Memilih Peran, memasukkan nama peran di Cari, dan lalu pilih Nama peran.

  2. Memilih Hubungan kepercayaan, Sunting hubungan kepercayaan.

  3. Tambahkan pernyataan kepercayaan sesuai dengan dokumen Kebijakan sesuai dengan pedoman di atas, lalu pilih Perbarui kebijakan kepercayaan.

Menentukan peran sebagai pengguna kunci

Jika peran memungkinkan akses ke lokasi di Amazon S3 yang dienkripsi menggunakan AWS KMS key, pastikan peran tersebut ditentukan sebagai pengguna kunci. Ini memberikan izin peran untuk menggunakan KMS kunci. Untuk informasi selengkapnya, lihat Kebijakan kunci di AWS KMS di Panduan Developer AWS Key Management Service .

Siapkan konfigurasi keamanan dengan IAM peran untuk EMRFS

penting

Jika tidak ada IAM peran untuk EMRFS yang Anda tentukan berlaku, EMRFS kembalilah ke EMR peran AmazonEC2. Pertimbangkan untuk menyesuaikan peran ini untuk membatasi izin ke Amazon S3 yang sesuai untuk aplikasi Anda dan kemudian menentukan peran kustom ini alih-alih EMR_EC2_DefaultRole saat Anda membuat klaster. Untuk informasi selengkapnya, silakan lihat Sesuaikan IAM peran dan Tentukan IAM peran kustom saat Anda membuat klaster.

Untuk menentukan IAM peran EMRFS permintaan ke Amazon S3 menggunakan konsol
  1. Membuat konfigurasi keamanan yang menentukan pemetaan peran:

    1. Di EMR konsol Amazon, pilih Konfigurasi keamanan, Buat.

    2. Ketik Nama untuk konfigurasi keamanan. Anda menggunakan nama ini untuk menentukan konfigurasi keamanan ketika Anda membuat sebuah klaster.

    3. Pilih Gunakan IAM peran untuk EMRFS permintaan ke Amazon S3.

    4. Pilih IAMperan yang akan diterapkan, dan di bawah Dasar untuk akses pilih jenis pengenal (awalan Pengguna, Grup, atau S3) dari daftar dan masukkan pengidentifikasi yang sesuai. Jika Anda menggunakan beberapa pengidentifikasi, pisahkan dengan koma dan jangan ada spasi. Untuk informasi lebih lanjut tentang setiap tipe pengidentifikasi, lihat JSON configuration reference berikut ini.

    5. Memilih Menambah peran untuk mengatur pemetaan peran tambahan seperti yang dijelaskan di langkah sebelumnya.

    6. Mengatur opsi konfigurasi keamanan lain yang sesuai dan memilih Buat. Untuk informasi selengkapnya, lihat Membuat konfigurasi keamanan.

  2. Tentukan konfigurasi keamanan yang Anda buat di atas saat Anda membuat sebuah klaster. Untuk informasi selengkapnya, lihat Menentukan konfigurasi keamanan untuk sebuah klaster.

Untuk menentukan IAM peran EMRFS permintaan ke Amazon S3 menggunakan AWS CLI
  1. Gunakan aws emr create-security-configuration perintah, tentukan nama untuk konfigurasi keamanan, dan detail konfigurasi keamanan dalam JSON format.

    Contoh perintah yang ditunjukkan di bawah ini menciptakan konfigurasi keamanan dengan nama EMRFS_Roles_Security_Configuration. Ini didasarkan pada JSON struktur dalam fileMyEmrfsSecConfig.json, yang disimpan di direktori yang sama di mana perintah dijalankan.

    aws emr create-security-configuration --name EMRFS_Roles_Security_Configuration --security-configuration file://MyEmrFsSecConfig.json.

    Gunakan pedoman berikut untuk struktur file MyEmrFsSecConfig.json. Anda dapat menentukan struktur ini bersama dengan struktur untuk opsi konfigurasi keamanan lainnya. Untuk informasi selengkapnya, lihat Membuat konfigurasi keamanan.

    Berikut ini adalah contoh JSON cuplikan untuk menentukan IAM peran kustom untuk EMRFS dalam konfigurasi keamanan. Ini menunjukkan pemetaan peran untuk tiga tipe pengidentifikasi yang berbeda, diikuti dengan referensi parameter.

    { "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1", "IdentifierType": "User", "Identifiers": [ "user1" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } } }
    Parameter Deskripsi

    "AuthorizationConfiguration":

    Diperlukan.

    "EmrFsConfiguration":

    Diperlukan. Berisi pemetaan peran.

      "RoleMappings":

    Diperlukan. Berisi satu atau lebih definisi peran pemetaan. Pemetaan peran dievaluasi di urutan top-down yang muncul. Jika pemetaan peran dievaluasi sebagai true untuk EMRFS panggilan data di Amazon S3, tidak ada pemetaan peran lebih lanjut yang dievaluasi EMRFS dan menggunakan peran yang ditentukan untuk permintaan tersebut. IAM Pemetaan peran terdiri dari parameter wajib berikut:

       "Role":

    Menentukan ARN identifier IAM peran dalam format. arn:aws:iam::account-id:role/role-name Ini adalah IAM peran yang EMR diasumsikan Amazon jika EMRFS permintaan ke Amazon S3 cocok dengan salah satu Identifiers yang ditentukan.

       "IdentifierType":

    Dapat menjadi salah satu dari yang berikut:

    • "User" menetapkan bahwa pengidentifikasi adalah satu pengguna Hadoop atau lebih, yang bisa saja pengguna akun Linux atau utama Kerberos. Ketika EMRFS permintaan berasal dari pengguna atau pengguna yang ditentukan, IAM peran diasumsikan.

    • "Prefix" menetapkan bahwa pengidentifikasi adalah lokasi Amazon S3. IAMPeran diasumsikan untuk panggilan ke lokasi atau lokasi dengan awalan yang ditentukan. Misalnya, prefiks s3://mybucket/ mencocokkan s3://mybucket/mydir dan s3://mybucket/yetanotherdir.

    • "Group" menetapkan bahwa pengidentifikasi adalah satu Grup Hadoop atau lebih. IAMPeran diasumsikan jika permintaan berasal dari pengguna dalam grup atau grup tertentu.

       "Identifiers":

    Menentukan satu pengidentifikasi atau lebih dari tipe pengidentifikasi yang sesuai. Pisahkan beberapa pengidentifikasi dengan koma tanpa spasi.

  2. Menggunakan perintah aws emr create-cluster untuk membuat sebuah klaster dan menentukan konfigurasi keamanan yang Anda buat di langkah sebelumnya.

    Contoh berikut membuat klaster dengan memasang aplikasi Hadoop inti default. Cluster menggunakan konfigurasi keamanan yang dibuat di atas sebagai EMRFS_Roles_Security_Configuration dan juga menggunakan EMR peran Amazon khusus untuk EC2EC2_Role_EMR_Restrict_S3, yang ditentukan menggunakan InstanceProfile argumen --ec2-attributes parameter.

    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 sisipan (^).

    aws emr create-cluster --name MyEmrFsS3RolesCluster \ --release-label emr-7.2.0 --ec2-attributes InstanceProfile=EC2_Role_EMR_Restrict_S3,KeyName=MyKey \ --instance-type m5.xlarge --instance-count 3 \ --security-configuration EMRFS_Roles_Security_Configuration