2017-12-12 18:20:22 +00:00
|
|
|
title 'Resource Group Type Counts'
|
|
|
|
|
|
|
|
control 'azure-resource-group-1.0' do
|
|
|
|
impact 1.0
|
|
|
|
title 'Ensure that the specified resource group has the correct number of Azure resources and metadata'
|
|
|
|
|
|
|
|
# Obtain counts for all resources in the resource group
|
|
|
|
describe azure_resource_group(name: 'Inspec-Azure') do
|
|
|
|
# Ensure that the name is correct - this is a little superfluous as this was used to select the resource
|
|
|
|
its('name') { should cmp 'Inspec-Azure' }
|
|
|
|
|
|
|
|
# Where in Azure is the resource group located
|
|
|
|
its('location') { should cmp 'westeurope' }
|
|
|
|
|
|
|
|
# Was the resource group provisionned successfully?
|
|
|
|
its('provisioning_state') { should cmp 'Succeeded' }
|
|
|
|
|
|
|
|
# Make sure that the resource group has tags on it
|
|
|
|
it { should have_tags }
|
|
|
|
its('tag_count') { should be 1 }
|
|
|
|
its('tags') { should include 'CreatedBy' }
|
2018-10-15 16:09:46 +00:00
|
|
|
its('CreatedBy_tag') { should cmp 'InSpec Azure Integration Tests' }
|
2017-12-12 18:20:22 +00:00
|
|
|
|
|
|
|
# How many resources are in the resource group in total
|
|
|
|
its('total') { should eq 13 }
|
|
|
|
|
|
|
|
# Does the RG have virtual machines and how many
|
|
|
|
it { should have_vms }
|
|
|
|
its('vm_count') { should eq 3 }
|
|
|
|
|
|
|
|
# Does the RG have network cards and how many
|
|
|
|
it { should have_nics }
|
|
|
|
its('nic_count') { should eq 3 }
|
|
|
|
|
|
|
|
# Does the RG have any public ip addresses and how many
|
|
|
|
it { should have_public_ips }
|
|
|
|
its('public_ip_count') { should eq 1 }
|
|
|
|
|
|
|
|
# Does the RG have network security groups and how many
|
|
|
|
it { should have_nsgs }
|
|
|
|
its('nsg_count') { should eq 1 }
|
|
|
|
|
|
|
|
# Does the RG have storage accounts and how many
|
|
|
|
it { should have_sas }
|
|
|
|
its('sa_count') { should eq 1 }
|
|
|
|
|
|
|
|
# Does the RG have virtual networks and how many
|
|
|
|
it { should have_vnets }
|
|
|
|
its('vnet_count') { should eq 1 }
|
|
|
|
|
|
|
|
# Does the RG have managed disks and how many
|
|
|
|
it { should have_managed_disks }
|
|
|
|
its('managed_disk_count') { should eq 3 }
|
|
|
|
|
|
|
|
# Does the RG have managed disk images
|
|
|
|
it { should_not have_managed_disk_images }
|
|
|
|
its('managed_disk_image_count') { should eq 0 }
|
|
|
|
end
|
|
|
|
end
|