Tutorial: Konfigurasi kepercayaan lintas ranah dengan domain Direktori Aktif - Amazon EMR

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

Tutorial: Konfigurasi kepercayaan lintas ranah dengan domain Direktori Aktif

Saat Anda menyiapkan kepercayaan lintas alam, Anda mengizinkan prinsipal (biasanya pengguna) dari ranah Kerberos yang berbeda untuk mengautentikasi komponen aplikasi di cluster. EMR Pusat distribusi kunci khusus cluster (KDC) membangun hubungan kepercayaan dengan yang lain KDC menggunakan prinsip lintas alam yang ada di keduanya. KDCs Nama utama dan kata sandi sangat cocok.

Kepercayaan lintas alam mensyaratkan bahwa mereka KDCs dapat menjangkau satu sama lain melalui jaringan dan menyelesaikan nama domain masing-masing. Langkah-langkah untuk membangun hubungan kepercayaan lintas ranah dengan pengontrol domain Microsoft AD yang berjalan sebagai EC2 instance disediakan di bawah ini, bersama dengan contoh pengaturan jaringan yang menyediakan konektivitas dan resolusi nama domain yang diperlukan. Setiap pengaturan jaringan yang memungkinkan lalu lintas jaringan yang KDCs diperlukan antara dapat diterima.

Secara opsional, setelah Anda membangun kepercayaan lintas ranah dengan Active Directory menggunakan klaster KDC on one, Anda dapat membuat klaster lain menggunakan konfigurasi keamanan yang berbeda untuk mereferensikan klaster pertama sebagai eksternal. KDC KDC Untuk konfigurasi keamanan dan pengaturan klaster contoh, lihat Cluster eksternal KDC dengan kepercayaan lintas ranah Direktori Aktif.

Untuk informasi selengkapnya tentang EMR dukungan Amazon untuk Kerberos danKDC, serta tautan ke Dokumentasi MIT Kerberos, lihat. Gunakan Kerberos untuk otentikasi dengan Amazon EMR

penting

Amazon EMR tidak mendukung kepercayaan lintas alam dengan. AWS Directory Service for Microsoft Active Directory

Langkah 1: Siapkan VPC dan subnet

Langkah 2: Peluncuran dan menginstal pengendali domain Direktori Aktif

Langkah 3: Tambahkan akun ke domain untuk EMR Cluster

Langkah 4: Konfigurasi kepercayaan masuk pada pengendali domain Direktori Aktif

Langkah 5: Gunakan DHCP opsi yang ditetapkan untuk menentukan pengontrol domain Active Directory sebagai VPC DNS server

Langkah 6: Luncurkan Cluster Kerberized EMR

Langkah 7: Buat HDFS pengguna dan atur izin di cluster untuk akun Active Directory

Langkah 1: Siapkan VPC dan subnet

Langkah-langkah berikut menunjukkan pembuatan subnet VPC dan sehingga cluster-dedicated KDC dapat mencapai pengontrol domain Active Directory dan menyelesaikan nama domainnya. Dalam langkah-langkah ini, resolusi nama domain disediakan dengan mereferensikan pengontrol domain Active Directory sebagai server nama domain dalam set opsi. DHCP Untuk informasi selengkapnya, lihat Langkah 5: Gunakan DHCP opsi yang ditetapkan untuk menentukan pengontrol domain Active Directory sebagai VPC DNS server.

Pengontrol domain KDC dan Active Directory harus dapat menyelesaikan nama domain satu sama lain. Ini memungkinkan Amazon EMR untuk bergabung dengan komputer ke domain dan secara otomatis mengonfigurasi akun dan SSH parameter Linux yang sesuai pada instance cluster.

Jika Amazon tidak EMR dapat menyelesaikan nama domain, Anda dapat mereferensikan kepercayaan menggunakan alamat IP pengontrol domain Active Directory. Namun, Anda harus menambahkan akun Linux secara manual, menambahkan prinsip yang sesuai ke cluster KDC yang didedikasikan, dan mengkonfigurasi. SSH

