Küme yapılandırmaları için ayrıntılı rol tabanlı erişime geçme

Hassas bilgiler elde etmek için daha ayrıntılı rol tabanlı erişimi desteklemek için bazı önemli değişiklikler sunuyoruz. Bu değişikliklerin bir parçası olarak, etkilenen varlıklardan/senaryolardan birini kullanıyorsanız 3 Eylül 2019'a kadar bazı eylemler gerekebilir.

Değişenler

Daha önce, sahip, katkıda bulunan veya Okuyucu Azure rollerine sahip olan küme kullanıcıları, izni olan herkes */read tarafından kullanılabildikleri için gizli diziler HDInsight API'si aracılığıyla alınabiliyordu. Gizli diziler, kullanıcının rolünün izin vermesi gerekenden daha fazla yükseltilmiş erişim elde etmek için kullanılabilecek değerler olarak tanımlanır. Bunlar küme ağ geçidi HTTP kimlik bilgileri, depolama hesabı anahtarları ve veritabanı kimlik bilgileri gibi değerleri içerir.

3 Eylül 2019'da bu gizli dizilere erişim izni gerektirir Microsoft.HDInsight/clusters/configurations/action ve kullanıcı Okuyucu rolüyle bu gizli diziye erişemez. Bu izne sahip roller Katkıda Bulunan, Sahip ve yeni HDInsight Küme Operatörü rolüdür.

Katkıda Bulunan veya Sahip'in yönetim izinleri verilmeden gizli dizileri alabilen yeni bir HDInsight Küme Operatörü rolü de sunuyoruz. Özetlemek gerekirse:

Rol Önceden İleriYe Doğru
Okuyucu - Gizli diziler de dahil olmak üzere okuma erişimi. - Gizli diziler hariç okuma erişimi
HDInsight Küme operatörü
(Yeni Rol)
Geçersiz - Gizli diziler de dahil olmak üzere okuma/yazma erişimi
Katılımcı - Gizli diziler de dahil olmak üzere okuma/yazma erişimi.
- Tüm Azure kaynağı türlerini oluşturun ve yönetin.
- Betik eylemlerini yürütür.
Değişiklik yok
Sahip - Gizli diziler dahil okuma/yazma erişimi.
- Tüm kaynaklara tam erişim
- Başkalarına erişim yetkisi verin.
- Betik eylemlerini yürütür.
Değişiklik yok

Küme gizli dizilerine okuma/yazma erişimi vermek üzere bir kullanıcıya HDInsight Küme Operatörü rol atamasının nasıl ekleneceği hakkında bilgi için aşağıdaki Kullanıcıya HDInsight Küme Operatörü rol ataması ekleme bölümüne bakın.

Bu değişikliklerden etkileniyor muyum?

Aşağıdaki varlıklar ve senaryolar etkilenir:

  • API: veya /configurations/{configurationName} uç noktalarını kullanan /configurations kullanıcılar.
  • Visual Studio için Azure HDInsight Araçları 1.1.1 sürümü ya da üzeri.
  • IntelliJ için Azure Araç Takımı 3.20.0 sürümü ya da üzeri.
  • Visual Studio sürüm 2.3.9000.1 için Azure Data Lake ve Stream Analytics Araçları.
  • Eclipse için Azure Toolkit sürüm 3.15.0 veya üzeri.
  • .NET için SDK
    • sürüm 1.x veya 2.x: ConfigurationsOperationsExtensions sınıfından , GetConnectivitySettings, ConfigureHttpSettingsveya EnableHttpDisableHttp yöntemlerini kullanan GetClusterConfigurationskullanıcılar.
    • sürüm 3.x ve üzeri: Sınıftan Get, Update, EnableHttpveya DisableHttp yöntemlerini kullanan kullanıcılar ConfigurationsOperationsExtensions .
  • Python için SDK: Sınıfından get veya update yöntemlerini ConfigurationsOperations kullanan kullanıcılar.
  • Java için SDK: Sınıfından update veya get yöntemlerini ConfigurationsInner kullanan kullanıcılar.
  • Go için SDK: Yapıdan GetConfigurationsClient veya Update yöntemlerini kullanan kullanıcılar.
  • Az.HDInsight PowerShell sürüm 2.0.0. Senaryonuzun geçiş adımlarını görmek için aşağıdaki bölümlere bakın (ya da yukarıdaki bağlantıları kullanın).

API

