Add-AzureKeyVaultKey

Membuat kunci di brankas kunci atau mengimpor kunci ke dalam brankas kunci.

Peringatan

Modul AzureRM PowerShell telah resmi tidak digunakan lagi per 29 Februari 2024. Pengguna disarankan untuk bermigrasi dari AzureRM ke modul Az PowerShell untuk memastikan dukungan dan pembaruan yang berkelanjutan.

Meskipun modul AzureRM mungkin masih berfungsi, modul tersebut tidak lagi dipertahankan atau didukung, menempatkan penggunaan berkelanjutan berdasarkan kebijaksanaan dan risiko pengguna. Silakan merujuk ke sumber daya migrasi kami untuk panduan tentang transisi ke modul Az.

Sintaks

Add-AzureKeyVaultKey
   [-VaultName] <String>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-VaultName] <String>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-InputObject] <PSKeyVault>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-InputObject] <PSKeyVault>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-ResourceId] <String>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-ResourceId] <String>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Deskripsi

Cmdlet Add-AzureKeyVaultKey membuat kunci di brankas kunci di Azure Key Vault, atau mengimpor kunci ke dalam brankas kunci. Gunakan cmdlet ini untuk menambahkan kunci dengan menggunakan salah satu metode berikut:

  • Buat kunci dalam modul keamanan perangkat keras (HSM) di layanan Key Vault.
  • Buat kunci dalam perangkat lunak di layanan Key Vault.
  • Impor kunci dari modul keamanan perangkat keras (HSM) Anda sendiri ke HSM di layanan Key Vault.
  • Impor kunci dari file .pfx di komputer Anda.
  • Impor kunci dari file .pfx di komputer Anda ke modul keamanan perangkat keras (HSM) di layanan Key Vault. Untuk salah satu operasi ini, Anda dapat menyediakan atribut utama atau menerima pengaturan default. Jika Anda membuat atau mengimpor kunci yang memiliki nama yang sama dengan kunci yang ada di brankas kunci Anda, kunci asli diperbarui dengan nilai yang Anda tentukan untuk kunci baru. Anda dapat mengakses nilai sebelumnya dengan menggunakan URI khusus versi untuk versi kunci tersebut. Untuk mempelajari tentang versi kunci dan struktur URI, lihat Tentang Kunci dan Rahasia dalam dokumentasi REST API Key Vault. Catatan: Untuk mengimpor kunci dari modul keamanan perangkat keras Anda sendiri, Anda harus terlebih dahulu membuat paket BYOK (file dengan ekstensi nama file .byok) dengan menggunakan toolset BYOK Azure Key Vault. Untuk informasi selengkapnya, lihat Cara Membuat dan Mentransfer Kunci yang Dilindungi HSM untuk Azure Key Vault. Sebagai praktik terbaik, cadangkan kunci Anda setelah dibuat atau diperbarui, dengan menggunakan cmdlet Backup-AzureKeyVaultKey. Tidak ada fungsionalitas yang tidak dihapus, jadi jika Anda secara tidak sengaja menghapus kunci atau menghapusnya dan kemudian berubah pikiran, kunci tidak dapat dipulihkan kecuali Anda memiliki cadangannya yang dapat Anda pulihkan.

Contoh

Contoh 1: Membuat kunci

PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITSoftware' -Destination 'Software'

Vault Name     : contoso
Name           : ITSoftware
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITSoftware/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

Perintah ini membuat kunci yang dilindungi perangkat lunak bernama ITSoftware di brankas kunci bernama Contoso.

Contoh 2: Membuat kunci yang dilindungi HSM

PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITHsm' -Destination 'HSM'

Vault Name     : contoso
Name           : ITHsm
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITSoftware/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

Perintah ini membuat kunci yang dilindungi HSM di brankas kunci bernama Contoso.

Contoh 3: Membuat kunci dengan nilai non-default

PS C:\> $KeyOperations = 'decrypt', 'verify'
PS C:\> $Expires = (Get-Date).AddYears(2).ToUniversalTime()
PS C:\> $NotBefore = (Get-Date).ToUniversalTime()
PS C:\> $Tags = @{'Severity' = 'high'; 'Accounting' = "true"}
PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITHsmNonDefault' -Destination 'HSM' -Expires $Expires -NotBefore $NotBefore -KeyOps $KeyOperations -Disable -Tag $Tags

Vault Name     : contoso
Name           : ITHsmNonDefault
Version        : 929bfc14db84439b823ffd1bedadaf5f
Id             : https://contoso.vault.azure.net:443/keys/ITHsmNonDefault/929bfc14db84439b823ffd1bedadaf5f
Enabled        : False
Expires        : 5/21/2020 11:12:43 PM
Not Before     : 5/21/2018 11:12:50 PM
Created        : 5/21/2018 11:13:17 PM
Updated        : 5/21/2018 11:13:17 PM
Purge Disabled : False
Tags           : Name        Value
                 Severity    high
                 Accounting  true