Untuk mengatur VPC dan subnet
  1. Buat Amazon VPC dengan satu subnet publik. Untuk informasi selengkapnya, lihat Langkah 1: Membuat Panduan VPC Memulai Amazon VPC di Amazon.

    penting

    Bila Anda menggunakan pengontrol domain Microsoft Active Directory, pilih CIDR blok untuk EMR cluster sehingga semua IPv4 alamat kurang dari sembilan karakter panjangnya (misalnya, 10.0.0.0/16). Ini karena DNS nama-nama komputer cluster digunakan ketika komputer bergabung dengan direktori Active Directory. AWS menetapkan DNSnama host berdasarkan IPv4 alamat sedemikian rupa sehingga alamat IP yang lebih panjang dapat menghasilkan DNS nama yang lebih panjang dari 15 karakter. Direktori Aktif memiliki batas 15 karakter untuk mendaftar dan bergabung dengan nama komputer, dan memotong nama yang lebih panjang, yang dapat menyebabkan kesalahan tak terduga.

  2. Hapus set DHCP opsi default yang ditetapkan keVPC. Untuk informasi selengkapnya, lihat Mengubah DHCP opsi VPC untuk menggunakan Tidak ada. Kemudian, Anda menambahkan yang baru yang menentukan kontroler domain Active Directory sebagai DNS server.

  3. Konfirmasikan bahwa DNS dukungan diaktifkan untukVPC, yaitu, bahwa DNS Nama Host dan DNS Resolusi keduanya diaktifkan. Mereka diaktifkan secara default. Untuk informasi selengkapnya, lihat Memperbarui DNS dukungan untuk Anda VPC.

  4. Konfirmasikan bahwa Anda VPC memiliki gateway internet yang terpasang, yang merupakan default. Untuk informasi selengkapnya, lihat Membuat dan melampirkan gateway internet.

    catatan

    Gateway internet digunakan dalam contoh ini karena Anda membuat pengontrol domain baru untukVPC. Gateway internet mungkin tidak diperlukan untuk aplikasi Anda. Satu-satunya persyaratan adalah bahwa cluster-dedicated KDC dapat mengakses pengontrol domain Active Directory.

  5. Membuat tabel rute kustom, menambahkan rute yang menargetkan Gateway Internet, dan versi terbaru melampirkannya ke subnet Anda. Untuk informasi selengkapnya, lihat Buat tabel rute kustom.

  6. Saat Anda meluncurkan EC2 instance untuk pengontrol domain, itu harus memiliki IPv4 alamat publik statis agar Anda dapat terhubung dengannyaRDP. Cara termudah untuk melakukan ini adalah dengan mengonfigurasi subnet Anda untuk menetapkan alamat publik secara otomatis. IPv4 Ini bukan pengaturan default ketika subnet dibuat. Untuk informasi selengkapnya, lihat Memodifikasi atribut IPv4 pengalamatan publik subnet Anda. Opsional, Anda dapat menetapkan alamat saat Anda meluncurkan instans tersebut. Untuk informasi selengkapnya, lihat Menetapkan IPv4 alamat publik selama peluncuran instance.

  7. Setelah selesai, catat subnet VPC dan subnet IDs Anda. Anda menggunakannya nanti ketika Anda meluncurkan pengendali domain Direktori Aktif dan klaster.

Langkah 2: Peluncuran dan menginstal pengendali domain Direktori Aktif

  1. Luncurkan EC2 instance berdasarkan Microsoft Windows Server 2016 BaseAMI. Kami merekomendasikan m4.xlarge atau tipe instans yang lebih baik. Untuk informasi selengkapnya, lihat Meluncurkan AWS Marketplace instance di Panduan EC2 Pengguna Amazon.

  2. Catat ID Grup grup keamanan yang terkait dengan EC2 instance. Anda membutuhkannya untuk Langkah 6: Luncurkan Cluster Kerberized EMR. Kami menggunakan sg-012xrlmdomain345. Atau, Anda dapat menentukan grup keamanan yang berbeda untuk EMR cluster dan instance ini yang memungkinkan lalu lintas di antara mereka. Untuk informasi selengkapnya, lihat Grup EC2 keamanan Amazon untuk instans Linux di Panduan EC2 Pengguna Amazon.

  3. Connect ke EC2 instance menggunakanRDP. Untuk informasi selengkapnya, lihat Menyambungkan ke instans Windows Anda di Panduan EC2 Pengguna Amazon.

  4. Mulai Pengelola Server untuk menginstal dan mengonfigurasi peran Layanan domain Direktori Aktif di server. Promosikan server ke pengendali domain dan tugaskan nama domain (contoh yang kita gunakan di sini adalah ad.domain.com). Catat nama domain karena Anda membutuhkannya nanti saat Anda membuat konfigurasi EMR keamanan dan cluster. Jika Anda baru dalam hal menyiapkan Direktori Aktif, Anda dapat mengikuti petunjuk di Cara mengatur Direktori Aktif (AD) di Windows Server 2016.

    Instans me-restart setelah Anda selesai.

Langkah 3: Tambahkan akun ke domain untuk EMR Cluster

