azure_postgresql_database resource
Use the azure_postgresql_database InSpec audit resource to test the properties and configuration of an Azure PostgreSQL database on a PostgreSQL server.
Azure REST API version, endpoint, and HTTP client parameters
This resource interacts with API versions supported by the resource provider.
You can specify the api_version as a resource parameter to use a specific version of the Azure REST API.
If you don’t specify an API version, this resource uses the latest version available.
For more information about API versioning, see the azure_generic_resource.
By default, this resource uses the azure_cloud global endpoint and default HTTP client settings.
You can override these settings if you need to connect to a different Azure environment (such as Azure Government or Azure China).
For more information about configuration options, see the resource pack README.
Syntax
resource_group, server_name and name, or the resource_id are required parameters.
describe azure_postgresql_database(resource_group: 'RESOURCE_GROUP', server_name: 'SERVER_NAME', name: 'DATABASE_NAME') do
it { should exist }
end
describe azure_postgresql_database(resource_id: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/databases/{databaseName}') do
it { should exist }
end
Parameters
resource_group- Azure resource group where the targeted resource resides.
server_name- The name of the server on which the database resides.
name- The unique name of the database.
database_name- Alias for the
nameparameter. resource_id- The unique resource ID.
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/databases/{databaseName}.
Either one of the parameter sets can be provided for a valid query:
resource_idresource_group,server_name, andnameresource_group,server_name, anddatabase_name
Properties
properties.charset- The charset of the database.
For properties applicable to all resources, such as type, tags, id, and properties, refer to azure_generic_resource.
Also, see the Azure documentation for other available properties.
You can access any attribute in the response with the key names separated by dots (.).
Examples
Test the resource name:
describe azure_postgresql_database(resource_group: 'RESOURCE_GROUP', server_name: 'SERVER_NAME', name: 'DATABASE_NAME') do
its('name') { should be 'order-db' }
end
describe azure_postgresql_database(resource_id: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}/databases/order-db') do
its('name') { should be 'order-db' }
end
Matchers
This InSpec audit resource has the following special matchers. For a full list of available matchers, please visit our Universal Matchers page.
exists
# If we expect the resource to always exist.
describe azure_postgresql_database(resource_group: 'RESOURCE_GROUP', server_name: 'SERVER_NAME', name: 'DATABASE_NAME') do
it { should exist }
end
not_exists
# If we expect the resource to never exist.
describe azure_postgresql_database(resource_group: 'RESOURCE_GROUP', server_name: 'SERVER_NAME', name: 'DATABASE_NAME') do
it { should_not exist }
end
Azure permissions
Your Service Principal must be set up with at least a contributor role on the subscription you wish to test.