Perintah pertama menyimpan nilai yang didekripsi dan memverifikasi dalam variabel $KeyOperations. Perintah kedua membuat objek DateTime , yang ditentukan dalam UTC, dengan menggunakan cmdlet Get-Date . Objek itu menentukan waktu dua tahun di masa depan. Perintah menyimpan tanggal tersebut dalam variabel $Expires. Untuk informasi selengkapnya, ketik Get-Help Get-Date. Perintah ketiga membuat objek DateTime dengan menggunakan cmdlet Get-Date . Objek tersebut menentukan waktu UTC saat ini. Perintah menyimpan tanggal tersebut dalam variabel $NotBefore. Perintah akhir membuat kunci bernama ITHsmNonDefault yang merupakan kunci yang dilindungi HSM. Perintah menentukan nilai untuk operasi kunci yang diizinkan yang disimpan $KeyOperations. Perintah menentukan waktu untuk parameter Kedaluwarsa dan NotBefore yang dibuat dalam perintah sebelumnya, dan tag untuk tingkat keparahan tinggi dan TI. Kunci baru dinonaktifkan. Anda dapat mengaktifkannya dengan menggunakan cmdlet Set-AzureKeyVaultKey .

Contoh 4: Mengimpor kunci yang dilindungi HSM

PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITByok' -KeyFilePath 'C:\Contoso\ITByok.byok' -Destination 'HSM'

Vault Name     : contoso
Name           : ITByok
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITByok/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

Perintah ini mengimpor kunci bernama ITByok dari lokasi yang ditentukan parameter KeyFilePath . Kunci yang diimpor adalah kunci yang dilindungi HSM. Untuk mengimpor kunci dari modul keamanan perangkat keras Anda sendiri, Anda harus terlebih dahulu membuat paket BYOK (file dengan ekstensi nama file .byok) dengan menggunakan toolset BYOK Azure Key Vault. Untuk informasi selengkapnya, lihat Cara Membuat dan Mentransfer Kunci yang Dilindungi HSM untuk Azure Key Vault.

Contoh 5: Mengimpor kunci yang dilindungi perangkat lunak

PS C:\> $Password = ConvertTo-SecureString -String 'Password' -AsPlainText -Force
PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITPfx' -KeyFilePath 'C:\Contoso\ITPfx.pfx' -KeyFilePassword $Password

Vault Name     : contoso
Name           : ITPfx
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITPfx/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

Perintah pertama mengonversi string menjadi string aman dengan menggunakan cmdlet ConvertTo-SecureString , lalu menyimpan string tersebut dalam variabel $Password. Untuk informasi selengkapnya, ketik Get-Help ConvertTo-SecureString. Perintah kedua membuat kata sandi perangkat lunak di brankas kunci Contoso. Perintah menentukan lokasi untuk kunci dan kata sandi yang disimpan di $Password.

Contoh 6: Mengimpor kunci dan menetapkan atribut

PS C:\> $Password = ConvertTo-SecureString -String 'password' -AsPlainText -Force
PS C:\> $Expires = (Get-Date).AddYears(2).ToUniversalTime()
PS C:\> $Tags = @{ 'Severity' = 'high'; 'Accounting' = "true" }
PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITPfxToHSM' -Destination 'HSM' -KeyFilePath 'C:\Contoso\ITPfx.pfx' -KeyFilePassword $Password -Expires $Expires -Tag $Tags

Vault Name     : contoso
Name           : ITPfxToHSM
Version        : 929bfc14db84439b823ffd1bedadaf5f
Id             : https://contoso.vault.azure.net:443/keys/ITPfxToHSM/929bfc14db84439b823ffd1bedadaf5f
Enabled        : True
Expires        : 5/21/2020 11:12:43 PM
Not Before     : 
Created        : 5/21/2018 11:13:17 PM
Updated        : 5/21/2018 11:13:17 PM
Purge Disabled : False
Tags           : Name        Value
                 Severity    high
                 Accounting  true

Perintah pertama mengonversi string menjadi string aman dengan menggunakan cmdlet ConvertTo-SecureString , lalu menyimpan string tersebut dalam variabel $Password. Perintah kedua membuat objek DateTime dengan menggunakan cmdlet Get-Date , lalu menyimpan objek tersebut dalam variabel $Expires. Perintah ketiga membuat variabel $tags untuk mengatur tag untuk tingkat keparahan tinggi dan IT. Perintah akhir mengimpor kunci sebagai kunci HSM dari lokasi yang ditentukan. Perintah menentukan waktu kedaluwarsa yang disimpan di $Expires dan kata sandi yang disimpan di $Password, dan menerapkan tag yang disimpan di $tags.

Parameter

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Kredensial, akun, penyewa, dan langganan yang digunakan untuk komunikasi dengan azure

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Destination