RDPke pengontrol domain Active Directory untuk membuat akun di Pengguna Direktori Aktif dan Komputer untuk setiap pengguna cluster. Untuk selengkapnya, lihat Membuat Akun Pengguna di Pengguna Direktori Aktif dan Komputer di situs Microsoft Learn. Catat setiap Nama logon pengguna pengguna. Anda akan memerlukan ini ketika Anda mengonfigurasi klaster.

Selain itu, buat akun dengan hak istimewa yang cukup untuk bergabung dengan komputer ke domain. Anda menentukan akun ini ketika Anda membuat sebuah klaster. Amazon EMR menggunakannya untuk menggabungkan instance cluster ke domain. Anda menentukan akun ini dan kata sandinya di Langkah 6: Luncurkan Cluster Kerberized EMR. Untuk mendelegasikan hak istimewa bergabung komputer ke akun, kami sarankan Anda membuat grup dengan hak istimewa bergabung dan kemudian menetapkan pengguna ke grup. Untuk instruksi, lihat Mendelegasikan hak istimwwa bergabung direktori di AWS Directory Service Panduan Administrasi.

Langkah 4: Konfigurasi kepercayaan masuk pada pengendali domain Direktori Aktif

Contoh perintah di bawah ini menciptakan kepercayaan di Active Directory, yang merupakan kepercayaan ranah satu arah, masuk, non-transitif, dengan cluster-dedicated. KDC Contoh yang kita gunakan untuk ranah klaster adalah EC2.INTERNAL. Ganti KDC-FQDN dengan DNS nama Publik terdaftar untuk node EMR utama Amazon yang menghosting fileKDC. Parameter passwordt menentukan kata sandi utama lintas ranah, yang Anda tentukan bersama dengan ranah klaster saat Anda membuat klaster. Nama ranah berasal dari nama domain default di us-east-1 untuk klaster. Domain adalah domain Direktori Aktif di mana Anda menciptakan kepercayaan, yang merupakan kasus yang lebih kecil oleh konvensi. Contoh menggunakan ad.domain.com

Buka prompt perintah Windows dengan hak istimewa administrator dan ketik perintah berikut untuk membuat hubungan kepercayaan pada pengendali domain Direktori Aktif:

C:\Users\Administrator> ksetup /addkdc EC2.INTERNAL KDC-FQDN C:\Users\Administrator> netdom trust EC2.INTERNAL /Domain:ad.domain.com /add /realm /passwordt:MyVeryStrongPassword C:\Users\Administrator> ksetup /SetEncTypeAttr EC2.INTERNAL AES256-CTS-HMAC-SHA1-96

Langkah 5: Gunakan DHCP opsi yang ditetapkan untuk menentukan pengontrol domain Active Directory sebagai VPC DNS server

Sekarang bahwa Active Directory domain controller dikonfigurasi, Anda harus mengkonfigurasi VPC untuk menggunakannya sebagai server nama domain untuk resolusi nama dalam AndaVPC. Untuk melakukan ini, lampirkan set DHCP opsi. Tentukan Nama domain sebagai nama domain klaster Anda - misalnya, ec2.internal jika klaster Anda berada di us-east-1 atau region.compute.internal untuk wilayah lain. Untuk server nama Domain, Anda harus menentukan alamat IP pengontrol domain Active Directory (yang harus dapat dijangkau dari cluster) sebagai entri pertama, diikuti oleh AmazonProvidedDNS(misalnya, xx.xx.xx.xx, AmazonProvided DNS). Untuk informasi selengkapnya, lihat Mengubah set DHCP opsi.

