@@ -896,6 +896,8 @@ function Test-ClientEncryptionKeyCmdlets
896
896
$DatabaseName = " dbNameCdbAE"
897
897
$ClientEncryptionKeyName = " cek1"
898
898
$EncryptionAlgorithm = " AEAD_AES_256_CBC_HMAC_SHA256"
899
+ $EncryptionType_1 = " Deterministic"
900
+ $EncryptionType_2 = " Randomized"
899
901
$keywrapmetadataName = " cmk1v1"
900
902
$keywrapmetadataName2 = " cmk1v2"
901
903
$keywrapmetadataType = " AZURE_KEY_VAULT"
@@ -932,6 +934,7 @@ function Test-ClientEncryptionKeyCmdlets
932
934
Remove-AzKeyVault - VaultName $vaultName - InRemovedState - Force - Location $location
933
935
}
934
936
catch {}
937
+
935
938
$encryptionKeyVault = New-AzKeyVault - VaultName $vaultName - ResourceGroupName $rgName - Location $location
936
939
937
940
# add access police for key-vault
@@ -985,6 +988,37 @@ function Test-ClientEncryptionKeyCmdlets
985
988
Assert-AreEqual $UpdatedClientEncryptionKey.Resource.keyWrapMetadata.type $keywrapmetadataType
986
989
Assert-AreEqual $UpdatedClientEncryptionKey.Resource.keyWrapMetadata.value $encryptionKey2
987
990
Assert-AreEqual $UpdatedClientEncryptionKey.Resource.keyWrapMetadata.algorithm $keywrapmetadataAlgo
991
+
992
+ # Test - validate client encryption policy creation.
993
+ $includedPath_1 = [Microsoft.Azure.Management.CosmosDB.Models.ClientEncryptionIncludedPath ]::new(" /path1" , $ClientEncryptionKeyName , $EncryptionType_1 , $EncryptionAlgorithm );
994
+ $includedPath_2 = [Microsoft.Azure.Management.CosmosDB.Models.ClientEncryptionIncludedPath ]::new(" /path2" , $ClientEncryptionKeyName , $EncryptionType_2 , $EncryptionAlgorithm );
995
+ $listofIncludedPaths = New-Object Collections.Generic.List[Microsoft.Azure.Management.CosmosDB.Models.ClientEncryptionIncludedPath ]
996
+ $listofIncludedPaths.Add ($includedPath_1 )
997
+ $listofIncludedPaths.Add ($includedPath_2 )
998
+ $newClientEncryptionPolicy = New-Object Microsoft.Azure.Management.CosmosDB.Models.ClientEncryptionPolicy
999
+ $newClientEncryptionPolicy.IncludedPaths = $listofIncludedPaths
1000
+ # verify the default policy version 1 is picked up
1001
+ $newClientEncryptionPolicy.PolicyFormatVersion = 187
1002
+ $newPSSqlClientEncryptionPolicy = [Microsoft.Azure.Commands.CosmosDB.Models.PSSqlClientEncryptionPolicy ]::new($newClientEncryptionPolicy )
1003
+
1004
+ $ContainerWithEncryptionPolicy = " containerWithEncryptionPolicy"
1005
+ # create a container with the above policy
1006
+ New-AzCosmosDBSqlContainer - AccountName $AccountName - ResourceGroupName $rgName - DatabaseName $DatabaseName - Name $ContainerWithEncryptionPolicy - PartitionKeyPath " /pk" - PartitionKeyKind Hash - ClientEncryptionPolicy $newPSSqlClientEncryptionPolicy
1007
+
1008
+ $ContainerWithEncryptionPolicy = Get-AzCosmosDBSqlContainer - AccountName $AccountName - ResourceGroupName $rgName - DatabaseName $DatabaseName - Name $ContainerWithEncryptionPolicy
1009
+
1010
+ Assert-AreEqual $ContainerWithEncryptionPolicy.Resource.ClientEncryptionPolicy.IncludedPaths [0 ].Path " /path1"
1011
+ Assert-AreEqual $ContainerWithEncryptionPolicy.Resource.ClientEncryptionPolicy.IncludedPaths [0 ].ClientEncryptionKeyId $ClientEncryptionKeyName
1012
+ Assert-AreEqual $ContainerWithEncryptionPolicy.Resource.ClientEncryptionPolicy.IncludedPaths [0 ].EncryptionAlgorithm $EncryptionAlgorithm
1013
+ Assert-AreEqual $ContainerWithEncryptionPolicy.Resource.ClientEncryptionPolicy.IncludedPaths [0 ].EncryptionType $EncryptionType_1
1014
+ Assert-AreEqual $ContainerWithEncryptionPolicy.Resource.ClientEncryptionPolicy.PolicyFormatVersion 1
1015
+
1016
+ Assert-AreEqual $ContainerWithEncryptionPolicy.Resource.ClientEncryptionPolicy.IncludedPaths [1 ].Path " /path2"
1017
+ Assert-AreEqual $ContainerWithEncryptionPolicy.Resource.ClientEncryptionPolicy.IncludedPaths [1 ].ClientEncryptionKeyId $ClientEncryptionKeyName
1018
+ Assert-AreEqual $ContainerWithEncryptionPolicy.Resource.ClientEncryptionPolicy.IncludedPaths [1 ].EncryptionAlgorithm $EncryptionAlgorithm
1019
+ Assert-AreEqual $ContainerWithEncryptionPolicy.Resource.ClientEncryptionPolicy.IncludedPaths [1 ].EncryptionType $EncryptionType_2
1020
+ Assert-AreEqual $ContainerWithEncryptionPolicy.Resource.ClientEncryptionPolicy.PolicyFormatVersion 1
1021
+
988
1022
}
989
1023
Finally {
990
1024
Remove-AzCosmosDBSqlDatabase - AccountName $AccountName - ResourceGroupName $rgName - Name $DatabaseName
0 commit comments