

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
<a name="emr-kerberos-cross-realm"></a>

Ketika Anda mengatur kepercayaan lintas ranah, Anda mengizinkan utama (biasanya pengguna) dari ranah Kerberos yang berbeda untuk mengautentikasi komponen aplikasi pada klaster EMR. *Pusat distribusi kunci (KDC)* khusus klaster menetapkan hubungan kepercayaan dengan KDC lain menggunakan *utama lintas ranah* yang ada di kedua KDC. Nama utama dan kata sandi sangat cocok.

Kepercayaan lintas ranah mengharuskan KDC dapat mencapai satu sama lain melalui jaringan dan menyelesaikan nama domain masing-masing. Langkah-langkah untuk membangun hubungan kepercayaan lintas ranah dengan pengendali domain Microsoft AD berjalan sebagai instans EC2 disediakan di bawah ini, bersama dengan pengaturan jaringan contoh yang menyediakan konektivitas dan resolusi nama domain yang diperlukan. Setiap pengaturan jaringan yang mengizinkan lalu lintas jaringan yang diperlukan antara KDC dapat diterima.

Opsional, setelah Anda membuat kepercayaan lintas ranah dengan Direktori Aktif menggunakan KDC pada satu klaster, Anda dapat membuat klaster lain menggunakan konfigurasi keamanan yang berbeda untuk referensi KDC pada klaster pertama sebagai KDC eksternal. Untuk konfigurasi keamanan dan pengaturan klaster contoh, lihat [KDC klaster eksternal dengan kepercayaan lintas ranah Direktori Aktif](emr-kerberos-config-examples.md#emr-kerberos-example-extkdc-ad-trust).

Untuk informasi lebih lanjut tentang support Amazon EMR untuk Kerberos dan KDC, serta tautan ke Dokumentasi MIT Kerberos, lihat [Gunakan Kerberos untuk otentikasi dengan Amazon EMR](emr-kerberos.md).

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

[Langkah 1: Mengatur VPC dan subnet](#emr-kerberos-ad-network)

[Langkah 2: Peluncuran dan menginstal pengendali domain Direktori Aktif](#emr-kerberos-ad-dc)

[Langkah 3: Tambahkan akun ke domain untuk EMR Cluster](#emr-kerberos-ad-users)

[Langkah 4: Konfigurasi kepercayaan masuk pada pengendali domain Direktori Aktif](#emr-kerberos-ad-configure-trust)

[Langkah 5: Gunakan opsi DHCP yang ditetapkan untuk menentukan pengendali domain Direktori Aktif sebagai server DNS VPC](#emr-kerberos-ad-DHCP)

[Langkah 6: Meluncurkan klaster EMR Kerberized](#emr-kerberos-ad-cluster)

[Langkah 7: Buat pengguna HDFS dan atur izin di cluster untuk akun Active Directory](#emr-kerberos-ad-hadoopuser)

## Langkah 1: Mengatur VPC dan subnet
<a name="emr-kerberos-ad-network"></a>

Langkah-langkah berikut menunjukkan menciptakan VPC dan subnet sehingga KDC klaster khusus dapat mencapai pengendali domain Direktori Aktif dan menyelesaikan nama domain. Di langkah-langkah ini, resolusi nama domain disediakan oleh referensi pengendali domain Direktori Aktif sebagai server nama domain di DHCP pilihan ditetapkan. Untuk informasi selengkapnya, lihat [Langkah 5: Gunakan opsi DHCP yang ditetapkan untuk menentukan pengendali domain Direktori Aktif sebagai server DNS VPC](#emr-kerberos-ad-DHCP).

Pengendali domain KDC dan Direktori Aktif harus mampu menyelesaikan nama domain satu sama lain. Hal ini memungkinkan Amazon EMR untuk bergabung dengan komputer ke domain dan secara otomatis mengkonfigurasi akun Linux yang sesuai dan parameter SSH pada instance cluster. 

Jika Amazon EMR tidak dapat menyelesaikan nama domain, Anda dapat membuat referensi pada kepercayaan menggunakan alamat IP pengendali domain Direktori Aktif. Namun, Anda harus menambahkan akun Linux secara manual, menambahkan prinsip yang sesuai ke KDC khusus cluster, dan mengkonfigurasi SSH.

**Untuk mengatur VPC dan subnet**

1. Buat Amazon VPC dengan subnet publik tunggal Untuk informasi selengkapnya, lihat [Langkah 1: Buat VPC](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/getting-started-ipv4.html#getting-started-create-vpc) di *Panduan Memulai Amazon VPC*.
**penting**  
Saat Anda menggunakan pengontrol domain Microsoft Active Directory, pilih blok CIDR untuk cluster EMR sehingga semua alamat IPv4 panjangnya kurang dari sembilan karakter (misalnya, 10.0.0. 0/16). Ini karena nama DNS komputer cluster digunakan ketika komputer bergabung dengan direktori Active Directory. AWS menetapkan [nama host DNS](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-hostnames) berdasarkan alamat IPv4 dengan cara yang alamat IP yang lebih panjang dapat menghasilkan nama DNS lebih 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.

1. Menghapus opsi default DHCP yang ditetapkan untuk VPC. Untuk informasi selengkapnya, lihat [Mengubah VPC untuk menggunakan opsi tidak menggunakan DHCP](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html#DHCP_Use_No_Options). Kemudian, Anda menambahkan yang baru yang menentukan pengendali domain Direktori Aktif sebagai server DNS. 

1. Mengonfirmasi bahwa support DNS diaktifkan untuk VPC, yaitu Hostnames DNS dan Resolusi DNS keduanya diaktifkan. Mereka diaktifkan secara default. Untuk informasi selengkapnya, lihat [Memperbarui support DNS untuk VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating).

1. Mengonfirmasi bahwa VPC Anda memiliki gateway internet terlampir, yang merupakan default. Untuk informasi selengkapnya, lihat [Membuat dan melampirkan gateway internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Attach_Gateway).
**catatan**  
Gateway internet digunakan di contoh ini karena Anda membuat pengendali domain baru untuk VPC. Gateway internet mungkin tidak diperlukan untuk aplikasi Anda. Satu-satunya persyaratan adalah bahwa KDC khusus klaster dapat mengakses pengendali domain Direktori Aktif.

1. 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](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Routing).

1. Ketika Anda meluncurkan instans EC2 untuk pengendali domain, itu harus memiliki alamat IPv4 publik statis bagi Anda untuk connect dalam menggunakan RDP. Cara termudah untuk melakukannya adalah mengonfigurasi subnet Anda untuk menetapkan alamat IPv4 publik secara otomatis. Ini bukan pengaturan default ketika subnet dibuat. Untuk informasi selengkapnya, lihat [Memodifikasi atribut pengalamatan IPv4 publik untuk subnet Anda](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip). Opsional, Anda dapat menetapkan alamat saat Anda meluncurkan instans tersebut. Untuk informasi selengkapnya, lihat [Menugaskan alamat IPv4 publik selama peluncuran instans](https://docs.aws.amazon.com/vpc/latest/userguide/using-instance-addressing.html#public-ip-addresses).

1. Setelah selesai, buat catatan VPC dan subnet ID Anda. Anda menggunakannya nanti ketika Anda meluncurkan pengendali domain Direktori Aktif dan klaster.

## Langkah 2: Peluncuran dan menginstal pengendali domain Direktori Aktif
<a name="emr-kerberos-ad-dc"></a>

1. Peluncuran instans EC2 berdasarkan Microsoft Windows Server 2016 Base AMI. Kami merekomendasikan m4.xlarge atau tipe instans yang lebih baik. Untuk informasi selengkapnya, lihat [Meluncurkan AWS Marketplace instans](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/launch-marketplace-console.html) di *Panduan Pengguna Amazon EC2*.

1. Membuat catatan ID grup dari grup keamanan yang terkait dengan instans EC2. Anda membutuhkannya untuk [Langkah 6: Meluncurkan klaster EMR Kerberized](#emr-kerberos-ad-cluster). Kami menggunakan{{sg-012xrlmdomain345}}. Atau, Anda dapat menentukan grup keamanan yang berbeda untuk klaster EMR dan instans ini yang mengizinkan lalu lintas antara mereka. Untuk informasi selengkapnya, lihat [Grup Keamanan Amazon EC2 untuk instans Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html) di *Panduan Pengguna Amazon EC2*.

1. Connect ke instans EC2 menggunakan RDP. Untuk informasi selengkapnya, lihat [Menyambungkan ke instans Windows Anda](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html) di *Panduan Pengguna Amazon EC2*.

1. 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}}`). Membuat catatan nama domain karena Anda memerlukannya nanti ketika Anda membuat konfigurasi keamanan EMR dan klaster. Jika Anda baru dalam hal menyiapkan Direktori Aktif, Anda dapat mengikuti petunjuk di [Cara mengatur Direktori Aktif (AD) di Windows Server 2016](https://ittutorials.net/microsoft/windows-server-2016/setting-up-active-directory-ad-in-windows-server-2016/).

   Instans me-restart setelah Anda selesai.

## Langkah 3: Tambahkan akun ke domain untuk EMR Cluster
<a name="emr-kerberos-ad-users"></a>

RDP ke 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](https://technet.microsoft.com/en-us/library/dd894463(v=ws.10).aspx) 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 instans klaster untuk domain. Anda menentukan akun ini dan kata sandinya di [Langkah 6: Meluncurkan klaster EMR Kerberized](#emr-kerberos-ad-cluster). 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](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_join_privileges.html) di *AWS Directory Service Panduan Administrasi*.

## Langkah 4: Konfigurasi kepercayaan masuk pada pengendali domain Direktori Aktif
<a name="emr-kerberos-ad-configure-trust"></a>

Perintah contoh di bawah ini membuat kepercayaan di Direktori Aktif, yang merupakan satu arah, masuk, non-transitif, kepercayaan ranah dengan KDC khusus klaster. Contoh yang kita gunakan untuk ranah klaster adalah `{{EC2.INTERNAL}}`. Ganti {{KDC-FQDN}} dengan nama **DNS Publik** yang terdaftar untuk simpul utama Amazon EMR yang menghosting KDC. 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 opsi DHCP yang ditetapkan untuk menentukan pengendali domain Direktori Aktif sebagai server DNS VPC
<a name="emr-kerberos-ad-DHCP"></a>

Sekarang bahwa pengendali domain Direktori Aktif dikonfigurasi, Anda harus mengonfigurasi VPC untuk menggunakannya sebagai server nama domain untuk resolusi nama di VPC Anda. Untuk melakukannya, lampirkan set opsi DHCP. 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 [Mengganti set opsi DHCP](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html#DHCPOptions).

## Langkah 6: Meluncurkan klaster EMR Kerberized
<a name="emr-kerberos-ad-cluster"></a>

1. Di Amazon EMR, buat konfigurasi keamanan yang menentukan pengendali domain Direktori Aktif yang Anda buat di langkah-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](#emr-kerberos-ad-dc).

   ```
   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}}"
           }
         }
       }
     }
   }'
   ```

1. Buat klaster dengan atribut berikut:
   + Gunakan opsi `--security-configuration` untuk menentukan konfigurasi keamanan yang Anda buat. Kami gunakan {{MyKerberosConfig}} dalam contoh.
   + Gunakan properti `SubnetId` dari `--ec2-attributes option` untuk menentukan subnet yang Anda buat di [Langkah 1: Mengatur VPC dan subnet](#emr-kerberos-ad-network). Kami gunakan {{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](#emr-kerberos-ad-dc) dikaitkan dengan simpul utama klaster serta node inti dan tugas. Kami gunakan {{sg-012xrlmdomain345}} dalam contoh.

   Gunakan `--kerberos-attributes` untuk menentukan atribut Kerberos khusus klaster berikut:
   + Ranah untuk klaster yang Anda tentukan ketika Anda mengatur pengendali domain Direktori Aktif.
   + Kata sandi utama kepercayaan lintas ranah yang Anda tentukan sebagai `passwordt` di [Langkah 4: Konfigurasi kepercayaan masuk pada pengendali domain Direktori Aktif](#emr-kerberos-ad-configure-trust).
   + `KdcAdminPassword`, yang dapat Anda gunakan untuk mengelola KDC khusus klaster.
   + Nama logon dan kata sandi pengguna akun Direktori Aktif dengan hak istimewa gabungan komputer yang Anda buat di [Langkah 3: Tambahkan akun ke domain untuk EMR Cluster](#emr-kerberos-ad-users).

   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 pengguna HDFS dan atur izin di cluster untuk akun Active Directory
<a name="emr-kerberos-ad-hadoopuser"></a>

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 pengguna HDFS 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 key pair EC2 yang Anda tentukan ketika Anda membuat cluster untuk terhubung ke node utama melalui SSH sebagai pengguna Hadoop. Untuk informasi selengkapnya, lihat [Menggunakan key pair EC2 untuk kredensyal SSH untuk Amazon EMR](emr-plan-access-ssh.md).

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://{{amzn-s3-demo-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
<a name="emr-kerberos-ad-group"></a>

Amazon EMR menggunakan System Security Services Daemon (SSD) untuk memetakan grup Direktori Aktif untuk grup Hadoop. Untuk mengonfirmasi pemetaan grup, setelah Anda masuk ke node utama seperti yang dijelaskan[Menggunakan SSH untuk terhubung ke cluster Kerberized dengan Amazon EMR](emr-kerberos-connect-ssh.md), 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](https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html#groups) di [Panduan Perintah HDFS Apache](https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html).