Skip to content

Commit 4b21b49

Browse files
authored
[KeyVault] Redesign HSM cmdlets (#13599)
* merge key cmdlets * rename management cmdlets * rename rbac cmdlets * rename backup restore cmdlets * rename security domain cmdlets * misc changes * resource string
1 parent b890719 commit 4b21b49

File tree

75 files changed

+1964
-4425
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+1964
-4425
lines changed

src/KeyVault/KeyVault.Test/PesterTests/ManagedHsmDatePlaneTests.Tests.ps1

Lines changed: 109 additions & 102 deletions
Large diffs are not rendered by default.

src/KeyVault/KeyVault.Test/PesterTests/ManagedHsmDatePlaneTests.ps1

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
1-
function GetAzManagedHsm{
1+
function GetAzManagedHsm {
22
Param(
3-
[parameter(Mandatory=$false)]
3+
[parameter(Mandatory = $false)]
44
[String]
55
$HsmName,
6-
[parameter(Mandatory=$false)]
6+
[parameter(Mandatory = $false)]
77
[String]
88
$ResourceGroupName,
9-
[parameter(Mandatory=$false)]
9+
[parameter(Mandatory = $false)]
1010
[String]
1111
$Location,
12-
[parameter(Mandatory=$false)]
12+
[parameter(Mandatory = $false)]
1313
[String[]]
1414
$Administrator
1515
)
1616
$hsmName = GetRandomName -Prefix "hsm"
1717
$resourceGroupName = GetRandomName -Prefix "rg"
18-
$Location = "eastus2euap"
19-
$administrator = "c1be1392-39b8-4521-aafc-819a47008545"
20-
$hsm = New-AzManagedHsm -Name $HsmName -ResourceGroupName $ResourceGroupName -Location $r -Administrator $Administrator
18+
$Location = "eastus2"
19+
$administrator = "c1be1392-39b8-4521-aafc-819a47008545", 'd7e17135-d5a7-4b8b-89e5-252aa15b7e01'
20+
$hsm = New-AzKeyVaultManagedHsm -Name $HsmName -ResourceGroupName $ResourceGroupName -Location $Location -Administrator $Administrator
2121
return $hsm
2222
}
2323

24-
function GetRandomName{
24+
function GetRandomName {
2525
Param(
26-
[parameter(Mandatory=$false)]
26+
[parameter(Mandatory = $false)]
2727
[String]
2828
$Prefix
2929
)
3030
$randomNum = Get-Random -Minimum 100 -Maximum 99999
3131
return "$Prefix$randomNum"
3232
}
3333

34-
function ImportModules{
34+
function ImportModules {
3535
$psd1Path = Join-Path $PSScriptRoot "../../../../artifacts/Debug/" -Resolve
3636
$accountsPsd1 = Join-Path $psd1Path "./Az.Accounts/Az.Accounts.psd1" -Resolve
3737
$keyVaultPsd1 = Join-Path $psd1Path "./Az.KeyVault/Az.KeyVault.psd1" -Resolve

src/KeyVault/KeyVault.Test/ScenarioTests/ManagedHsmManagementTests.ps1

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ function Test-ManagedHsmCRUD {
2626

2727
try {
2828
# Test create a default managed HSM
29-
$hsm = New-AzManagedHsm -Name $hsmName -ResourceGroupName $rgName -Location $hsmLocation -Administrator $administrator
29+
$hsm = New-AzKeyVaultManagedHsm -Name $hsmName -ResourceGroupName $rgName -Location $hsmLocation -Administrator $administrator
3030
Assert-AreEqual $hsmName $hsm.Name
3131
Assert-AreEqual $rgName $hsm.ResourceGroupName
3232
Assert-AreEqual $hsmLocation $hsm.Location
@@ -38,22 +38,22 @@ function Test-ManagedHsmCRUD {
3838
Assert-AreEqual 90 $hsm.SoftDeleteRetentionInDays "By default SoftDeleteRetentionInDays should be 90"
3939

4040
# Test get managed HSM
41-
$got = Get-AzManagedHsm -Name $hsmName
41+
$got = Get-AzKeyVaultManagedHsm -Name $hsmName
4242
Assert-NotNull $got
4343
Assert-AreEqual $hsmName $got.Name
4444
Assert-AreEqual $rgName $got.ResourceGroupName
4545
Assert-AreEqual $hsmLocation $got.Location
4646

4747
# Test throws for existing managed HSM
48-
Assert-Throws { New-AzManagedHsm -Name $hsmName -ResourceGroupName $rgName -Location $hsmLocation -Administrator $administrator }
48+
Assert-Throws { New-AzKeyVaultManagedHsm -Name $hsmName -ResourceGroupName $rgName -Location $hsmLocation -Administrator $administrator }
4949

5050
# Test remove managed HSM
51-
Remove-AzManagedHsm -InputObject $got -Force
52-
$deletedMhsm = Get-AzManagedHsm -Name $hsmName -ResourceGroupName $rgName
51+
Remove-AzKeyVaultManagedHsm -InputObject $got -Force
52+
$deletedMhsm = Get-AzKeyVaultManagedHsm -Name $hsmName -ResourceGroupName $rgName
5353
Assert-Null $deletedMhsm
5454

5555
# Test throws for resourcegroup nonexistent
56-
Assert-Throws { New-AzManagedHsm -Name (getAssetName) -ResourceGroupName (getAssetName) -Location $hsmLocation -Administrator $administrator }
56+
Assert-Throws { New-AzKeyVaultManagedHsm -Name (getAssetName) -ResourceGroupName (getAssetName) -Location $hsmLocation -Administrator $administrator }
5757
}
5858

5959
finally {

src/KeyVault/KeyVault.Test/Scripts/Common.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ function Cleanup-OldCertificates
207207
$certificatePattern = Get-CertificateName '*'
208208
Get-AzKeyVaultCertificate $keyVault |
209209
Where-Object {$_.Name -like $certificatePattern} |
210-
Remove-AzKeyVaultCertificate -Name $_.Name -VaultName $_.VaultName -Force -Confirm:$false
210+
ForEach-Object { Remove-AzKeyVaultCertificate -Name $_.Name -VaultName $_.VaultName -Force -Confirm:$false }
211211

212212
if($global:softDeleteEnabled -eq $true)
213213
{

src/KeyVault/KeyVault.Test/Scripts/RunKeyVaultTests.ps1

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,15 @@ param(
7070
[string] $StorageResourceId = $null
7171
)
7272

73-
. (Join-Path $PSScriptRoot "..\..\..\..\Common\Commands.ScenarioTests.Common\Common.ps1")
74-
. (Join-Path $PSScriptRoot "..\..\..\..\Common\Commands.ScenarioTests.Common\Assert.ps1")
73+
. (Join-Path $PSScriptRoot "..\..\..\..\tools\ScenarioTest.ResourceManager\Common.ps1")
74+
. (Join-Path $PSScriptRoot "..\..\..\..\tools\ScenarioTest.ResourceManager\Assert.ps1")
7575
. (Join-Path $PSScriptRoot "Common.ps1")
7676
. (Join-Path $PSScriptRoot "VaultKeyTests.ps1")
7777
. (Join-Path $PSScriptRoot "VaultSecretTests.ps1")
7878
. (Join-Path $PSScriptRoot "VaultCertificateTests.ps1");
7979
. (Join-Path $PSScriptRoot "VaultManagedStorageAccountTests.ps1");
8080
. (Join-Path $PSScriptRoot "VaultManagementTests.ps1")
8181
. (Join-Path $PSScriptRoot "ControlPlane\KeyVaultManagementTests.ps1") # Shared between PSH scenario tests and KV-specific script based tests.
82-
. (Join-Path $PSScriptRoot "ControlPlane\Common.ps1")
8382

8483
$global:totalCount = 0
8584
$global:passedCount = 0

src/KeyVault/KeyVault.Test/Scripts/RunUITests.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
[string] $StorageResourceId = $null
88
)
99

10-
. (Join-Path $PSScriptRoot "..\..\..\..\Common\Commands.ScenarioTests.Common\Common.ps1")
11-
. (Join-Path $PSScriptRoot "..\..\..\..\Common\Commands.ScenarioTests.Common\Assert.ps1")
10+
. (Join-Path $PSScriptRoot "..\..\..\..\tools\ScenarioTest.ResourceManager\Common.ps1")
11+
. (Join-Path $PSScriptRoot "..\..\..\..\tools\ScenarioTest.ResourceManager\Assert.ps1")
1212
. (Join-Path $PSScriptRoot "Common.ps1");
1313
. (Join-Path $PSScriptRoot "VaultUITests.ps1");
1414

src/KeyVault/KeyVault.Test/Scripts/VaultCertificateTests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ function Test_NewCertificatePolicy
360360
Assert-NotNull $policy
361361
$policy = New-AzKeyVaultCertificatePolicy -SubjectName "CN=testCertificate" -Ekus "1.0","2.0" -IssuerName Self
362362
Assert-NotNull $policy
363-
Assert-Throws { $policy = New-AzKeyVaultCertificatePolicy -Ekus "1.0","2.0" -SecretContentType application/x-pem-file -ReuseKeyOnRenewal -Disabled -RenewAtNumberOfDaysBeforeExpiry 10 -ValidityInMonths 10 -IssuerName Self }
363+
Assert-Throws { $policy = New-AzKeyVaultCertificatePolicy -SubjectName "CN=testCertificate" -Ekus "1.0","2.0" -SecretContentType application/x-pem-file -ReuseKeyOnRenewal -Disabled -RenewAtNumberOfDaysBeforeExpiry 10 -ValidityInMonths 10 -IssuerName Self }
364364
$policy = New-AzKeyVaultCertificatePolicy -SubjectName "CN=testCertificate" -Ekus "1.0","2.0" -SecretContentType application/x-pem-file -ReuseKeyOnRenewal -Disabled -RenewAtNumberOfDaysBeforeExpiry 10 -ValidityInMonths 10 -IssuerName Self
365365
Assert-NotNull $policy
366366
$policy = New-AzKeyVaultCertificatePolicy -SubjectName "CN=testCertificate" -Ekus "1.0","2.0" -SecretContentType application/x-pem-file -ReuseKeyOnRenewal -Disabled -RenewAtNumberOfDaysBeforeExpiry 10 -ValidityInMonths 10 -IssuerName Self -EmailAtNumberOfDaysBeforeExpiry 15

src/KeyVault/KeyVault.Test/Scripts/VaultSecretTests.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@ function Test_SetSecretVersion
319319
# create a new version
320320
$sec=Set-AzKeyVaultSecret -VaultName $keyVault -Name $secretname -SecretValue $securedata
321321
Assert-NotNull $sec
322+
$v2 = $sec.Version
322323
Assert-SecretAttributes $sec.Attributes $true $null $null $null $null
323324

324325
# Update old version

src/KeyVault/KeyVault/Az.KeyVault.psd1

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,7 @@ NestedModules = @('Microsoft.Azure.PowerShell.Cmdlets.KeyVault.dll', '.\Az.KeyVa
7979
FunctionsToExport = @()
8080

8181
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
82-
CmdletsToExport = 'Add-AzManagedHsmKey', 'Get-AzManagedHsmKey',
83-
'Remove-AzManagedHsmKey', 'Undo-AzManagedHsmKeyRemoval',
84-
'Update-AzManagedHsmKey', 'Backup-AzManagedHsmKey',
85-
'Restore-AzManagedHsmKey', 'Add-AzKeyVaultCertificate',
82+
CmdletsToExport = 'Add-AzKeyVaultCertificate',
8683
'Update-AzKeyVaultCertificate',
8784
'Stop-AzKeyVaultCertificateOperation',
8885
'Get-AzKeyVaultCertificateOperation',
@@ -94,13 +91,13 @@ CmdletsToExport = 'Add-AzManagedHsmKey', 'Get-AzManagedHsmKey',
9491
'Remove-AzKeyVaultCertificateIssuer',
9592
'Remove-AzKeyVaultCertificateOperation',
9693
'Set-AzKeyVaultCertificateIssuer',
97-
'Set-AzKeyVaultCertificatePolicy', 'Get-AzManagedHsm',
98-
'New-AzManagedHsm', 'Remove-AzManagedHsm', 'Update-AzManagedHsm',
94+
'Set-AzKeyVaultCertificatePolicy', 'Get-AzKeyVaultManagedHsm',
95+
'New-AzKeyVaultManagedHsm', 'Remove-AzKeyVaultManagedHsm', 'Update-AzKeyVaultManagedHsm',
9996
'Get-AzKeyVault', 'New-AzKeyVault', 'Remove-AzKeyVault',
100-
'Undo-AzKeyVaultRemoval', 'Backup-AzManagedHsm',
101-
'Restore-AzManagedHsm', 'Get-AzManagedHsmRoleDefinition',
102-
'Get-AzManagedHsmRoleAssignment', 'New-AzManagedHsmRoleAssignment',
103-
'Remove-AzManagedHsmRoleAssignment',
97+
'Undo-AzKeyVaultRemoval', 'Backup-AzKeyVault',
98+
'Restore-AzKeyVault', 'Get-AzKeyVaultRoleDefinition',
99+
'Get-AzKeyVaultRoleAssignment', 'New-AzKeyVaultRoleAssignment',
100+
'Remove-AzKeyVaultRoleAssignment',
104101
'Remove-AzKeyVaultAccessPolicy', 'Set-AzKeyVaultAccessPolicy',
105102
'Backup-AzKeyVaultKey', 'Get-AzKeyVaultKey', 'Get-AzKeyVaultSecret',
106103
'Undo-AzKeyVaultKeyRemoval', 'Undo-AzKeyVaultSecretRemoval',
@@ -127,16 +124,15 @@ CmdletsToExport = 'Add-AzManagedHsmKey', 'Get-AzManagedHsmKey',
127124
'Undo-AzKeyVaultManagedStorageSasDefinitionRemoval',
128125
'Undo-AzKeyVaultManagedStorageAccountRemoval',
129126
'Add-AzKeyVaultNetworkRule', 'Update-AzKeyVaultNetworkRuleSet',
130-
'Remove-AzKeyVaultNetworkRule', 'Backup-AzManagedHsmSecurityDomain',
131-
'Restore-AzManagedHsmSecurityDomain'
127+
'Remove-AzKeyVaultNetworkRule', 'Export-AzKeyVaultSecurityDomain',
128+
'Import-AzKeyVaultSecurityDomain'
132129

133130
# Variables to export from this module
134131
# VariablesToExport = @()
135132

136133
# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
137134
AliasesToExport = 'Set-AzKeyVaultKey', 'Set-AzKeyVaultSecretAttribute',
138-
'Set-AzKeyVaultKeyAttribute', 'Set-AzKeyVaultCertificateAttribute',
139-
'Set-AzManagedHsmKey', 'Set-AzManagedHsmKeyAttribute'
135+
'Set-AzKeyVaultKeyAttribute', 'Set-AzKeyVaultCertificateAttribute'
140136

141137
# DSC resources to export from this module
142138
# DscResourcesToExport = @()

src/KeyVault/KeyVault/ChangeLog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
* Supported "all" as an option when setting key vault access policies
2222
* Supported new version of SecretManagement module [#13366]
2323
* Supported ByteArray, String, PSCredential and Hashtable for `SecretValue` in SecretManagementModule [#12190]
24+
* [Breaking change] redesigned the API surface of cmdlets related to managed HSM.
2425

2526
## Version 3.1.0
2627
* Supported updating key vault tag

0 commit comments

Comments
 (0)