Aktifkan Lake Formation 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 Lake Formation dengan Amazon EMR

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

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

Langkah 1: Siapkan peran runtime untuk cluster EMR Anda

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

  1. Buat file yang disebut lf-runtime-roles-sec-cfg.json 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 kustom 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 Lake Formation, 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 EMR Amazon untuk membuat konfigurasi keamanan dengan pengaturan khusus.

Langkah 2: Luncurkan klaster Amazon EMR

Sekarang Anda siap 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 klaster Amazon EMR danPeran runtime untuk langkah-langkah EMR Amazon.

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

Untuk menerapkan kontrol akses berbutir halus pada tingkat kolom, baris, atau sel dengan Lake Formation, administrator data lake untuk Lake Formation 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 di konsol Lake Formation. Ganti 123456789012 dengan Akun AWS ID Anda sendiri.

Langkah 4: Konfigurasikan hibah AWS Glue dan Lake Formation untuk peran runtime Amazon EMR

Untuk melanjutkan penyiapan kontrol akses berbasis Lake Formation dengan peran runtime Amazon EMR, Anda harus mengonfigurasi hibah AWS Glue dan Lake Formation untuk peran runtime Amazon EMR. Untuk memungkinkan peran runtime IAM Anda berinteraksi dengan Lake Formation, beri mereka akses dengan lakeformation:GetDataAccess dan. glue:Get*

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

  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 Mengelola izin. AWS Lake Formation

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 peran IAM, lihat Memodifikasi 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 selengkapnya, end-to-end lihat Memperkenalkan peran runtime untuk langkah-langkah EMR Amazon.

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