Aşağıdaki API'ler değiştirilir veya kullanım dışıdır:

  • GET /configurations/{configurationName} (hassas bilgiler kaldırıldı)
    • Daha önce tek tek yapılandırma türlerini (gizli diziler dahil) almak için kullanılır.
    • 3 Eylül 2019'da bu API çağrısı artık gizli dizilerin atlanmış olduğu tek tek yapılandırma türlerini döndürecektir. Gizli diziler de dahil olmak üzere tüm yapılandırmaları almak için yeni POST/configurations çağrısını kullanın. Yalnızca ağ geçidi ayarlarını almak için yeni POST /getGateway Ayarlar çağrısını kullanın.
  • GET /configurations (kullanım dışı)
    • Daha önce tüm yapılandırmaları (gizli diziler dahil) almak için kullanılır
    • 3 Eylül 2019'da bu API çağrısı kullanım dışı bırakılacak ve artık desteklenmeyecektir. Bundan sonra tüm yapılandırmaları almak için yeni POST/configurations çağrısını kullanın. Hassas parametreleri atlanmış yapılandırmaları almak için GET /configurations/{configurationName} çağrısını kullanın.
  • POST /configurations/{configurationName} (kullanım dışı)
    • Daha önce ağ geçidi kimlik bilgilerini güncelleştirmek için kullanılır.
    • 3 Eylül 2019'da bu API çağrısı kullanım dışı bırakılacak ve artık desteklenmeyecektir. Bunun yerine yeni POST /updateGateway Ayarlar kullanın.

Aşağıdaki yeni API'ler eklendi:

Visual Studio Code için Azure HDInsight Araçları

Sürüm 1.1.1 veya üzerini kullanıyorsanız, kesintileri önlemek için Visual Studio Code için Azure HDInsight Araçları'nın en son sürümüne güncelleştirin.

Azure Toolkit for IntelliJ

3.20.0 veya üzeri bir sürüm kullanıyorsanız kesintileri önlemek için IntelliJ için Azure Toolkit eklentisinin en son sürümüne güncelleştirin.

Visual Studio için Azure Data Lake ve Stream Analytics Araçları

Kesintileri önlemek için Visual Studio için Azure Data Lake ve Stream Analytics Araçları'nın 2.3.9000.1 veya sonraki bir sürümüne güncelleştirin. Güncelleştirmeyle ilgili yardım için Visual Studio için Data Lake Araçlarını Güncelleştirme belgelerimize bakın.

Azure Toolkit for Eclipse

3.15.0 veya üzeri bir sürüm kullanıyorsanız kesintileri önlemek için Eclipse için Azure Toolkit'in en son sürümüne güncelleştirin.

.NET için SDK

Sürüm 1.x ve 2.x

.NET için HDInsight SDK'sının 2.1.0 sürümüne güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir:

  • ClusterOperationsExtensions.GetClusterConfigurationsartık depolama anahtarları (çekirdek site) veya HTTP kimlik bilgileri (ağ geçidi) gibi hassas parametreleri döndürmez.

    • Hassas parametreler de dahil olmak üzere tüm yapılandırmaları almak için ileriye doğru kullanın ClusterOperationsExtensions.ListConfigurations . 'Okuyucu' rolüne sahip kullanıcılar bu yöntemi kullanamaz. Bir küme için hassas bilgilere erişebilecek kullanıcılar üzerinde ayrıntılı denetim sağlar.
    • Yalnızca HTTP ağ geçidi kimlik bilgilerini almak için kullanın ClusterOperationsExtensions.GetGatewaySettings.
  • ClusterOperationsExtensions.GetConnectivitySettings artık kullanım dışıdır ve ile ClusterOperationsExtensions.GetGatewaySettingsdeğiştirilmiştir.

  • ClusterOperationsExtensions.ConfigureHttpSettings artık kullanım dışıdır ve ile ClusterOperationsExtensions.UpdateGatewaySettingsdeğiştirilmiştir.

  • ConfigurationsOperationsExtensions.EnableHttp ve DisableHttp artık kullanım dışıdır. HTTP artık her zaman etkindir, bu nedenle bu yöntemler artık gerekli değildir.

Sürüm 3.x ve sonraki sürümler

.NET için HDInsight SDK'sının 5.0.0 veya sonraki bir sürümüne güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir:

Python için SDK

Python için HDInsight SDK'sının 1.0.0 veya sonraki bir sürümüne güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir:

Java için SDK

Java için HDInsight SDK'sının 1.0.0 veya sonraki bir sürümüne güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir:

  • ConfigurationsInner.getartık depolama anahtarları (çekirdek site) veya HTTP kimlik bilgileri (ağ geçidi) gibi hassas parametreleri döndürmez.
  • ConfigurationsInner.update artık kullanım dışı bırakıldı.

Go için SDK

Go için HDInsight SDK'sının 27.1.0 veya sonraki bir sürümüne güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir:

Az.HDInsight PowerShell

