Otoriasi pengguna untuk Apache Ambari Views
Kluster HDInsight berkemampuan Enterprise Security Package (ESP) menyediakan kemampuan tingkat perusahaan, termasuk autentikasi berbasis ID Microsoft Entra. Anda dapat menyinkronkan pengguna baru yang ditambahkan ke grup Microsoft Entra yang telah disediakan akses ke kluster, memungkinkan pengguna tertentu tersebut melakukan tindakan tertentu. Bekerja dengan pengguna, grup, dan izin di Apache Ambari didukung untuk kluster ESP HDInsight dan kluster HDInsight standar.
Pengguna Active Directory dapat masuk ke simpul kluster menggunakan info masuk domain mereka. Mereka juga dapat menggunakan info masuk domain mereka untuk mengautentikasi interaksi kluster dengan titik akhir lain yang disetujui seperti Hue, Ambari Views, ODBC, JDBC, PowerShell, dan REST API.
Peringatan
Jangan mengubah kata sandi pengawas Ambari (hdinsightwatchdog) di kluster HDInsight berbasis Linux Anda. Pengubahan sandi mematahkan kemampuan untuk menggunakan tindakan skrip atau melakukan operasi penskalaan dengan kluster Anda.
Jika Anda belum melakukannya, ikuti petunjuk ini untuk memprovisikan kluster ESP baru.
Mengakses halaman manajemen Ambari
Untuk sampai ke halaman manajemen Ambari di Apache Ambari Web UI, telusuri ke https://CLUSTERNAME.azurehdinsight.net
. Masukkan nama pengguna dan kata sandi administrator kluster yang Anda tentukan saat membuat kluster. Selanjutnya, dari dasbor Ambari, pilih Kelola Ambari di bawah menu admin:
Tambah pengguna
Menambahkan pengguna melalui portal
Dari halaman manajemen, pilih Pengguna.
Pilih + Buat Pengguna Lokal.
Berikan Nama Pengguna dan kata sandi. Pilih Simpan.
Menambahkan pengguna melalui PowerShell
Edit variabel di bawah ini dengan mengganti CLUSTERNAME
, NEWUSER
, dan PASSWORD
dengan nilai yang sesuai.
# Set-ExecutionPolicy Unrestricted
# Begin user input; update values
$clusterName="CLUSTERNAME"
$user="NEWUSER"
$userpass='PASSWORD'
# End user input
$adminCredentials = Get-Credential -UserName "admin" -Message "Enter admin password"
$clusterName = $clusterName.ToLower()
$createUserUrl="https://$($clusterName).azurehdinsight.net/api/v1/users"
$createUserBody=@{
"Users/user_name" = "$user"
"Users/password" = "$userpass"
"Users/active" = "$true"
"Users/admin" = "$false"
} | ConvertTo-Json
# Create user
$statusCode =
Invoke-WebRequest `
-Uri $createUserUrl `
-Credential $adminCredentials `
-Method POST `
-Headers @{"X-Requested-By" = "ambari"} `
-Body $createUserBody | Select-Object -Expand StatusCode
if ($statusCode -eq 201) {
Write-Output "User is created: $user"
}
else
{
Write-Output 'User is not created'
Exit
}
$grantPrivilegeUrl="https://$($clusterName).azurehdinsight.net/api/v1/clusters/$($clusterName)/privileges"
$grantPrivilegeBody=@{
"PrivilegeInfo" = @{
"permission_name" = "CLUSTER.USER"
"principal_name" = "$user"
"principal_type" = "USER"
}
} | ConvertTo-Json
# Grant privileges
$statusCode =
Invoke-WebRequest `
-Uri $grantPrivilegeUrl `
-Credential $adminCredentials `
-Method POST `
-Headers @{"X-Requested-By" = "ambari"} `
-Body $grantPrivilegeBody | Select-Object -Expand StatusCode
if ($statusCode -eq 201) {
Write-Output 'Privilege is granted'
}
else
{
Write-Output 'Privilege is not granted'
Exit
}
Write-Host "Pausing for 100 seconds"
Start-Sleep -s 100
$userCredentials = "$($user):$($userpass)"
$encodedUserCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($userCredentials))
$zookeeperUrlHeaders = @{ Authorization = "Basic $encodedUserCredentials" }
$getZookeeperurl="https://$($clusterName).azurehdinsight.net/api/v1/clusters/$($clusterName)/services/ZOOKEEPER/components/ZOOKEEPER_SERVER"
# Perform query with new user
$zookeeperHosts =
Invoke-WebRequest `
-Uri $getZookeeperurl `
-Method Get `
-Headers $zookeeperUrlHeaders
Write-Output $zookeeperHosts
Menambahkan pengguna melalui Curl
Edit variabel di bawah ini dengan mengganti CLUSTERNAME
, ADMINPASSWORD
, NEWUSER
, dan USERPASSWORD
dengan nilai yang sesuai. Skrip ini dirancang untuk dieksekusi dengan bash. Prompt perintah Windows akan memerlukan sedikit modifikasi.
export CLUSTER_NAME="CLUSTERNAME"
export ADMIN_PASSWORD='ADMINPASSWORD'
export USER="NEWUSER"
export USER_PASSWORD='USERPASSWORD'
# create user
curl -k -u admin:$ADMIN_PASSWORD -H "X-Requested-By: ambari" -X POST \
-d "{\"Users/user_name\":\"$USER\",\"Users/password\":\"$USER_PASSWORD\",\"Users/active\":\"true\",\"Users/admin\":\"false\"}" \
https://$CLUSTER_NAME.azurehdinsight.net/api/v1/users
echo "user created: $USER"
# grant permissions
curl -k -u admin:$ADMIN_PASSWORD -H "X-Requested-By: ambari" -X POST \
-d '[{"PrivilegeInfo":{"permission_name":"CLUSTER.USER","principal_name":"'$USER'","principal_type":"USER"}}]' \
https://$CLUSTER_NAME.azurehdinsight.net/api/v1/clusters/$CLUSTER_NAME/privileges
echo "Privilege is granted"
echo "Pausing for 100 seconds"
sleep 10s
# perform query using new user account
curl -k -u $USER:$USER_PASSWORD -H "X-Requested-By: ambari" \
-X GET "https://$CLUSTER_NAME.azurehdinsight.net/api/v1/clusters/$CLUSTER_NAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER"
Memberikan izin ke tampilan Apache Hive
Ambari hadir dengan instans tampilan untuk Apache Hive dan Apache TEZ, di antaranya. Untuk memberikan akses ke satu atau beberapa instans tampilan Apache Hive, buka halaman manajemen Ambari.
Dari halaman manajemen, pilih tautan Tampilan di bawah judul menu Tampilan di sebelah kiri.
Pada halaman Tampilan, perluas baris HIVE. Ada satu tampilan Apache Hive default yang dibuat ketika layanan Apache Hive ditambahkan ke kluster. Anda juga dapat membuat lebih banyak instans tampilan Apache Hive sesuai kebutuhan. Pilih tampilan Apache Hive:
Gulir ke bagian bawah halaman Tampilan. Di bawah bagian Izin, Anda memiliki dua opsi untuk memberikan izin kepada pengguna domain ke tampilan:
Berikan izin kepada pengguna ini
Memberikan izin ke grup ini
Untuk menambahkan pengguna, pilih tombol Tambahkan Pengguna.
Mulailah mengetik nama pengguna dan Anda akan melihat daftar dropdown nama yang ditentukan sebelumnya.
Pilih, atau selesaikan mengetik, nama pengguna. Untuk menambahkan nama pengguna ini sebagai pengguna baru, pilih tombol Baru.
Untuk menyimpan perubahan Anda, pilih kotak centang biru.
Untuk menambahkan grup, pilih tombol Tambahkan Grup.
Mulai mengetik nama grup. Proses memilih nama grup yang sudah ada, atau menambahkan grup baru, sama dengan menambahkan pengguna.
Untuk menyimpan perubahan Anda, pilih kotak centang biru.
Menambahkan pengguna langsung ke tampilan berguna saat Anda ingin menetapkan izin kepada pengguna untuk menggunakan tampilan itu, tetapi tidak ingin mereka menjadi anggota grup yang memiliki izin tambahan. Untuk mengurangi jumlah biaya tambahan ministratif, mungkin lebih mudah untuk menetapkan izin ke grup.
Memberikan izin ke tampilan TEZ Apache
Instans tampilan Apache TEZ memungkinkan pengguna untuk memantau dan men-debug semua pekerjaan Tez, yang dikirimkan oleh kueri Apache Hive dan skrip Apache Pig. Ada satu instans tampilan Tez default yang dibuat saat kluster di-provisikan.
Untuk menetapkan pengguna dan grup ke instans tampilan Tez, perluas baris TEZ di halaman Tampilan, seperti yang dijelaskan sebelumnya.
Untuk menambahkan pengguna atau grup, ulangi langkah 3 - 5 di bagian sebelumnya.
Menetapkan pengguna ke peran
Ada lima peran keamanan untuk pengguna dan grup, yang tercantum dalam rangka mengurangi izin akses:
- Administrator Kluster
- Operator Kluster
- Administrator Layanan
- Operator Layanan
- Pengguna Kluster
Untuk mengelola peran, buka halaman manajemen Ambari, lalu pilih tautan Peran di dalam grup menu Kluster di sebelah kiri.
Untuk melihat daftar izin yang diberikan untuk setiap peran, klik tanda tanya biru di samping header tabel Peran di halaman Peran.
Di halaman ini, ada dua tampilan berbeda yang bisa Anda gunakan untuk mengelola peran bagi pengguna dan grup: Blokir dan Daftar.
Tampilan blok
Tampilan Blok menampilkan setiap peran di barisnya sendiri, dan menyediakan opsi Tetapkan peran untuk pengguna ini dan Tetapkan peran ke grup ini seperti yang dijelaskan sebelumnya.
Tampilan daftar
Tampilan Daftar menyediakan kapabilitas pengeditan cepat dalam dua kategori: Pengguna dan Grup.
Kategori Pengguna dari tampilan Daftar menampilkan daftar semua pengguna sehingga memungkinkan Anda memilih peran untuk setiap pengguna di daftar dropdown.
Kategori Grup dari tampilan Daftar menampilkan semua grup, dan peran yang ditetapkan untuk setiap grup. Dalam contoh kami, daftar grup disinkronkan dari grup Microsoft Entra yang ditentukan dalam properti Grup pengguna Access dari pengaturan Domain kluster. Lihat Membuat kluster HDInsight dengan ESP yang diaktifkan.
Pada gambar di atas, grup "hiveusers" ditetapkan peran Pengguna Kluster. Ini adalah peran baca-saja yang memungkinkan pengguna grup tersebut untuk melihat tetapi tidak mengubah konfigurasi layanan dan metrik kluster.
Masuk ke Ambari sebagai pengguna lihat-saja
Kami telah menetapkan izin "hiveuser1" pengguna domain Microsoft Entra kami ke tampilan Apache Hive dan Tez. Saat kami meluncurkan Ambari Web UI dan memasukkan kredensial domain pengguna ini (nama pengguna Microsoft Entra dalam format email, dan kata sandi), pengguna dialihkan ke halaman Tampilan Ambari. Dari sini, pengguna dapat memilih tampilan yang dapat diakses. Pengguna tidak dapat mengunjungi bagian lain dari situs, termasuk dasbor, layanan, host, pemberitahuan, atau halaman admin.
Masuk ke Ambari sebagai pengguna kluster
Kami telah menetapkan pengguna domain Microsoft Entra kami "hiveuser2" ke peran Pengguna Kluster. Peran ini mampu mengakses dasbor dan semua item menu. Pengguna kluster memiliki lebih sedikit opsi yang diizinkan daripada administrator. Misalnya, hiveuser2 dapat melihat konfigurasi untuk setiap layanan, tetapi tidak dapat mengeditnya.
Langkah berikutnya
- Konfigurasikan kebijakan Apache Hive di Microsoft Azure HDInsight dengan Paket Keamanan Perusahaan
- Mengelola kluster ESP HDInsight
- Menggunakan Apache Hive View dengan Apache Hadoop di HDInsight
- Menyinkronkan pengguna Microsoft Entra ke kluster
- Lihat juga, Mengelola kluster HDInsight menggunakan Apache Ambari REST API