Kullanıcıları Apache Ambari Görünümleri için yetkilendirme

Kurumsal Güvenlik Paketi (ESP) özellikli HDInsight kümeleri , Microsoft Entra ID tabanlı kimlik doğrulaması da dahil olmak üzere kurumsal düzeyde özellikler sağlar. Kümeye erişim sağlanan Microsoft Entra gruplarına eklenen yeni kullanıcıları eşitleyerek belirli kullanıcıların belirli eylemleri gerçekleştirmesini sağlayabilirsiniz. Apache Ambari'de kullanıcılar, gruplar ve izinlerle çalışmak hem ESP HDInsight kümeleri hem de standart HDInsight kümeleri için desteklenir.

Active Directory kullanıcıları etki alanı kimlik bilgilerini kullanarak küme düğümlerinde oturum açabilir. Ayrıca Hue, Ambari Görünümleri, ODBC, JDBC, PowerShell ve REST API'leri gibi onaylı diğer uç noktalarla küme etkileşimlerinin kimliğini doğrulamak için etki alanı kimlik bilgilerini kullanabilirler.

Uyarı

Linux tabanlı HDInsight kümenizde Ambari watchdog (hdinsightwatchdog) parolasını değiştirmeyin. Parolanın değiştirilmesi, betik eylemlerini kullanma veya kümenizle ölçeklendirme işlemleri gerçekleştirme özelliğini bozar.

Henüz yapmadıysanız, yeni bir ESP kümesi sağlamak için bu yönergeleri izleyin.

Ambari yönetim sayfasına erişme

Apache Ambari Web kullanıcı arabiriminde Ambari yönetim sayfasına ulaşmak için https://CLUSTERNAME.azurehdinsight.netadresine gidin. Kümeyi oluştururken tanımladığınız küme yöneticisi kullanıcı adını ve parolasını girin. Ardından Ambari panosundan yönetici menüsünün altında Ambari'yi Yönet'i seçin:

Apache Ambari dashboard manage.

Kullanıcı ekle

Portal üzerinden kullanıcı ekleme

  1. Yönetim sayfasında Kullanıcılar'ı seçin.

    Apache Ambari management page users.

  2. + Yerel Kullanıcı Oluştur'u seçin.

  3. Kullanıcı adı ve parola girin. Kaydet'i seçin.

PowerShell aracılığıyla kullanıcı ekleme

, NEWUSERve PASSWORD değerlerini uygun değerlerle değiştirerek CLUSTERNAMEaşağıdaki değişkenleri düzenleyin.

# 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

Curl aracılığıyla kullanıcı ekleme

, , ADMINPASSWORDNEWUSERve USERPASSWORD değerlerini uygun değerlerle değiştirerek CLUSTERNAMEaşağıdaki değişkenleri düzenleyin. Betik bash ile yürütülecek şekilde tasarlanmıştır. Windows komut istemi için küçük değişiklikler gerekebilir.

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"

Apache Hive görünümlerine izin verme

Ambari, Diğerlerinin yanında Apache Hive ve Apache TEZ için görünüm örnekleriyle birlikte gelir. Bir veya daha fazla Hive görünümü örneğine erişim vermek için Ambari yönetim sayfasına gidin.

  1. Yönetim sayfasından soldaki Görünümler menü başlığının altındaki Görünümler bağlantısını seçin.

    Apache Ambari views view links.

  2. Görünümler sayfasında HIVE satırını genişletin. Hive hizmeti kümeye eklendiğinde oluşturulan bir varsayılan Hive görünümü vardır. Gerektiğinde daha fazla Hive görünümü örneği de oluşturabilirsiniz. Hive görünümü seçin:

    HDInsight Views - Apache Hive view.

  3. Görünüm sayfasının en altına doğru kaydırın. İzinler bölümünde, etki alanı kullanıcılarına görünüm izinleri vermek için iki seçeneğiniz vardır:

Bu kullanıcılara izin verGrant permission to these users.

Bu gruplara izin verGrant permission to these groups.

  1. Kullanıcı eklemek için Kullanıcı Ekle düğmesini seçin.

    • Kullanıcı adını yazmaya başladığınızda, önceden tanımlanmış adların bir açılan listesini görürsünüz.

      Apache Ambari user auto completes.

    • Kullanıcı adını seçin veya yazmayı tamamlayın. Bu kullanıcı adını yeni kullanıcı olarak eklemek için Yeni düğmesini seçin.

    • Değişikliklerinizi kaydetmek için mavi onay kutusunu seçin.

      Apache Ambari grant user permissions.

  2. Grup eklemek için Grup Ekle düğmesini seçin.

    • Grup adını yazmaya başlayın. Mevcut bir grup adını seçme veya yeni grup ekleme işlemi, kullanıcı ekleme işlemiyle aynıdır.

    • Değişikliklerinizi kaydetmek için mavi onay kutusunu seçin.

      Apache Ambari grant permissions.

