Memigrasi ke akses berbasis peran yang terperinci untuk konfigurasi kluster

Kami memperkenalkan beberapa perubahan penting untuk mendukung akses berbasis peran yang lebih mendetail guna mendapatkan informasi sensitif. Sebagai bagian dari perubahan ini, beberapa tindakan mungkin diperlukan sebelum 3 September 2019 jika Anda menggunakan salah satu entitas/skenario yang terpengaruh.

Apa yang berubah?

Sebelumnya, rahasia dapat diperoleh melalui HDInsight API oleh pengguna kluster yang memiliki peran Pemilik, Kontributor, atau Pembaca Azure, karena tersedia untuk siapa saja yang */read memiliki izin. Rahasia didefinisikan sebagai nilai yang dapat digunakan untuk mendapatkan akses yang lebih tinggi daripada yang diizinkan oleh peran pengguna. Ini mencakup nilai seperti kunci akun penyimpanan info masuk HTTP gateway kluster, dan info masuk database.

Mulai 3 September 2019, mengakses rahasia ini akan memerlukan Microsoft.HDInsight/clusters/configurations/action izin, pengguna tidak dapat mengaksesnya dengan peran Pembaca. Peran yang memiliki izin ini adalah Kontributor, Pemilik, dan peran Operator Kluster HDInsight baru.

Kami juga memperkenalkan peran Operator Kluster HDInsight baru yang dapat mengambil rahasia tanpa diberikan izin administratif dari Kontributor atau Pemilik. Untuk meringkas:

Peran Sebelumnya Maju ke depan
Pembaca - Baca akses, termasuk rahasia. - Baca akses, tidak termasuk rahasia
Operator Kluster HDInsight
(Peran Baru)
T/A - Akses baca/tulis, termasuk rahasia
Kontributor - Baca / tulis akses, termasuk rahasia.
- Buat dan kelola semua jenis sumber daya Azure.
- Jalankan tindakan skrip.
Tidak Ada Perubahan
Pemilik - Baca / tulis akses termasuk rahasia.
- Akses penuh ke semua sumber daya
- Delegasikan akses ke orang lain.
- Jalankan tindakan skrip.
Tidak Ada Perubahan

Untuk informasi tentang cara menambahkan penetapan peran Operator kluster HDInsight kepada pengguna untuk memberi mereka akses baca/tulis ke rahasia kluster, lihat bagian di bawah ini, Tambahkan penetapan peran Operator kluster HDInsight kepada pengguna.

Apakah saya terpengaruh oleh perubahan ini?

Entitas dan skenario berikut terpengaruh:

API

API berikut diubah atau tidak digunakan lagi:

  • GET /configurations/{configurationName} (informasi sensitif dihapus)
    • Sebelumnya digunakan untuk mendapatkan jenis konfigurasi individual (termasuk rahasia).
    • Mulai tanggal 3 September 2019, panggilan API ini sekarang akan mengembalikan jenis konfigurasi individual dengan rahasia yang dihilangkan. Untuk mendapatkan semua konfigurasi, termasuk rahasia, gunakan panggilan POST /configurations baru. Untuk mendapatkan pengaturan gateway saja, gunakan panggilan POST /getGatewaySettings baru.
  • GET /configurations (tidak digunakan lagi)
    • Sebelumnya digunakan untuk mendapatkan semua konfigurasi (termasuk rahasia)
    • Mulai tanggal 3 September 2019, panggilan API ini akan ditolak dan tidak lagi didukung. Untuk mendapatkan semua konfigurasi ke depan, gunakan panggilan POST /configurations baru. Untuk mendapatkan konfigurasi dengan parameter sensitif dihilangkan, gunakan panggilan GET /configurations/{configurationName}.
  • POST /configurations/{configurationName} (tidak digunakan lagi)
    • Sebelumnya digunakan untuk memperbarui info masuk gateway.
    • Mulai tanggal 3 September 2019, panggilan API ini akan ditolak dan tidak lagi didukung. Gunakan POST /updateGatewaySettings baru sebagai gantinya.

API pengganti berikut telah ditambahkan:

