Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/Compute/Compute.Test/ScenarioTests/DiskRPTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -163,5 +163,12 @@ public void TestDiskAcceleratedNetworkAndPublicNetworkAccess()
{
TestRunner.RunTestScript("Test-DiskAcceleratedNetworkAndPublicNetworkAccess");
}

[Fact]
[Trait(Category.AcceptanceType, Category.LiveOnly)]
public void TestSecurityProfileStandard()
{
TestRunner.RunTestScript("Test-SecurityProfileStandard");
}
}
}
29 changes: 29 additions & 0 deletions src/Compute/Compute.Test/ScenarioTests/DiskRPTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -1518,6 +1518,35 @@ function Test-SecurityProfile
}
}

<#
.SYNOPSIS
Test Set-AzDiskSecurityProfile with the Standard securityType.
There should be no securityProfile made for Standard at this time.
#>
function Test-SecurityProfileStandard
{
$rgname = Get-ComputeTestResourceName;
$loc = "eastus2";

try
{
New-AzResourceGroup -Name $rgname -Location $loc -Force;

# Standard SecurityType
$diskconfig = New-AzDiskConfig -Location $loc -DiskSizeGB 1 -AccountType "Premium_LRS" -OsType "Windows" -CreateOption "Empty" -HyperVGeneration "V1";
$diskname = "diskstnd" + $rgname;
$diskconfig = Set-AzDiskSecurityProfile -Disk $diskconfig -SecurityType "Standard";
$diskPr = New-AzDisk -ResourceGroupName $rgname -DiskName $diskname -Disk $diskconfig;
$disk = Get-AzDisk -ResourceGroupName $rgname -DiskName $diskname;
Assert-Null $disk.SecurityProfile;
}
finally
{
# Cleanup
Clean-ResourceGroup $rgname
}
}

<#
.SYNOPSIS
Test SupportsHibernation Parameter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -339,5 +339,19 @@ public void TestVirtualMachineScaleSetSecurityTypeWithoutConfig()
{
TestRunner.RunTestScript("Test-VirtualMachineScaleSetSecurityTypeWithoutConfig");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestVirtualMachineScaleSetSecurityTypeStandard()
{
TestRunner.RunTestScript("Test-VirtualMachineScaleSetSecurityTypeStandard");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestVirtualMachineScaleSetSecurityTypeStandardWithConfig()
{
TestRunner.RunTestScript("Test-VirtualMachineScaleSetSecurityTypeStandardWithConfig");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4527,7 +4527,6 @@ function Test-VirtualMachineScaleSetSecurityType
}
}


<#
.SYNOPSIS
Test Virtual Machine Scale Set VtpmEabled and SecureBootEnabled
Expand Down Expand Up @@ -4605,3 +4604,115 @@ function Test-VirtualMachineScaleSetSecurityTypeWithoutConfig
Clean-ResourceGroup $rgname;
}
}

<#
.SYNOPSIS
Test Virtual Machine Scale Set with SecurityType of Standard.
#>
function Test-VirtualMachineScaleSetSecurityTypeStandard
{
# Setup
$rgname = Get-ComputeTestResourceName;
$loc = Get-ComputeVMLocation;

try
{
# Common
New-AzResourceGroup -Name $rgname -Location $loc -Force;

$vmssSize = 'Standard_D4s_v3';
$vmssName1 = 'vmss1' + $rgname;
$imageName = "Win2016DataCenterGenSecond";
$PublisherName = "MicrosoftWindowsServer";
$Offer = "WindowsServer";
$SKU = "2016-datacenter-gensecond";
$domainNameLabel1 = "d1" + $rgname;
$disable = $false;
$enable = $true;
$securityTypeStnd = "Standard";
$adminUsername = Get-ComputeTestResourceName;
$adminPassword = Get-PasswordForVM | ConvertTo-SecureString -AsPlainText -Force;
$vmCred = New-Object System.Management.Automation.PSCredential ($adminUsername, $adminPassword);

# Create Vmss
$vmss = New-AzVmss -ResourceGroupName $rgname -Credential $vmCred -VMScaleSetName $vmssName1 -ImageName $imageName -DomainNameLabel $domainNameLabel1 -SecurityType $securityTypeStnd;

Assert-Null $vmss.VirtualMachineProfile.SecurityProfile;
}
finally
{
# Cleanup
Clean-ResourceGroup $rgname;
}
}