Menentukan apakah akan menambahkan kunci sebagai kunci yang dilindungi perangkat lunak atau kunci yang dilindungi HSM di layanan Key Vault. Nilai yang valid adalah: HSM dan Perangkat Lunak. Catatan: Untuk menggunakan HSM sebagai tujuan, Anda harus memiliki brankas kunci yang mendukung HSM. Untuk informasi selengkapnya tentang tingkat layanan dan kemampuan untuk Azure Key Vault, lihat situs web Harga Vault Kunci Azure. Parameter ini diperlukan saat Anda membuat kunci baru. Jika Anda mengimpor kunci dengan menggunakan parameter KeyFilePath , parameter ini bersifat opsional:

  • Jika Anda tidak menentukan parameter ini, dan cmdlet ini mengimpor kunci yang memiliki ekstensi nama file .byok, ia mengimpor kunci tersebut sebagai kunci yang dilindungi HSM. Cmdlet tidak dapat mengimpor kunci tersebut sebagai kunci yang dilindungi perangkat lunak.
  • Jika Anda tidak menentukan parameter ini, dan cmdlet ini mengimpor kunci yang memiliki ekstensi nama file .pfx, itu mengimpor kunci sebagai kunci yang dilindungi perangkat lunak.
Type:String
Accepted values:HSM, Software, HSM, Software
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Disable

Menunjukkan bahwa kunci yang Anda tambahkan diatur ke status awal dinonaktifkan. Setiap upaya untuk menggunakan kunci akan gagal. Gunakan parameter ini jika Anda melakukan pramuat kunci yang ingin Anda aktifkan nanti.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Expires

Menentukan waktu kedaluwarsa, sebagai objek DateTime , untuk kunci yang ditambahkan cmdlet ini. Parameter ini menggunakan Waktu Universal Terkoordinasi (UTC). Untuk mendapatkan objek DateTime , gunakan cmdlet Get-Date . Untuk informasi selengkapnya, ketik Get-Help Get-Date. Jika Anda tidak menentukan parameter ini, kunci tidak akan kedaluwarsa.

Type:Nullable<T>[DateTime]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Objek vault.

Type:PSKeyVault
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-KeyFilePassword

Menentukan kata sandi untuk file yang diimpor sebagai objek SecureString . Untuk mendapatkan objek SecureString , gunakan cmdlet ConvertTo-SecureString . Untuk informasi selengkapnya, ketik Get-Help ConvertTo-SecureString. Anda harus menentukan kata sandi ini untuk mengimpor file dengan ekstensi nama file .pfx.

Type:SecureString
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-KeyFilePath

Menentukan jalur file lokal yang berisi materi kunci yang diimpor cmdlet ini. Ekstensi nama file yang valid adalah .byok dan .pfx.

  • Jika file adalah file .byok, kunci secara otomatis dilindungi oleh HSM setelah impor dan Anda tidak dapat mengambil alih default ini.
  • Jika file adalah file .pfx, kunci secara otomatis dilindungi oleh perangkat lunak setelah impor. Untuk mengambil alih default ini, atur parameter Tujuan ke HSM sehingga kunci dilindungi HSM. Saat Anda menentukan parameter ini, parameter Tujuan bersifat opsional.
Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-KeyOps

Menentukan array operasi yang dapat dilakukan dengan menggunakan kunci yang ditambahkan cmdlet ini. Jika Anda tidak menentukan parameter ini, semua operasi dapat dilakukan. Nilai yang dapat diterima untuk parameter ini adalah daftar operasi kunci yang dipisahkan dengan koma sebagaimana didefinisikan oleh spesifikasi JSON Web Key (JWK):

  • Enkripsi
  • Dekripsi
  • Membungkus
  • Membuka
  • Menandatangani
  • Verifikasi
Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Menentukan nama kunci yang akan ditambahkan ke brankas kunci. Cmdlet ini membangun nama domain yang sepenuhnya memenuhi syarat (FQDN) dari kunci berdasarkan nama yang ditentukan parameter ini, nama brankas kunci, dan lingkungan Anda saat ini. Nama harus berupa string dengan panjang 1 hingga 63 karakter yang hanya berisi 0-9, a-z, A-Z, dan - (simbol tanda hubung).

Type:String
Aliases:KeyName
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotBefore

Menentukan waktu, sebagai objek DateTime , sebelum kunci tidak dapat digunakan. Parameter ini menggunakan UTC. Untuk mendapatkan objek DateTime , gunakan cmdlet Get-Date . Jika Anda tidak menentukan parameter ini, kunci dapat segera digunakan.

Type:Nullable<T>[DateTime]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceId

Id Sumber Daya Vault.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Size

Ukuran kunci RSA, dalam bit. Jika tidak ditentukan, layanan akan memberikan default yang aman.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Tag

Pasangan kunci-nilai dalam bentuk tabel hash. Misalnya: @{key0="value0"; key1=$null; key2="value2"}

Type:Hashtable
Aliases:Tags
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VaultName

Menentukan nama brankas kunci tempat cmdlet ini menambahkan kunci. Cmdlet ini membangun FQDN dari brankas kunci berdasarkan nama yang ditentukan parameter ini dan lingkungan Anda saat ini.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

PSKeyVault

Parameter: InputObject (ByValue)

String

Output

PSKeyVaultKey