Alat HDInsight untuk Visual Studio Code

Jika Anda menggunakan versi 1.1.1 atau di bawah ini, perbarui ke versi terbaru Azure HDInsight Tools for Visual Studio Code untuk menghindari gangguan.

Azure Toolkit untuk IntelliJ

Jika Anda menggunakan versi 3.20.0 atau di bawahnya, perbarui ke versi terbaru plugin Azure Toolkit for IntelliJ untuk menghindari gangguan.

Azure Data Lake dan Alat Analisis Aliran untuk Visual Studio

Perbarui ke versi 2.3.9000.1 atau yang lebih baru dari Azure Data Lake dan Alat Analisis Aliran for Visual Studio untuk menghindari gangguan. Untuk bantuan tentang pembaruan, lihat dokumentasi kami, Perbarui Alat Data Lake untuk Visual Studio.

Azure Toolkit untuk Eclipse

Jika Anda menggunakan versi 3.15.0 atau di bawahnya, perbarui ke versi terbaru Azure Toolkit untuk Eclipse untuk menghindari gangguan.

SDK untuk .NET

Versi 1.x dan 2.x

Pembaruan ke versi 2.1.0 dari HDInsight SDK untuk .NET. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang dipengaruhi oleh perubahan ini:

  • ClusterOperationsExtensions.GetClusterConfigurations tidak akan lagi mengembalikan parameter sensitif seperti kunci penyimpanan (situs inti) atau info masuk HTTP (gateway).

    • Untuk mengambil semua konfigurasi, termasuk parameter sensitif, gunakan ClusterOperationsExtensions.ListConfigurations penerusan. Pengguna dengan peran 'Pembaca' tidak dapat menggunakan metode ini. Ini memungkinkan kontrol terperinci di mana pengguna dapat mengakses informasi sensitif untuk kluster.
    • Untuk mengambil info masuk gateway HTTP saja, gunakan ClusterOperationsExtensions.GetGatewaySettings.
  • ClusterOperationsExtensions.GetConnectivitySettings sekarang tidak digunakan lagi dan telah digantikan oleh ClusterOperationsExtensions.GetGatewaySettings.

  • ClusterOperationsExtensions.ConfigureHttpSettings sekarang tidak digunakan lagi dan telah digantikan oleh ClusterOperationsExtensions.UpdateGatewaySettings.

  • ConfigurationsOperationsExtensions.EnableHttp dan DisableHttp kini telah menjadi usang. HTTP sekarang selalu diaktifkan, sehingga metode ini tidak lagi diperlukan.

Versi 3.x dan yang lebih baru

Perbarui ke versi 5.0.0 atau yang lebih baru dari HDInsight SDK untuk .NET. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang dipengaruhi oleh perubahan ini:

SDK untuk Python

Perbarui ke versi 1.0.0 atau yang lebih baru dari HDInsight SDK untuk Python. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang dipengaruhi oleh perubahan ini:

SDK untuk Java

Perbarui ke versi 1.0.0 atau yang lebih baru dari HDInsight SDK untuk Java. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang dipengaruhi oleh perubahan ini:

  • ConfigurationsInner.get tidak akan lagi mengembalikan parameter sensitif seperti kunci penyimpanan (situs inti) atau info masuk HTTP (gateway).
  • ConfigurationsInner.update sekarang tidak digunakan lagi.

SDK untuk Go

Perbarui ke versi 27.1.0 atau yang lebih baru dari HDInsight SDK untuk Go. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang dipengaruhi oleh perubahan ini:

Az.HDInsight PowerShell

Perbarui ke Az PowerShell versi 2.0.0 atau yang lebih baru untuk menghindari gangguan. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang terpengaruh oleh perubahan ini.

  • Grant-AzHDInsightHttpServicesAccess sekarang tidak digunakan lagi dan telah digantikan oleh Set-AzHDInsightGatewayCredential cmdlet baru.
  • Get-AzHDInsightJobOutput telah diperbarui untuk mendukung akses berbasis peran granular ke kunci penyimpanan.
    • Pengguna dengan peran Operator Kluster HDInsight, Kontributor, atau Pemilik tidak terpengaruh.
    • Pengguna hanya dengan peran Pembaca perlu menentukan DefaultStorageAccountKey parameter secara eksplisit.
  • Revoke-AzHDInsightHttpServicesAccess sekarang tidak digunakan lagi. HTTP sekarang selalu diaktifkan, sehingga cmdlet ini tidak lagi diperlukan. Lihat az- nya. Panduan migrasi HDInsight untuk detail selengkapnya.