Kesintileri önlemek için Az PowerShell sürüm 2.0.0 veya sonraki bir sürüme güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir.

  • Grant-AzHDInsightHttpServicesAccess artık kullanım dışıdır ve yeni Set-AzHDInsightGatewayCredential cmdlet ile değiştirilmiştir.
  • Get-AzHDInsightJobOutput depolama anahtarına ayrıntılı rol tabanlı erişimi destekleyecek şekilde güncelleştirildi.
    • HDInsight Küme operatörü, Katkıda Bulunan veya Sahip rollerine sahip kullanıcılar etkilenmez.
    • Yalnızca Okuyucu rolüne sahip kullanıcıların parametreyi açıkça belirtmesi DefaultStorageAccountKey gerekir.
  • Revoke-AzHDInsightHttpServicesAccess artık kullanım dışı bırakıldı. HTTP artık her zaman etkindir, bu nedenle bu cmdlet artık gerekli değildir. Bkz. az. Daha fazla ayrıntı için HDInsight geçiş kılavuzu.

HdInsight Küme Operatörü rol atamasını kullanıcıya ekleme

Sahip rolüne sahip bir kullanıcı, hassas HDInsight kümesi yapılandırma değerlerine (küme ağ geçidi kimlik bilgileri ve depolama hesabı anahtarları gibi) okuma/yazma erişimine sahip olmasını istediğiniz kullanıcılara HDInsight Küme Operatörü rolünü atayabilir.

Azure CLI'yı kullanma

Bu rol atamasını eklemenin en basit yolu, Azure CLI'da komutunu kullanmaktır az role assignment create .

Dekont

Yalnızca bu izinleri verebildiği için, bu komut Sahip rolüne sahip bir kullanıcı tarafından çalıştırılmalıdır. --assignee, HDInsight Küme Operatörü rolünü atamak istediğiniz kullanıcının hizmet sorumlusunun veya e-posta adresinin adıdır. Yetersiz izin hatası alırsanız SSS bölümüne bakın.

Kaynak (küme) düzeyinde rol verme

az role assignment create --role "HDInsight Cluster Operator" --assignee <user@domain.com> --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HDInsight/clusters/<ClusterName>

Kaynak grubu düzeyinde rol verme

az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com -g <ResourceGroupName>

Abonelik düzeyinde rol verme

az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com

Azure portalını kullanma

Alternatif olarak Azure portalını kullanarak bir kullanıcıya HDInsight Küme Operatörü rol atamasını ekleyebilirsiniz. Azure portalını kullanarak Azure rolleri atama belgelerine bakın.

SSS

API isteklerimi ve/veya aracımı güncelleştirdikten sonra neden 403 (Yasak) yanıtını görüyorum?

Küme yapılandırmaları artık ayrıntılı rol tabanlı erişim denetiminin Microsoft.HDInsight/clusters/configurations/* arkasındadır ve bunlara erişmek için izin gerektirir. Bu izni almak için yapılandırmalara erişmeye çalışan kullanıcıya veya hizmet sorumlusuna HDInsight Küme Operatörü, Katkıda Bulunanı veya Sahip rolünü atayın.

HDInsight Küme Operatörü rolünü başka bir kullanıcıya veya hizmet sorumlusuna atamak için Azure CLI komutunu çalıştırırken neden "İşlemi tamamlamak için yetersiz ayrıcalıklar" görüyorum?

Sahip rolüne sahip olmanın yanı sıra, komutu yürüten kullanıcı veya hizmet sorumlusunun atananın nesne kimliklerini aramak için yeterli Microsoft Entra izinlerine sahip olması gerekir. Bu ileti yetersiz Microsoft Entra izinlerini gösterir. bağımsız değişkenini -–assignee ile –assignee-object-id değiştirmeyi deneyin ve adı (veya yönetilen kimlik söz konusu olduğunda asıl kimlik) yerine atananın nesne kimliğini parametre olarak belirtin. Daha fazla bilgi için az role assignment create belgelerinin isteğe bağlı parametreler bölümüne bakın.

Yine de işe yaramazsa, doğru izinleri almak için Microsoft Entra yöneticinize başvurun.

Herhangi bir işlem yapılmazsa ne olur?

3 Eylül 2019'da başlayarak çağrılar GET /configurationsPOST /configurations/gateway artık hiçbir bilgi döndürmez ve GET /configurations/{configurationName} çağrı artık depolama hesabı anahtarları veya küme parolası gibi hassas parametreleri döndürmez. Aynı durum, ilgili SDK yöntemleri ve PowerShell cmdlet'leri için de geçerlidir.

Belirtilen Visual Studio, VSCode, IntelliJ veya Eclipse araçlarından birinin eski bir sürümünü kullanıyorsanız, siz güncelleştirene kadar artık çalışmaz.

Daha ayrıntılı bilgi için senaryonuz için bu belgenin ilgili bölümüne bakın.