Kullanıcıları doğrudan görünüme eklemek, bir kullanıcıya bu görünümü kullanması için izinler atamak istediğinizde, ancak ek izinlere sahip bir grubun üyesi olmalarını istemediğinizde yararlıdır. Yönetim yükü miktarını azaltmak için gruplara izin atamak daha kolay olabilir.

Apache TEZ görünümlerine izin verme

Apache TEZ görünüm örnekleri, kullanıcıların Apache Hive sorguları ve Apache Pig betikleri tarafından gönderilen tüm Tez işlerini izlemesine ve hatalarını ayıklamasına olanak tanır. Küme sağlandığında oluşturulan bir varsayılan Tez görünümü örneği vardır.

Kullanıcıları ve grupları Bir Tez görünümü örneğine atamak için, daha önce açıklandığı gibi Görünümler sayfasındaki TEZ satırını genişletin.

HDInsight Views - Apache Tez view.

Kullanıcı veya grup eklemek için önceki bölümde 3- 5. adımları yineleyin.

Rollere kullanıcı atama

Kullanıcılar ve gruplar için erişim izinlerini azaltma sırasına göre listelenen beş güvenlik rolü vardır:

  • Küme Yönetici Istrator
  • Küme İşleci
  • Hizmet Yöneticisi
  • Hizmet İşleci
  • Küme Kullanıcısı

Rolleri yönetmek için Ambari yönetim sayfasına gidin ve soldaki Kümeler menü grubunda Roller bağlantısını seçin.

Apache Ambari roles menu links.

Her role verilen izinlerin listesini görmek için Roller sayfasındaki Roller tablosu üst bilgisinin yanındaki mavi soru işaretine tıklayın.

Apache Ambari roles menu link permissions.

Bu sayfada, kullanıcılar ve gruplar için rolleri yönetmek için kullanabileceğiniz iki farklı görünüm vardır: Engelle ve Listele.

Blok görünümü

Engelle görünümü her rolü kendi satırında görüntüler ve daha önce açıklandığı gibi Bu kullanıcılara rol atama ve Bu gruplara rol atama seçeneklerini sağlar.

Apache Ambari roles block view.

Liste görünümü

Liste görünümü iki kategoride hızlı düzenleme özellikleri sağlar: Kullanıcılar ve Gruplar.

  • Liste görünümünün Kullanıcılar kategorisi, tüm kullanıcıların listesini görüntüleyerek açılan listedeki her kullanıcı için bir rol seçmenize olanak tanır.

    Apache Ambari roles list view - users.

  • Liste görünümünün Gruplar kategorisi tüm grupları ve her gruba atanan rolü görüntüler. Örneğimizde grup listesi, kümenin Etki Alanı ayarlarının Access kullanıcı grubu özelliğinde belirtilen Microsoft Entra gruplarından eşitlenir. Bkz. ESP etkinken HDInsight kümesi oluşturma.

    Apache Ambari roles list view - groups.

    Yukarıdaki görüntüde , "hiveusers" grubuna Küme Kullanıcısı rolü atanır. Bu, söz konusu grubun kullanıcılarının hizmet yapılandırmalarını ve küme ölçümlerini görüntülemesine ancak değiştirmesine izin veren salt okunur bir roldür.

Ambari'de yalnızca görüntüleme kullanıcısı olarak oturum açma

Microsoft Entra etki alanı kullanıcı "hiveuser1" izinlerimizi Hive ve Tez görünümlerine atadık. Ambari Web kullanıcı arabirimini başlatıp bu kullanıcının etki alanı kimlik bilgilerini (e-posta biçiminde Microsoft Entra kullanıcı adı ve parola) girdiğimizde, kullanıcı Ambari Görünümleri sayfasına yönlendirilir. Buradan, kullanıcı herhangi bir erişilebilir görünümü seçebilir. Kullanıcı pano, hizmetler, konaklar, uyarılar veya yönetici sayfaları dahil olmak üzere sitenin başka bir bölümünü ziyaret edemez.

Apache Ambari user with views only.

Ambari'de küme kullanıcısı olarak oturum açma

Microsoft Entra etki alanı kullanıcımız "hiveuser2" öğesini Küme Kullanıcısı rolüne atadık. Bu rol panoya ve tüm menü öğelerine erişebilir. Küme kullanıcılarının izin verilen seçenekleri yöneticiden daha azdır. Örneğin hiveuser2, hizmetlerin her birinin yapılandırmalarını görüntüleyebilir, ancak düzenleyemez.

Apache Ambari dashboard display.

Sonraki adımlar