<#
.SYNOPSIS
Test Virtual Machine Scale Set with SecurityType of Standard with Config.
No SecurityPRofile should be made for now in this scenario.
#>
function Test-VirtualMachineScaleSetSecurityTypeStandardWithConfig
{
# Setup
$rgname = Get-ComputeTestResourceName;
$loc = Get-ComputeVMLocation;

try
{
# Common
New-AzResourceGroup -Name $rgname -Location $loc -Force;

$vmssSize = 'Standard_D4s_v3';
$PublisherName = "MicrosoftWindowsServer";
$Offer = "WindowsServer";
$SKU = "2016-datacenter-gensecond";
$securityType = "Standard";
$enable = $true;
$disable = $false;

# NRP
$vnetworkName = 'vnet' + $rgname;
$subnetName = 'subnet' + $rgname;
$subnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix "10.0.0.0/24";
$vnet = New-AzVirtualNetwork -Name $vnetworkName -ResourceGroupName $rgname -Location $loc -AddressPrefix "10.0.0.0/16" -Subnet $subnet;
$vnet = Get-AzVirtualNetwork -Name $vnetworkName -ResourceGroupName $rgname;
$subnetId = $vnet.Subnets[0].Id;

# New VMSS Parameters
$vmssName1 = 'vmss1' + $rgname;
$vmssType = 'Microsoft.Compute/virtualMachineScaleSets';

$adminUsername = Get-ComputeTestResourceName;
$adminPassword = Get-PasswordForVM | ConvertTo-SecureString -AsPlainText -Force;

$imgRef = New-Object -TypeName 'Microsoft.Azure.Commands.Compute.Models.PSVirtualMachineImage';
$imgRef.PublisherName = $PublisherName;
$imgRef.Offer = $Offer;
$imgRef.Skus = $SKU;
$imgRef.Version = "latest";


$ipCfg = New-AzVmssIPConfig -Name 'test' -SubnetId $subnetId;

$vmss = New-AzVmssConfig -Location $loc -SkuCapacity 2 -SkuName $vmssSize -UpgradePolicyMode 'Manual' `
| Add-AzVmssNetworkInterfaceConfiguration -Name 'test' -Primary $true -IPConfiguration $ipCfg `
| Set-AzVmssOSProfile -ComputerNamePrefix 'test' -AdminUsername $adminUsername -AdminPassword $adminPassword `
| Set-AzVmssStorageProfile -OsDiskCreateOption 'FromImage' -OsDiskCaching 'ReadOnly' `
-ImageReferenceOffer $imgRef.Offer -ImageReferenceSku $imgRef.Skus -ImageReferenceVersion $imgRef.Version `
-ImageReferencePublisher $imgRef.PublisherName ;

# Create Vmss
$vmss1 = Set-AzVmssSecurityProfile -VirtualMachineScaleSet $vmss -SecurityType $securityType;
$result = New-AzVmss -ResourceGroupName $rgname -VMScaleSetName $vmssName1 -VirtualMachineScaleSet $vmss1;
$vmssGet = Get-AzVmss -ResourceGroupName $rgname -VMScaleSetName $vmssName1;

# Verify security value
Assert-Null $vmssGet.VirtualMachineProfile.SecurityProfile;

}
finally
{
# Cleanup
Clean-ResourceGroup $rgname;
}
}
14 changes: 14 additions & 0 deletions src/Compute/Compute.Test/ScenarioTests/VirtualMachineTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -591,5 +591,19 @@ public void TestVirtualMachineSecurityTypeWithoutConfig()
{
TestRunner.RunTestScript("Test-VirtualMachineSecurityTypeWithoutConfig");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestVirtualMachineSecurityTypeStandard()
{
TestRunner.RunTestScript("Test-VirtualMachineSecurityTypeStandard");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestVirtualMachineSecurityTypeStandardWithConfig()
{
TestRunner.RunTestScript("Test-VirtualMachineSecurityTypeStandardWithConfig");
}
}
}
113 changes: 113 additions & 0 deletions src/Compute/Compute.Test/ScenarioTests/VirtualMachineTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6754,5 +6754,118 @@ function Test-VirtualMachineSecurityTypeWithoutConfig
# Cleanup
Clean-ResourceGroup $rgname;
}
}

<#
.SYNOPSIS
Test Virtual Machines SecurityType parameter with the Standard value.
This should prevent the TrustedLaunch value from being defaulted in.
No SecurityProfile value should be made at this time.
#>
function Test-VirtualMachineSecurityTypeStandard
{
# Setup
$rgname = Get-ComputeTestResourceName;
$loc = Get-ComputeVMLocation;
try
{
New-AzResourceGroup -Name $rgname -Location $loc -Force;

$domainNameLabel1 = "d1" + $rgname;
$vmsize = 'Standard_D4s_v3';
$vmname1 = $rgname + 'V';
$imageName = "Win2016DataCenterGenSecond";
$disable = $false;
$enable = $true;
$securityTypeStnd = "Standard";

# Creating a VM using Simple parameterset
$password = Get-PasswordForVM;
$user = Get-ComputeTestResourceName;
$securePassword = $password | ConvertTo-SecureString -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);

# Create Vmss
New-AzVM -ResourceGroupName $rgname -Location $loc -Name $vmname1 -Credential $cred -Size $vmsize -Image $imageName -DomainNameLabel $domainNameLabel1 -SecurityType $securityTypeStnd;
# Verify security value
$vm1 = Get-AzVM -ResourceGroupName $rgname -Name $vmname1;
Assert-Null $vm1.SecurityProfile;

# validate GA extension is not installed by default.
$extDefaultName = "GuestAttestation";
$vmGADefaultIDentity = "SystemAssignedUserAssigned";
$vmname = $vmname1;
$vm = Get-AzVm -ResourceGroupName $rgname -Name $vmName;
Assert-ThrowsContains { Get-AzVMExtension -ResourceGroupName $rgname -VMName $vmName -Name $extDefaultName; } "was not found. For more details please go to"
}
finally
{
# Cleanup
Clean-ResourceGroup $rgname;
}
}

<#
.SYNOPSIS
Test Virtual Machines SecurityType parameter with the Standard value with New-AzVMConfig.
No SecurityProfile should be made at this time.
#>
function Test-VirtualMachineSecurityTypeStandardWithConfig
{
# Setup
$rgname = Get-ComputeTestResourceName;
$loc = Get-ComputeVMLocation;
try
{
New-AzResourceGroup -Name $rgname -Location $loc -Force;
$domainNameLabel = "d1" + $rgname;
$vmsize = 'Standard_D4s_v3';
$vmname = $rgname + 'Vm';
$securityTypeStnd = "Standard";
$vnetname = "myVnet";
$vnetAddress = "10.0.0.0/16";
$subnetname = "slb" + $rgname;
$subnetAddress = "10.0.2.0/24";
$OSDiskName = $vmname + "-osdisk";
$NICName = $vmname+ "-nic";
$NSGName = $vmname + "-NSG";
$OSDiskSizeinGB = 128;
$PublisherName = "MicrosoftWindowsServer";
$Offer = "WindowsServer";
$SKU = "2016-datacenter-gensecond";
$disable = $false;
$enable = $true;

# Creating a VM using Simple parameterset
$password = Get-PasswordForVM;
$user = Get-ComputeTestResourceName;
$securePassword = $password | ConvertTo-SecureString -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);

$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetname -AddressPrefix $subnetAddress;

$vnet = New-AzVirtualNetwork -Name $vnetname -ResourceGroupName $rgname -Location $loc -AddressPrefix $vnetAddress -Subnet $frontendSubnet;

$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name RDP -Protocol Tcp -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow;
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgname -Location $loc -Name $NSGName -SecurityRules $nsgRuleRDP;
$nic = New-AzNetworkInterface -Name $NICName -ResourceGroupName $rgname -Location $loc -SubnetId $vnet.Subnets[0].Id -NetworkSecurityGroupId $nsg.Id -EnableAcceleratedNetworking;

# VM
$vmConfig = New-AzVMConfig -VMName $vmname -VMSize $vmsize;
Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmname -Credential $cred;
Set-AzVMSourceImage -VM $vmConfig -PublisherName $PublisherName -Offer $Offer -Skus $SKU -Version latest ;
Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id;

# Create Vmss
$vmConfig = Set-AzVMSecurityProfile -VM $vmConfig -SecurityType $securityTypeStnd;
New-AzVM -ResourceGroupName $rgname -Location $loc -VM $vmConfig;
# Verify security value
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname;
Assert-Null $vm.SecurityProfile;
}
finally
{
# Cleanup
Clean-ResourceGroup $rgname;
}
}
Loading