Objek konteks Azure PowerShell
Azure PowerShell menggunakan objek konteks Azure PowerShell (konteks Azure) untuk menyimpan informasi langganan dan autentikasi. Jika Anda memiliki lebih dari satu langganan, konteks Azure memungkinkan Anda memilih langganan untuk menjalankan cmdlet Azure PowerShell. Konteks Azure juga digunakan untuk menyimpan informasi masuk di beberapa sesi PowerShell dan menjalankan proses di latar belakang.
Artikel ini membahas pengelolaan konteks Azure, bukan manajemen langganan atau akun. Jika Anda ingin mengelola pengguna, langganan, penyewa, atau informasi akun lainnya, lihat dokumentasi ID Microsoft Entra. Untuk mempelajari tentang menggunakan konteks untuk menjalankan tugas latar belakang atau paralel, lihat Menjalankan cmdlet Azure PowerShell di Pekerjaan PowerShell setelah terbiasa dengan konteks Azure.
Gambaran umum objek konteks Azure
Konteks Azure adalah objek PowerShell yang mewakili langganan aktif Anda untuk menjalankan perintah, dan informasi autentikasi yang diperlukan untuk tersambung ke cloud Azure. Dengan konteks Azure, Azure PowerShell tidak perlu mengautentikasi ulang akun Anda setiap kali beralih langganan. Konteks Azure terdiri dari:
- Akun yang digunakan untuk masuk ke Azure dengan Connect-AzAccount. Konteks Azure memperlakukan pengguna, ID aplikasi, dan perwakilan layanan secara sama dari perspektif akun.
- Langganan aktif, perjanjian layanan dengan Microsoft untuk membuat dan menjalankan sumber daya Azure, yang terkait dengan penyewa. Penyewa sering disebut sebagai organisasi dalam dokumentasi atau ketika bekerja dengan Active Directory.
- Referensi ke cache token, token autentikasi yang disimpan untuk mengakses cloud Azure. Di mana token ini disimpan dan berapa lama token ini bertahan ditentukan oleh pengaturan penyimpanan otomatis konteks.
Untuk informasi selengkapnya tentang istilah-istilah ini, lihat Terminologi Microsoft Entra. Token autentikasi yang digunakan oleh konteks Azure sama dengan token lainnya yang disimpan yang merupakan bagian dari sesi persisten.
Saat Anda masuk dengan Connect-AzAccount
, setidaknya satu konteks Azure dibuat untuk langganan default Anda. Objek yang dikembalikan oleh Connect-AzAccount
adalah konteks Azure default yang digunakan hingga sesi PowerShell berakhir.
Mendapatkan konteks Azure
Konteks Azure yang tersedia diambil dengan cmdlet Get-AzContext. Cantumkan konteks yang tersedia dengan parameter ListAvailable :
Get-AzContext -ListAvailable
Atau dapatkan konteks berdasarkan nama:
Get-AzContext -Name 'mycontext'
Nama konteks mungkin berbeda dari nama langganan terkait.
Penting
Konteks Azure yang tersedia tidak selalu merupakan langganan Anda yang tersedia. Konteks Azure hanya mewakili informasi yang disimpan secara lokal. Anda bisa mendapatkan langganan Anda menggunakan cmdlet Get-AzSubscription.
Membuat konteks Azure baru dari informasi langganan
Cmdlet Set-AzContext digunakan untuk membuat konteks Azure baru serta mengaturnya sebagai konteks aktif. Cara termudah untuk membuat konteks Azure baru adalah dengan menggunakan informasi langganan yang ada. Cmdlet dirancang untuk mengambil objek output dari Get-AzSubscription
sebagai nilai yang disalurkan dan mengonfigurasi konteks Azure baru:
Get-AzSubscription -SubscriptionName 'MySubscriptionName' |
Set-AzContext -Name 'MyContextName'
Atau berikan nama atau ID langganan dan ID penyewa jika perlu:
Set-AzContext -Name 'MyContextName' -Subscription 'MySubscriptionName' -Tenant '00000000-0000-0000-0000-000000000000'
Jika parameter Nama dihilangkan, maka nama dan ID langganan digunakan sebagai nama konteks dalam format Nama Langganan (id langganan).
Mengubah konteks Azure aktif
Baik Set-AzContext
maupun Select-AzContext dapat digunakan untuk mengubah konteks Azure aktif. Seperti yang dijelaskan dalam Membuat konteks Azure baru, Set-AzContext
membuat konteks Azure baru untuk langganan jika konteks belum ada, kemudian mengalihkan konteks aktif ke konteks tersebut.
Select-AzContext
dimaksudkan untuk digunakan hanya dengan konteks Azure yang ada dan berfungsi mirip dengan menggunakan Set-AzContext -Context
, tetapi dirancang untuk digunakan dengan penyaluran:
Set-AzContext -Context $(Get-AzContext -Name 'mycontext') # Set a context with an inline Azure context object
Get-AzContext -Name 'mycontext' | Select-AzContext # Set a context with a piped Azure context object
Seperti banyak perintah manajemen akun dan konteks lainnya di Azure PowerShell, Set-AzContext
dan Select-AzContext
mendukung parameter Cakupan sehingga Anda dapat mengontrol berapa lama konteks aktif. Cakupan memungkinkan Anda mengubah konteks aktif satu sesi tanpa mengubah default Anda:
Get-AzContext -Name 'mycontext' | Select-AzContext -Scope Process
Untuk menghindari peralihan konteks untuk seluruh sesi PowerShell, perintah Azure PowerShell dengan parameter AzContext dapat dijalankan terhadap konteks tertentu:
$context = Get-AzContext -Name "mycontext"
New-AzVM -Name ExampleVM -AzContext $context
Penggunaan utama lain dari konteks dengan cmdlet Azure PowerShell adalah untuk menjalankan perintah latar belakang. Untuk mempelajari selengkapnya menjalankan Pekerjaan PowerShell menggunakan Azure PowerShell, lihat Menjalankan cmdlet Azure PowerShell di Pekerjaan PowerShell.
Menyimpan konteks Azure di seluruh sesi PowerShell
Secara default, konteks Azure disimpan untuk digunakan di antara sesi PowerShell. Anda mengubah perilaku ini dengan cara berikut:
Masuk menggunakan
-Scope Process
denganConnect-AzAccount
.Connect-AzAccount -Scope Process
Konteks Azure yang dikembalikan sebagai bagian dari masuk ini hanya valid untuk sesi saat ini dan tidak akan disimpan secara otomatis, terlepas dari pengaturan penyimpanan otomatis konteks Azure PowerShell.
Nonaktifkan simpan-otomatis konteks di Azure PowerShell dengan cmdlet Disable-AzContextAutosave. Menonaktifkan simpan-otomatis konteks tidak menghapus token yang disimpan. Untuk mempelajari cara menghapus informasi konteks Azure yang disimpan, lihat Menghapus konteks dan info masuk Azure.
Mengaktifkan simpan-otomatis konteks Azure secara eksplisit dapat diaktifkan dengan cmdlet Enable-AzContextAutosave. Dengan penyimpanan otomatis diaktifkan, konteks pengguna disimpan secara lokal untuk sesi PowerShell selanjutnya.
Simpan konteks secara manual dengan Save-AzContext untuk digunakan di sesi PowerShell mendatang, di mana mereka dapat dimuat dengan Import-AzContext:
Save-AzContext -Path current-context.json # Save the current context Save-AzContext -Profile $profileObject -Path other-context.json # Save a context object Import-AzContext -Path other-context.json # Load the context from a file and set it to the current context
Peringatan
Menonaktifkan simpan-otomatis konteks tidak menghapus informasi konteks tersimpan yang disimpan. Untuk menghapus informasi yang tersimpan, gunakan cmdlet Clear-AzContext. Untuk informasi selengkapnya mengenai menghapus konteks yang disimpan, lihat Menghapus konteks dan info masuk.
Masing-masing perintah ini mendukung parameter Cakupan , yang dapat mengambil nilai Process
untuk hanya berlaku untuk proses yang sedang berjalan saat ini. Misalnya, untuk memastikan bahwa konteks yang baru dibuat tidak disimpan setelah keluar dari sesi PowerShell:
Disable-AzContextAutosave -Scope Process
$context2 = Set-AzContext -Subscription 'sub-id' -Tenant 'other-tenant'
Informasi konteks dan token disimpan di direktori $env:USERPROFILE\.Azure
pada Windows, dan di $HOME/.Azure
pada platform lainnya. Informasi sensitif seperti ID langganan dan ID penyewa mungkin masih terekspos dalam informasi yang disimpan, melalui log, atau konteks yang disimpan. Untuk mempelajari cara menghapus informasi yang disimpan, lihat bagian Menghapus konteks dan info masuk.
Menghapus konteks Azure dan info masuk yang disimpan
Untuk menghapus konteks dan info masuk Azure:
Keluar dari akun menggunakan Disconnect-AzAccount. Anda dapat keluar dari akun apa pun baik melalui akun atau konteks:
Disconnect-AzAccount # Disconnect active account Disconnect-AzAccount -Username 'user@contoso.com' # Disconnect by account name Disconnect-AzAccount -ContextName 'subscription2' # Disconnect by context name Disconnect-AzAccount -AzureContext $contextObject # Disconnect using context object information
Memutuskan sambungan selalu menghapus token autentikasi yang disimpan dan menghapus konteks yang disimpan yang terkait dengan pengguna atau konteks yang terputus.
Gunakan Clear-AzContext. Cmdlet ini selalu menghapus konteks yang tersimpan, token autentikasi, dan mengeluarkan Anda.
Hapus konteks dengan Remove-AzContext:
Remove-AzContext -Name 'mycontext' # Remove by name Get-AzContext -Name 'mycontext' | Remove-AzContext # Remove by piping Azure context object
Jika Anda menghapus konteks aktif, Anda akan terputus dari Azure dan perlu mengautentikasi ulang dengan
Connect-AzAccount
.