@@ -49,13 +49,17 @@ Param($rgName, $location, $tagName, $tagValue)
49
49
" backup" ,
50
50
" restore" )
51
51
$expectedPermsToSecrets = @ (" all" )
52
+ $expectedPermsToSecrets = @ (" all" )
53
+ $expectedPermsToCertificates = @ (" all" )
52
54
53
55
Assert-AreEqual 1 @ ($actual.AccessPolicies ).Count
54
56
Assert-AreEqual $objectId $actual.AccessPolicies [0 ].ObjectId
55
57
$result = Compare-Object $expectedPermsToKeys $actual.AccessPolicies [0 ].PermissionsToKeys
56
58
Assert-Null $result
57
59
$result = Compare-Object $expectedPermsToSecrets $actual.AccessPolicies [0 ].PermissionsToSecrets
58
60
Assert-Null $result
61
+ $result = Compare-Object $expectedPermsToCertificates $actual.AccessPolicies [0 ].PermissionsToCertificates
62
+ Assert-Null $result
59
63
}
60
64
61
65
<#
@@ -238,11 +242,12 @@ function Test-SetRemoveAccessPolicyByUPN
238
242
239
243
$PermToKeys = @ (" encrypt" , " decrypt" , " unwrapKey" , " wrapKey" , " verify" , " sign" , " get" , " list" , " update" , " create" , " import" , " delete" , " backup" , " restore" )
240
244
$PermToSecrets = @ (" get" , " list" , " set" , " delete" )
241
-
242
- $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - UserPrincipalName $upn - PermissionsToKeys $PermToKeys - PermissionsToSecrets $PermToSecrets - PassThru
243
-
244
- CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
245
- if (-not $global :noADCmdLetMode ) {
245
+ $PermToCertificates = @ (" get" , " list" , " set" , " delete" )
246
+
247
+ $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - UserPrincipalName $upn - PermissionsToKeys $PermToKeys - PermissionsToSecrets $PermToSecrets - PermissionsToCertificates $PermToCertificates - PassThru
248
+
249
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
250
+ if (-not $global :noADCmdLetMode ) {
246
251
Assert-AreEqual $upn (Get-AzureRmADUser - ObjectId $vault.AccessPolicies [0 ].ObjectId)[0 ].UserPrincipalName
247
252
}
248
253
@@ -256,16 +261,17 @@ function Test-SetRemoveAccessPolicyBySPN
256
261
257
262
$PermToKeys = @ ()
258
263
$PermToSecrets = @ (" get" , " set" , " list" )
259
-
260
- $setAccessPolicyFunc = { Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ServicePrincipalName $spn - PermissionsToKeys $PermToKeys - PermissionsToSecrets $PermToSecrets - PassThru }
261
-
264
+ $PermToCertificates = @ (" get" , " set" )
265
+
266
+ $setAccessPolicyFunc = { Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ServicePrincipalName $spn - PermissionsToKeys $PermToKeys - PermissionsToSecrets $PermToSecrets - PermissionsToCertificates $PermToCertificates - PassThru }
267
+
262
268
if ($global :noADCmdLetMode ) {
263
269
Assert-Throws { & $setAccessPolicyFunc }
264
270
}
265
271
else {
266
272
$vault = & $setAccessPolicyFunc
267
273
268
- CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
274
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
269
275
270
276
Assert-AreEqual $spn (Get-AzureRmADServicePrincipal - ObjectId $vault.AccessPolicies [0 ].ObjectId)[0 ].ServicePrincipalName
271
277
@@ -280,20 +286,20 @@ function Test-SetRemoveAccessPolicyByObjectId
280
286
281
287
$PermToKeys = @ (" encrypt" , " decrypt" )
282
288
$PermToSecrets = @ ()
289
+ $PermToCertificates = @ (" all" )
283
290
284
291
$vault ;
285
292
if ($bypassObjectIdValidation.IsPresent )
286
293
{
287
- $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - BypassObjectIdValidation - PassThru
294
+ $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - PermissionsToCertificates $PermToCertificates - BypassObjectIdValidation - PassThru
288
295
}
289
296
else
290
297
{
291
- $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - PassThru
298
+ $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - PermissionsToCertificates $PermToCertificates - PassThru
292
299
}
293
300
294
-
295
- CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
296
-
301
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
302
+
297
303
Assert-AreEqual $objId $vault.AccessPolicies [0 ].ObjectId
298
304
299
305
$vault = Remove-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PassThru
@@ -308,10 +314,11 @@ function Test-SetRemoveAccessPolicyByCompoundId
308
314
309
315
$PermToKeys = @ (" encrypt" , " decrypt" )
310
316
$PermToSecrets = @ ()
311
- $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PermissionsToKeys $PermToKeys - PassThru
312
-
313
- CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
317
+ $PermToCertificates = @ (" list" , " delete" )
318
+ $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PermissionsToKeys $PermToKeys - PermissionsToCertificates $PermToCertificates - PassThru
314
319
320
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
321
+
315
322
Assert-AreEqual $objId $vault.AccessPolicies [0 ].ObjectId
316
323
Assert-AreEqual $appId $vault.AccessPolicies [0 ].ApplicationId
317
324
@@ -329,9 +336,10 @@ function Test-RemoveAccessPolicyWithCompoundIdPolicies
329
336
# Add three access policies: ObjectId, (ObjectId, App1), (ObjectId, App2)
330
337
$PermToKeys = @ (" encrypt" , " decrypt" )
331
338
$PermToSecrets = @ ()
339
+ $PermToCertificates = @ (" all" )
332
340
$vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - PassThru
333
341
$vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId1 - PermissionsToKeys $PermToKeys - PassThru
334
- $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId2 - PermissionsToKeys $PermToKeys - PassThru
342
+ $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId2 - PermissionsToKeys $PermToKeys - PermissionsToCertificates $PermToCertificates - PassThru
335
343
Assert-AreEqual 3 $vault.AccessPolicies.Count
336
344
337
345
# Remove one policy if specify compound id
@@ -352,10 +360,11 @@ function Test-SetCompoundIdAccessPolicy
352
360
# Add one compound id policy
353
361
$PermToKeys = @ (" encrypt" , " decrypt" )
354
362
$PermToSecrets = @ ()
355
- $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PermissionsToKeys $PermToKeys - PassThru
356
-
357
- CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
363
+ $PermToCertificates = @ ()
364
+ $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PermissionsToKeys $PermToKeys - PermissionsToCertificates $PermToCertificates - PassThru
358
365
366
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
367
+
359
368
Assert-AreEqual $objId $vault.AccessPolicies [0 ].ObjectId
360
369
Assert-AreEqual $appId $vault.AccessPolicies [0 ].ApplicationId
361
370
@@ -367,7 +376,7 @@ function Test-SetCompoundIdAccessPolicy
367
376
$vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PermissionsToKeys @ (" encrypt" ) - PassThru
368
377
Assert-AreEqual 2 $vault.AccessPolicies.Count
369
378
$vault = Remove-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - ApplicationId $appId - PassThru
370
- CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
379
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
371
380
Assert-AreEqual $objId $vault.AccessPolicies [0 ].ObjectId
372
381
Assert-AreEqual $vault.AccessPolicies [0 ].ApplicationId $null
373
382
@@ -391,7 +400,8 @@ function Test-ModifyAccessPolicy
391
400
# Add some perms now
392
401
$PermToKeys = @ (" encrypt" , " decrypt" , " unwrapKey" , " wrapKey" , " verify" , " sign" , " get" , " list" , " update" , " create" , " import" , " delete" , " backup" , " restore" )
393
402
$PermToSecrets = @ (" get" , " list" , " set" , " delete" )
394
- $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - PermissionsToSecrets $PermToSecrets - PassThru
403
+ $PermToCertificates = @ (" list" , " delete" )
404
+ $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - PermissionsToSecrets $PermToSecrets - PermissionsToCertificates $PermToCertificates - PassThru
395
405
396
406
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
397
407
Assert-AreEqual $objId $vault.AccessPolicies [0 ].ObjectId
@@ -400,22 +410,29 @@ function Test-ModifyAccessPolicy
400
410
$vault.AccessPolicies [0 ].PermissionsToKeys.Remove(" unwrapKey" )
401
411
$vault = $vault.AccessPolicies [0 ] | Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - PassThru
402
412
403
- $PermToKeys = @ (" encrypt" , " decrypt" , " wrapKey" , " verify" , " sign" , " get" , " list" , " update" , " create" , " import" , " delete" , " backup" , " restore" )
404
- CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
413
+ $PermToKeys = @ (" encrypt" , " decrypt" , " wrapKey" , " verify" , " sign" , " get" , " list" , " update" , " create" , " import" , " delete" , " backup" , " restore" )
414
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
405
415
406
416
# Change just the secrets perms
407
417
$PermToSecrets = @ (" all" )
408
418
$vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToSecrets $PermToSecrets - PassThru
409
- CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
419
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
410
420
411
421
# Remove just the keys perms
412
422
$PermToKeys = @ ()
413
423
$vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - PassThru
414
- CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
415
-
424
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
425
+
416
426
# Remove secret perms too
417
427
$PermToSecrets = @ ()
418
428
$vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys $PermToKeys - PermissionsToSecrets $PermToSecrets - PassThru
429
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
430
+
431
+ # Finally remove certificates perms
432
+ $PermToCertificates = @ ()
433
+ $vault = Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToCertificates $PermToCertificates - PassThru
434
+ CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
435
+
419
436
Assert-NotNull $vault
420
437
Assert-AreEqual 0 $vault.AccessPolicies.Count
421
438
}
@@ -493,9 +510,11 @@ function Test-ModifyAccessPolicyNegativeCases
493
510
# "all" plus other perms
494
511
Assert-Throws { Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToKeys get, all }
495
512
Assert-Throws { Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToSecrets get, all }
513
+ Assert-Throws { Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToCertificates get, all }
496
514
497
515
# random string in perms
498
516
Assert-Throws { Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToSecrets blah, get }
517
+ Assert-Throws { Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName - ObjectId $objId - PermissionsToCertificates blah, get }
499
518
500
519
# invalid set of params
501
520
Assert-Throws { Set-AzureRmKeyVaultAccessPolicy - VaultName $existingVaultName - ResourceGroupName $rgName }
@@ -533,12 +552,14 @@ function Test-CreateDeleteVaultWithPiping
533
552
534
553
function CheckVaultAccessPolicy
535
554
{
536
- Param ($vault , $expectedPermsToKeys , $expectedPermsToSecrets )
555
+ Param ($vault , $expectedPermsToKeys , $expectedPermsToSecrets , $expectedPermsToCertificates )
537
556
Assert-NotNull $vault
538
557
Assert-AreEqual 1 $vault.AccessPolicies.Count
539
558
540
559
$compare = Compare-Object $vault.AccessPolicies [0 ].PermissionsToKeys $expectedPermsToKeys
541
560
Assert-Null $compare
542
561
$compare = Compare-Object $vault.AccessPolicies [0 ].PermissionsToSecrets $expectedPermsToSecrets
543
562
Assert-Null $compare
563
+ $compare = Compare-Object $vault.AccessPolicies [0 ].PermissionsToCertificates $expectedPermsToCertificates
564
+ Assert-Null $compare
544
565
}
0 commit comments