View a markdown version of this page

Aktifkan Formasi Danau 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.

Aktifkan Formasi Danau dengan Amazon EMR

Dengan Amazon EMR 6.15.0 dan yang lebih tinggi, saat menjalankan tugas Spark di Amazon EMR di cluster EC2 yang mengakses data di Katalog Data AWS Glue, Anda dapat menggunakannya AWS Lake Formation untuk menerapkan izin tingkat tabel, baris, kolom, dan sel pada tabel berbasis Hudi, Iceberg, atau Delta Lake.

Pada bagian ini, kami membahas cara membuat konfigurasi keamanan dan mengatur Lake Formation agar bekerja dengan Amazon EMR. Kami juga membahas cara meluncurkan cluster dengan konfigurasi keamanan yang Anda buat untuk Formasi Danau.

Langkah 1: Siapkan peran runtime untuk cluster EMR Anda

Untuk menggunakan peran runtime untuk cluster EMR Anda, Anda harus membuat konfigurasi keamanan. Dengan konfigurasi keamanan, Anda dapat menerapkan opsi keamanan, otorisasi, dan otentikasi yang konsisten di seluruh cluster Anda.

  1. Buat file yang di lf-runtime-roles-sec-cfg.json panggil dengan konfigurasi keamanan berikut.

    { "AuthorizationConfiguration": { "IAMConfiguration": { "EnableApplicationScopedIAMRole": true, "ApplicationScopedIAMRoleConfiguration": { "PropagateSourceIdentity": true } }, "LakeFormationConfiguration": { "AuthorizedSessionTagValue": "Amazon EMR" } }, "EncryptionConfiguration": { "EnableAtRestEncryption": false, "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }

    Contoh di bawah ini menggambarkan cara menggunakan file zip dengan sertifikat di Amazon S3 untuk konfigurasi sertifikat:

    "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" }

    Contoh di bawah ini menggambarkan cara menggunakan penyedia kunci khusus untuk konfigurasi sertifikat:

    "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" }
  2. Selanjutnya, untuk memastikan bahwa tag sesi dapat mengotorisasi Formasi Danau, atur LakeFormationConfiguration/AuthorizedSessionTagValue properti keAmazon EMR.

  3. Gunakan perintah berikut untuk membuat konfigurasi keamanan Amazon EMR.

    aws emr create-security-configuration \ --name 'iamconfig-with-iam-lf' \ --security-configuration file://lf-runtime-roles-sec-cfg.json

    Atau, Anda dapat menggunakan konsol Amazon EMR untuk membuat konfigurasi keamanan dengan pengaturan khusus.

Langkah 2: Luncurkan klaster Amazon EMR

Sekarang Anda siap untuk meluncurkan cluster EMR dengan konfigurasi keamanan yang Anda buat pada langkah sebelumnya. Untuk informasi selengkapnya tentang konfigurasi keamanan, lihat Gunakan konfigurasi keamanan untuk mengatur keamanan cluster Amazon EMR danPeran runtime untuk langkah-langkah Amazon EMR.

Langkah 3: Siapkan izin Formation-based kolom, baris, atau tingkat sel Lake dengan peran runtime Amazon EMR

Untuk menerapkan kontrol akses berbutir halus di tingkat kolom, baris, atau sel dengan Formasi Danau, administrator danau data untuk Formasi Danau harus menetapkan Amazon EMR sebagai nilai untuk konfigurasi tag sesi,. AuthorizedSessionTagValue Lake Formation menggunakan tag sesi ini untuk mengotorisasi penelepon dan menyediakan akses ke danau data. Anda dapat mengatur tag sesi ini di bagian Pengaturan integrasi aplikasi pada konsol Lake Formation. Ganti 123456789012 dengan Akun AWS ID Anda sendiri.

Gambar berikut menunjukkan bagian pemfilteran data eksternal di konsol Formasi Danau.

Bagian pengaturan penyaringan data eksternal konsol Lake Formation.

Langkah 4: Konfigurasikan AWS Hibah Glue dan Formasi Danau untuk peran runtime Amazon EMR

Untuk melanjutkan penyiapan kontrol akses berbasis Lake Formation dengan peran runtime Amazon EMR, Anda harus mengonfigurasi hibah Glu AWS e dan Lake Formation untuk peran runtime Amazon EMR. Untuk mengizinkan peran runtime IAM Anda berinteraksi dengan Lake Formation, berikan mereka akses dengan lakeformation:GetDataAccess danglue:Get*.

Izin Lake Formation mengontrol akses ke sumber daya Katalog Data AWS Glue, lokasi Amazon S3, dan data yang mendasarinya di lokasi tersebut. Izin IAM mengontrol akses ke API dan sumber daya Lake For AWS mation dan Glue. Meskipun Anda mungkin memiliki izin Lake Formation untuk mengakses tabel di katalog data (SELECT), operasi Anda gagal jika Anda tidak memiliki izin IAM di glue:Get* API. Untuk detail lebih lanjut tentang kontrol akses Formasi Danau, lihat ikh tisar kontrol akses Formasi Danau.

  1. Buat emr-runtime-roles-lake-formation-policy.json file dengan konten berikut.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "LakeFormationManagedAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:Get*", "glue:Create*", "glue:Update*" ], "Resource": [ "*" ] } ] }
  2. Buat kebijakan IAM terkait.

    aws iam create-policy \ --policy-name emr-runtime-roles-lake-formation-policy \ --policy-document file://emr-runtime-roles-lake-formation-policy.json
  3. Untuk menetapkan kebijakan ini ke peran runtime IAM Anda, ikuti langkah-langkah dalam M engelola AWS Lake Formation izin.

Anda sekarang dapat menggunakan peran runtime dan Lake Formation untuk menerapkan izin tingkat tabel dan kolom. Anda juga dapat menggunakan identitas sumber untuk mengontrol tindakan dan memantau operasi dengan AWS CloudTrail.

Untuk setiap peran IAM yang Anda rencanakan untuk digunakan sebagai peran runtime, tetapkan kebijakan kepercayaan berikut, ganti EMR_EC2_DefaultRole dengan peran profil instans Anda. Untuk mengubah kebijakan kepercayaan dari peran IAM, lihat Memo difikasi kebijakan kepercayaan peran.

{ "Sid":"AllowAssumeRole", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::<AWS_ACCOUNT_ID>:role/EMR_EC2_DefaultRole" }, "Action":[ "sts:AssumeRole", "sts:TagSession" ] }

Untuk contoh terperinci dari ujung ke ujung, lihat Memperkenalkan peran runtime untuk langkah-langkah Amazon EMR.

Untuk informasi tentang cara mengintegrasikan dengan Iceberg dan Katalog Data AWS Glue untuk hierarki multi-katalog, lihat Meng onfigurasi Spark untuk mengakses hierarki multi-katalog di Katalog Data AWS Glue.