Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan otentikasi LDAP untuk Presto on Amazon EMR
Ikuti langkah-langkah dalam bagian ini untuk mengkonfigurasi LDAP. Lihat setiap langkah untuk contoh dan tautan ke informasi lebih lanjut.
Langkah-langkah untuk mengkonfigurasi otentikasi LDAP
Langkah 1: Mengumpulkan informasi tentang server LDAP Anda dan menyalin sertifikat server ke Amazon S3
Anda akan memerlukan informasi dan item di bagian berikut dari server LDAP Anda untuk mengkonfigurasi otentikasi LDAP.
Alamat IP atau nama host server LDAP
Koordinator Presto pada Amazon EMR master node harus mampu mencapai server LDAP di alamat IP tertentu atau nama host. Secara default, Presto berkomunikasi dengan server LDAP menggunakan LDAPS melalui port 636. Jika implementasi LDAP Anda memerlukan port kustom, Anda dapat menentukan menggunakan ldap.url
dengan Amazon EMR 5.16.0 atau yang lebih baru, atau menggunakan authentication.ldap.url
dengan versi sebelumnya. Mengganti port kustom untuk 636
seperti yang ditunjukkan dalam presto-config
contoh klasifikasi konfigurasi di Langkah 3: Buat konfigurasi JSON dengan properti Presto untuk LDAP. Pastikan bahwa firewall dan grup keamanan memungkinkan lalu lintas masuk dan keluar pada port 636 (atau port kustom Anda) dan juga port 8446 (atau port kustom Anda), yang digunakan untuk komunikasi cluster internal.
Sertifikat server LDAP
Anda harus meng-upload file sertifikat ke lokasi yang aman di Amazon S3. Untuk informasi selengkapnya, lihat Bagaimana cara mengunggah file dan folder ke Bucket S3 di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Anda membuat bootstrap tindakan yang menyalin sertifikat ini dari Amazon S3 untuk setiap node dalam gugus ketika kluster meluncurkan. Masuk Langkah 4: Buat script untuk menyalin sertifikat server LDAP dan meng-upload ke Amazon S3. Contoh sertifikat adalahs3://amzn-s3-demo-bucket/ldap_server.crt
.
Pengaturan server LDAP untuk pengikatan anonim
Jika anonim mengikat dinonaktifkan pada PrestoDB, Anda memerlukan ID pengguna (UID) dan password dari account dengan izin untuk mengikat ke server LDAP sehingga server PrestoDB dapat membuat sambungan. Anda menentukan UID dan sandi menggunakan internal-communication.authentication.ldap.user
dan internal-communication.authentication.ldap.password
properti di properti presto-config
Konfigurasi klasifikasi. Amazon EMR 5.10.0 tidak mendukung pengaturan ini, sehingga anonim mengikat harus didukung pada server LDAP ketika Anda menggunakan versi rilis ini.
Perhatikan bahwa Trino tidak memerlukan konfigurasi pengikatan anonim.
Untuk mendapatkan status pengikatan anonim pada server LDAP
-
Penggunaanldapwhoami
Perintah dari klien Linux, seperti yang ditunjukkan dalam contoh berikut: ldapwhoami -x -H ldaps://
LDAPServerHostNameOrIPAddress
Jika anonim mengikat tidak diperbolehkan, perintah mengembalikan berikut:
ldap_bind: Inappropriate authentication (48) additional info: anonymous bind disallowed
Untuk memverifikasi bahwa account memiliki izin ke server LDAP yang menggunakan otentikasi sederhana
-
Penggunaanldapwhoami
Perintah dari klien Linux, seperti yang ditunjukkan dalam contoh berikut. Contoh ini menggunakan pengguna fiktif, presto
, disimpan di server Open LDAP yang berjalan pada sebuah EC2 instance dengan nama host fiktif.ip-xxx-xxx-xxx-xxx.ec2.internal
Pengguna dikaitkan dengan unit organisasi (OU)admins
dan dengan kata sandi123456
:ldapwhoami -x -w "
123456
" -D uid=presto
,ou=admins
,dc=ec2,dc=internal -H ldaps://ip-xxx-xxx-xxx-xxx.ec2.internal
Jika akun valid dan memiliki izin yang sesuai, perintah kembali:
dn:uid=presto,ou=admins,dc=ec2,dc=internal
Konfigurasi contoh dalam Langkah 3: Buat konfigurasi JSON dengan properti Presto untuk LDAP sertakan akun ini untuk kejelasan, dengan pengecualian contoh 5.10.0, di mana tidak didukung. Jika LDAP server menggunakan anonim mengikat, menghapus internal-communication.authentication.ldap.user
dan internal-communication.authentication.ldap.password
nama/pasangan nilai.
Nama dibedakan LDAP (DN) untuk pengguna Presto
Ketika Anda menentukan konfigurasi LDAP untuk Presto, Anda menentukan pola bind yang terdiri dari ${USER}
bersama dengan unit organisasi (OU) dan komponen domain tambahan (). DCs Presto menggantikan ${USER}
dengan sebenarnya User ID (UID) dari setiap pengguna selama otentikasi sandi untuk mencocokkan nama dibedakan (DN) yang pola mengikat ini menentukan. Anda membutuhkan pengguna OUs yang memenuhi syarat milik dan milik mereka DCs. Misalnya, untuk memungkinkan pengguna dari admins
OU di corp.example.com
domain untuk otentikasi ke Presto, Anda tentukan ${USER},ou=admins,dc=corp,dc=example,dc=com
sebagai pola mengikat pengguna.
catatan
Saat Anda menggunakan AWS CloudFormation, Anda perlu menggunakan fungsi Fn: :Sub untuk mengganti ${USER}
dengan User ID (UID) yang sebenarnya. Untuk informasi selengkapnya, lihat topik Fn: :Sub di AWS CloudFormation Panduan Pengguna.
Bila menggunakan Amazon EMR 5.10.0, Anda dapat menentukan hanya satu pola seperti itu. Menggunakan Amazon EMR 5.11.0 atau yang lebih baru, Anda dapat menentukan beberapa pola dipisahkan oleh titik dua (:). Pengguna mencoba untuk mengotentikasi ke Presto dibandingkan dengan pola pertama, maka yang kedua, dan seterusnya. Sebagai contoh, lihat Langkah 3: Buat konfigurasi JSON dengan properti Presto untuk LDAP.
Langkah 2: Mengatur konfigurasi keamanan
Buat konfigurasi keamanan dengan enkripsi dalam transit diaktifkan. Untuk informasi selengkapnya, lihat Membuat konfigurasi keamanan dalam Amazon EMR. Artefak enkripsi yang Anda berikan ketika Anda mengatur di-transit enkripsi yang digunakan untuk mengenkripsi komunikasi internal antara Presto node. Untuk informasi selengkapnya, lihat Menyediakan sertifikat untuk enkripsi data in-transit. Sertifikat server LDAP digunakan untuk mengotentikasi koneksi klien ke Presto server.
Langkah 3: Buat konfigurasi JSON dengan properti Presto untuk LDAP
Anda menggunakan presto-config
klasifikasi konfigurasi untuk mengatur properti Presto untuk LDAP. Format dan isinya sedikit berbeda tergantung pada versi rilis Amazon EMR dan instalasi Presto (PrestoDB atau Trino). presto-config
Contoh perbedaan konfigurasi disediakan nanti dalam bagian ini. Untuk informasi selengkapnya, lihat Konfigurasikan aplikasi.
Langkah-langkah berikut mengasumsikan bahwa Anda menyimpan data JSON ke file,MyPrestoConfig.json
. Jika Anda menggunakan konsol, meng-upload file ke lokasi aman di Amazon S3 sehingga Anda dapat referensi ketika Anda membuat cluster. Jika Anda menggunakan AWS CLI, Anda dapat mereferensikan file secara lokal.
contoh Amazon EMR 6.1.0 dan yang lebih baru dengan PrestosQL (Trino)
Contoh berikut menggunakan nama host LDAP dari Langkah 1: Mengumpulkan informasi tentang server LDAP Anda dan menyalin sertifikat server ke Amazon S3 untuk mengotentikasi ke server LDAP untuk mengikat. Dua pola ikatan pengguna ditentukan, yang menunjukkan bahwa pengguna dalam admins
OU dan datascientists
OU pada server LDAP memenuhi syarat untuk otentikasi ke server Trino sebagai pengguna. Pola mengikat dipisahkan oleh titik dua (:
).
Amazon EMR versi 6.4.0 dan yang lebih baru menggunakan nama baru Trino alih-alih PrestosQL. Jika Anda menggunakan Trino, ganti
dalam klasifikasi konfigurasi berikut dengan prestosql-config
trino-config
dan
denganprestosql-password-authenticator
trino-password-authenticator
.
[ { "Classification":"
prestosql-config
", "Properties":{ "http-server.authentication.type":"PASSWORD" } }, { "Classification":"prestosql-password-authenticator
", "Properties":{ "password-authenticator.name":"ldap", "ldap.url":"ldaps://ip-xxx-xxx-xxx-xxx.ec2.internal:636", "ldap.user-bind-pattern": "uid=${USER},ou=admins,dc=ec2,dc=internal:uid=${USER},ou=datascientists,dc=ec2,dc=internal" } } ]
contoh Amazon EMR 5.16.0 dan versi yang lebih tinggi
Contoh berikut menggunakan LDAP user ID dan password, dan nama host LDAP dari Langkah 1: Mengumpulkan informasi tentang server LDAP Anda dan menyalin sertifikat server ke Amazon S3 untuk mengotentikasi ke server LDAP untuk mengikat. Dua pola mengikat pengguna ditentukan, yang menunjukkan bahwa pengguna dalam admins
OU dan datascientists
OU pada LDAP server memenuhi syarat untuk otentikasi ke Presto server sebagai pengguna. Pola mengikat dipisahkan oleh titik dua (:
).
[{ "Classification": "presto-config", "Properties": { "http-server.authentication.type": "PASSWORD" } }, { "Classification": "presto-password-authenticator", "Properties": { "password-authenticator.name": "ldap", "ldap.url": "ldaps://
ip-xxx-xxx-xxx-xxx.ec2.internal
:636", "ldap.user-bind-pattern": "uid=${USER},ou=admins
,dc=ec2,dc=internal:uid=${USER},ou=datascientists
,dc=ec2,dc=internal", "internal-communication.authentication.ldap.user": "presto
", "internal-communication.authentication.ldap.password": "123456
" } }]
contoh Amazon EMR 5.11.0 melalui 5.15.0
Formatnya presto-config
klasifikasi konfigurasi sedikit berbeda untuk versi rilis ini. Contoh berikut menentukan parameter yang sama seperti contoh sebelumnya.
[{ "Classification": "presto-config", "Properties": { "http-server.authentication.type": "LDAP", "authentication.ldap.url": "ldaps://
ip-xxx-xxx-xxx-xxx.ec2.internal
:636", "authentication.ldap.user-bind-pattern": "uid=${USER},ou=admins
,dc=ec2,dc=internal:uid=${USER},ou=datascientists
,dc=ec2,dc=internal", "internal-communication.authentication.ldap.user": "presto
", "internal-communication.authentication.ldap.password": "123456
" } }]
contoh EMR Amazon 5.10.0
Amazon EMR 5.10.0 mendukung anonim mengikat hanya, sehingga entri tersebut dihilangkan. Selain itu, hanya pola pengikat tunggal yang bisa ditentukan.
[{ "Classification": "presto-config", "Properties": { "http-server.authentication.type": "LDAP", "authentication.ldap.url": "ldaps://
ip-xxx-xxx-xxx-xxx.ec2.internal
:636", "ldap.user-bind-pattern": "uid=${USER},ou=prestousers
,dc=ec2,dc=internal" } }]
Langkah 4: Buat script untuk menyalin sertifikat server LDAP dan meng-upload ke Amazon S3
Membuat script yang menyalin file sertifikat untuk setiap node dalam gugus dan menambahkan ke keystore. Buat skrip menggunakan editor teks, simpan, dan kemudian muat naik ke Amazon S3. DalamLangkah 5: Membuat cluster, file skrip direferensikan sebagais3://amzn-s3-demo-bucket/LoadLDAPCert.sh
.
Contoh skrip berikut menggunakan password keystore default,changeit
. Kami merekomendasikan bahwa Anda menyambung ke node master setelah Anda membuat cluster dan mengubah sandi keystore menggunakan perintah keytool.
#!/bin/bash aws s3 cp s3://amzn-s3-demo-bucket/ldap_server.crt . sudo keytool -import -keystore /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/lib/security/cacerts -trustcacerts -alias ldap_server -file ./ldap_server.crt -storepass
changeit
-noprompt
Langkah 5: Membuat cluster
Ketika Anda membuat cluster, Anda menentukan Presto dan aplikasi lain yang Anda inginkan Amazon EMR untuk menginstal. Contoh berikut juga referensi properti klasifikasi konfigurasi dalam JSON, tetapi Anda juga dapat menentukan inline klasifikasi konfigurasi.
Untuk membuat cluster Presto dengan otentikasi LDAP menggunakan konsol Amazon EMR
Arahkan ke konsol EMR Amazon baru dan pilih Beralih ke konsol lama dari navigasi samping. Untuk informasi selengkapnya tentang apa yang diharapkan saat beralih ke konsol lama, lihat Menggunakan konsol lama.
-
Pilih Buat Kluster, Buka opsi tingkat lanjut.
-
PilihPrestobersama dengan aplikasi lain untuk Amazon EMR untuk menginstal, dan di bawahKonfigurasi Software, pilihRilisdari Amazon EMR untuk digunakan. Otentikasi LDAP didukung hanya dengan Amazon EMR 5.10.0 dan kemudian.
-
Di bawah Mengedit setelan perangkat lunak, pilih Muat JSON dari S3, masukkan lokasi di Amazon S3 dari file konfigurasi JSON yang Anda buat Langkah 3: Buat konfigurasi JSON dengan properti Presto untuk LDAP, lalu pilih Selanjutnya.
-
Mengkonfigurasi cluster perangkat keras dan jaringan, dan kemudian pilihSelanjutnya.
-
PilihTindakan Bootstrap. UntukTambahkan tindakan bootstrap, pilihTindakan kustom, lalu pilihKonfigurasikan dan tambahkan.
-
Masukkan Nama untuk tindakan bootstrap, masukkan lokasi Script yang Anda buatLangkah 4: Buat script untuk menyalin sertifikat server LDAP dan meng-upload ke Amazon S3, misalnya s3://amzn-s3-demo-bucket/Load LDAPCert .sh, lalu pilih Tambah.
-
Di bawahPilihan umum,Tag, danOpsi tambahanpilih pengaturan yang sesuai untuk aplikasi Anda, dan kemudian pilihSelanjutnya.
-
PilihAutentikasi dan enkripsi, dan kemudian pilihKonfigurasi keamananyang Anda buat di Langkah 2: Mengatur konfigurasi keamanan.
-
Pilih opsi keamanan lain yang sesuai untuk aplikasi Anda, dan kemudian pilihBuat gugus.
Untuk membuat sebuah cluster Presto dengan otentikasi LDAP menggunakan AWS CLI
-
Gunakan perintah
aws emr create-cluster
. Minimal, tentukan aplikasi Presto, dan juga klasifikasi konfigurasi Presto, skrip bootstrap, dan konfigurasi keamanan yang Anda buat pada langkah-langkah sebelumnya. Contoh berikut referensi file konfigurasi sebagai file JSON disimpan dalam direktori yang sama di mana Anda menjalankan perintah. Skrip bootstrap, di sisi lain, harus disimpan di Amazon S3. Contoh berikut menggunakans3://amzn-s3-demo-bucket/LoadLDAPCert.sh
.catatan
Karakter kelanjutan baris Linux (\) disertakan untuk memudahkan pembacaan. Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).
aws emr create-cluster --applications Name=presto --release-label emr-5.16.0 \ --use-default-roles --ec2-attributes KeyName=
MyKeyPair
,SubnetId=subnet-1234ab5
\ --instance-count 3 --instance-type m5.xlarge --region us-west-2 --name "MyPrestoWithLDAPAuth" \ --bootstrap-actions Name="Distribute LDAP server cert",Path="s3://amzn-s3-demo-bucket/LoadLDAPCert.sh" \ --security-configuration MyPrestoLDAPSecCfg --configurations file://MyPrestoConfig.json