Langkah 6: Luncurkan Cluster Kerberized EMR

  1. Di AmazonEMR, buat konfigurasi keamanan yang menentukan pengontrol domain Active Directory yang Anda buat di langkah sebelumnya. Perintah contoh ditunjukkan di bawah ini. Ganti domain, ad.domain.com, dengan nama domain yang Anda tentukan di Langkah 2: Peluncuran dan menginstal pengendali domain Direktori Aktif.

    aws emr create-security-configuration --name MyKerberosConfig \ --security-configuration '{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24, "CrossRealmTrustConfiguration": { "Realm": "AD.DOMAIN.COM", "Domain": "ad.domain.com", "AdminServer": "ad.domain.com", "KdcServer": "ad.domain.com" } } } } }'
  2. Buat klaster dengan atribut berikut:

    • Gunakan opsi --security-configuration untuk menentukan konfigurasi keamanan yang Anda buat. Kami menggunakan MyKerberosConfig dalam contoh.

    • Gunakan properti SubnetId dari --ec2-attributes option untuk menentukan subnet yang Anda buat di Langkah 1: Siapkan VPC dan subnet. Kami menggunakan step1-subnet dalam contoh.

    • Gunakan AdditionalMasterSecurityGroups dan AdditionalSlaveSecurityGroups --ec2-attributes opsi untuk menentukan bahwa grup keamanan yang terkait dengan pengontrol domain AD dari Langkah 2: Peluncuran dan menginstal pengendali domain Direktori Aktif dikaitkan dengan simpul utama klaster serta node inti dan tugas. Kami menggunakan sg-012xrlmdomain345 dalam contoh.

    Gunakan --kerberos-attributes untuk menentukan atribut Kerberos khusus klaster berikut:

    Contoh berikut meluncurkan klaster Kerberized.

    aws emr create-cluster --name "MyKerberosCluster" \ --release-label emr-5.10.0 \ --instance-type m5.xlarge \ --instance-count 3 \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2KeyPair,\ SubnetId=step1-subnet, AdditionalMasterSecurityGroups=sg-012xrlmdomain345, AdditionalSlaveSecurityGroups=sg-012xrlmdomain345\ --service-role EMR_DefaultRole \ --security-configuration MyKerberosConfig \ --applications Name=Hadoop Name=Hive Name=Oozie Name=Hue Name=HCatalog Name=Spark \ --kerberos-attributes Realm=EC2.INTERNAL,\ KdcAdminPassword=MyClusterKDCAdminPwd,\ ADDomainJoinUser=ADUserLogonName,ADDomainJoinPassword=ADUserPassword,\ CrossRealmTrustPrincipalPassword=MatchADTrustPwd

Langkah 7: Buat HDFS pengguna dan atur izin di cluster untuk akun Active Directory

Saat menyiapkan hubungan kepercayaan dengan Active Directory, Amazon EMR membuat pengguna Linux di cluster untuk setiap akun Active Directory. Misalnya, nama logon pengguna LiJuan di Active Directory memiliki akun Linux. lijuan Nama pengguna Direktori Aktif dapat berisi huruf besar, tetapi Linux tidak menerima casing Direktori Aktif.

Untuk memungkinkan pengguna Anda masuk ke cluster untuk menjalankan pekerjaan Hadoop, Anda harus menambahkan direktori HDFS pengguna untuk akun Linux mereka, dan memberikan setiap pengguna kepemilikan direktori mereka. Untuk melakukannya, kami merekomendasikan Anda menjalankan script yang disimpan ke Amazon S3 sebagai langkah klaster. Atau, Anda dapat menjalankan perintah dalam skrip di bawah ini dari baris perintah pada node utama. Gunakan EC2 key pair yang Anda tentukan saat Anda membuat cluster untuk terhubung ke node utama SSH sebagai pengguna Hadoop. Untuk informasi selengkapnya, lihat Menggunakan EC2 key pair untuk SSH kredensyal.

Jalankan perintah berikut untuk menambahkan langkah ke cluster yang menjalankan skrip, AddHDFSUsers.sh.

aws emr add-steps --cluster-id <j-2AL4XXXXXX5T9> \ --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\ Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://DOC-EXAMPLE-BUCKET/AddHDFSUsers.sh"]

Isi file AddHDFSUsers.sh adalah sebagai berikut.

#!/bin/bash # AddHDFSUsers.sh script # Initialize an array of user names from AD or Linux users and KDC principals created manually on the cluster ADUSERS=("lijuan" "marymajor" "richardroe" "myusername") # For each user listed, create an HDFS user directory # and change ownership to the user for username in ${ADUSERS[@]}; do hdfs dfs -mkdir /user/$username hdfs dfs -chown $username:$username /user/$username done

Grup Direktori Aktif dipetakan ke grup Hadoop

Amazon EMR menggunakan Daemon (SSD) Layanan Keamanan Sistem untuk memetakan grup Active Directory ke grup Hadoop. Untuk mengonfirmasi pemetaan grup, setelah Anda masuk ke node utama seperti yang dijelaskanMenggunakan SSH untuk terhubung ke cluster Kerberized, Anda dapat menggunakan hdfs groups perintah untuk mengonfirmasi bahwa grup Active Directory yang menjadi milik akun Active Directory Anda telah dipetakan ke grup Hadoop untuk pengguna Hadoop yang sesuai di cluster. Anda juga dapat memeriksa pemetaan grup pengguna lain dengan menentukan satu nama pengguna atau lebih dengan perintah, misalnya hdfs groups lijuan. Untuk informasi selengkapnya, lihat grup di Panduan HDFS Perintah Apache.