Tambahkan penetapan peran Operator kluster HDInsight ke pengguna

Pengguna dengan peran Pemilik dapat menetapkan peran Operator kluster HDInsight kepada pengguna bahwa Anda ingin memiliki akses baca/tulis ke nilai konfigurasi kluster HDInsight yang sensitif (seperti info masuk gateway kluster dan kunci akun penyimpanan).

Menggunakan Cli Azure

Cara paling sederhana untuk menambahkan penetapan peran ini adalah dengan menggunakan az role assignment create perintah di Azure CLI.

Catatan

Perintah ini harus dijalankan oleh pengguna dengan peran Pemilik, karena hanya mereka yang dapat memberikan izin ini. --assignee Adalah nama perwakilan layanan atau alamat email pengguna yang ingin Anda tetapkan peran Operator kluster HDInsight. Jika Anda menerima kesalahan izin yang tidak mencukupkan, lihat FAQ.

Berikan peran di tingkat sumber daya (kluster)

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

Berikan peran di tingkat grup sumber daya

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

Berikan peran di tingkat langganan

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

Menggunakan portal Azure

Anda dapat menggunakan portal Microsoft Azure untuk menambahkan penetapan peran Operator kluster HDInsight kepada pengguna. Lihat dokumentasi, Menetapkan peran Azure menggunakan portal Microsoft Azure.

FAQ

Mengapa saya melihat respons 403 (Terlarang) setelah memperbarui permintaan API dan/atau alat saya?

Konfigurasi kluster sekarang berada di belakang kontrol akses berbasis peran granular dan memerlukan Microsoft.HDInsight/clusters/configurations/* izin untuk mengaksesnya. Untuk mendapatkan izin ini, tetapkan peran Operator kluster HDInsight, Kontributor, atau Pemilik kepada pengguna atau perwakilan layanan yang mencoba mengakses konfigurasi.

Mengapa saya melihat "Hak istimewa yang tidak mencukupi untuk menyelesaikan operasi" saat menjalankan perintah Azure CLI untuk menetapkan peran Operator kluster HDInsight ke perwakilan layanan atau pengguna lain?

Selain memiliki peran Pemilik, pengguna atau perwakilan layanan yang menjalankan perintah harus memiliki izin Microsoft Entra yang memadai untuk mencari ID objek penerima tugas. Pesan ini menunjukkan tidak cukupnya izin Microsoft Entra. Coba ganti -–assignee argumen dengan dan –assignee-object-id berikan ID objek dari penerima tugas sebagai parameter alih-alih nama (atau ID utama dalam kasus identitas terkelola). Lihat bagian parameter opsional dari penetapan peran az membuat dokumentasi untuk informasi selengkapnya.

Jika masih tidak berfungsi, hubungi admin Microsoft Entra Anda untuk memperoleh izin yang benar.

Apa yang akan terjadi jika saya tidak mengambil tindakan?

Mulai tanggal 3 September 2019, GET /configurations dan panggilan tidak akan lagi mengembalikan informasi apa pun dan panggilan tidak akan lagi mengembalikan parameter POST /configurations/gatewayGET /configurations/{configurationName} sensitif, seperti kunci akun penyimpanan atau kata sandi kluster. Hal yang sama berlaku untuk metode SDK yang sesuai dan cmdlet PowerShell.

Jika Anda menggunakan versi lama dari salah satu alat untuk Visual Studio, VSCode, IntelliJ, atau Eclipse yang disebutkan, itu tidak lagi berfungsi sampai Anda memperbarui.

Untuk informasi selengkapnya, lihat bagian terkait dari dokumen ini untuk skenario Anda.