Policy Assignments - List For Resource

Retrieves all policy assignments that apply to a resource.
This operation retrieves the list of all policy assignments associated with the specified resource in the given resource group and subscription that match the optional given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, the unfiltered list includes all policy assignments associated with the resource, including those that apply directly or from all containing scopes, as well as any applied to resources contained within the resource. If $filter=atScope() is provided, the returned list includes all policy assignments that apply to the resource, which is everything in the unfiltered list except those applied to resources contained within the resource. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the resource level. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value} that apply to the resource. Three parameters plus the resource name are used to identify a specific resource. If the resource is not part of a parent resource (the more common case), the parent resource path should not be provided (or provided as ''). For example a web app could be specified as ({resourceProviderNamespace} == 'Microsoft.Web', {parentResourcePath} == '', {resourceType} == 'sites', {resourceName} == 'MyWebApp'). If the resource is part of a parent resource, then all parameters should be provided. For example a virtual machine DNS name could be specified as ({resourceProviderNamespace} == 'Microsoft.Compute', {parentResourcePath} == 'virtualMachines/MyVirtualMachine', {resourceType} == 'domainNames', {resourceName} == 'MyComputerName'). A convenient alternative to providing the namespace and type name separately is to provide both in the {resourceType} parameter, format: ({resourceProviderNamespace} == '', {parentResourcePath} == '', {resourceType} == 'Microsoft.Web/sites', {resourceName} == 'MyWebApp').

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}/providers/Microsoft.Authorization/policyAssignments?api-version=2023-04-01
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}/providers/Microsoft.Authorization/policyAssignments?$filter={$filter}&$top={$top}&api-version=2023-04-01

URI Parameters

Name In Required Type Description
parentResourcePath
path True

string

The parent resource path. Use empty string if there is none.

resourceGroupName
path True

string

The name of the resource group containing the resource.

Regex pattern: ^[-\w\._\(\)]+$

resourceName
path True

string

The name of the resource.

Regex pattern: ^.+$

resourceProviderNamespace
path True

string

The namespace of the resource provider. For example, the namespace of a virtual machine is Microsoft.Compute (from Microsoft.Compute/virtualMachines)

resourceType
path True

string

The resource type name. For example the type name of a web app is 'sites' (from Microsoft.Web/sites).

subscriptionId
path True

string

uuid

The ID of the target subscription. The value must be an UUID.

api-version
query True

string

The API version to use for this operation.

$filter
query

string

The filter to apply on the operation. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atScope() is provided, the returned list only includes all policy assignments that apply to the scope, which is everything in the unfiltered list except those applied to sub scopes contained within the given scope. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the given scope. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value}.

$top
query

integer

int32

Maximum number of records to return. When the $top filter is not provided, it will return 500 records.

Responses

Name Type Description
200 OK

PolicyAssignmentListResult

OK - Returns an array of policy assignments.

Other Status Codes

CloudError

Error response describing why the operation failed.

Security

azure_auth

Azure Active Directory OAuth2 Flow.

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Name Description
user_impersonation impersonate your user account

Examples

List all policy assignments that apply to a resource

Sample Request

GET https://management.azure.com/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Compute/virtualMachines/MyTestVm/domainNames/MyTestComputer.cloudapp.net/providers/Microsoft.Authorization/policyAssignments?api-version=2023-04-01

Sample Response

{
  "value": [
    {
      "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Authorization/policyAssignments/TestCostManagement",
      "type": "Microsoft.Authorization/policyAssignments",
      "name": "TestCostManagement",
      "location": "eastus",
      "identity": {
        "type": "SystemAssigned",
        "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a",
        "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135"
      },
      "properties": {
        "displayName": "VM Cost Management",
        "description": "Minimize the risk of accidental cost overruns",
        "metadata": {
          "category": "Cost Management"
        },
        "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/vmSkus",
        "parameters": {
          "allowedSkus": {
            "value": "Standard_A1"
          }
        },
        "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup",
        "notScopes": []
      }
    },
    {
      "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Authorization/policyAssignments/TestTagEnforcement",
      "type": "Microsoft.Authorization/policyAssignments",
      "name": "TestTagEnforcement",
      "properties": {
        "displayName": "Enforces a tag key and value",
        "description": "Ensure a given tag key and value are present on all resources",
        "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/TagKeyValue",
        "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup",
        "notScopes": []
      }
    }
  ]
}

Definitions

Name Description
CloudError

An error response from a policy operation.

createdByType

The type of identity that created the resource.

enforcementMode

The policy assignment enforcement mode. Possible values are Default and DoNotEnforce.

ErrorAdditionalInfo

The resource management error additional info.

ErrorResponse

Error Response

Identity

Identity for the resource. Policy assignments support a maximum of one identity. That is either a system assigned identity or a single user assigned identity.

NonComplianceMessage

A message that describes why a resource is non-compliant with the policy. This is shown in 'deny' error messages and on resource's non-compliant compliance results.

Override

The policy property value override.

OverrideKind

The override kind.

ParameterValuesValue

The value of a parameter.

PolicyAssignment

The policy assignment.

PolicyAssignmentListResult

List of policy assignments.

ResourceIdentityType

The identity type. This is the only required field when adding a system or user assigned identity to a resource.

ResourceSelector

The resource selector to filter policies by resource properties.

Selector

The selector expression.

SelectorKind

The selector kind.

systemData

Metadata pertaining to creation and last modification of the resource.

UserAssignedIdentities

The user identity associated with the policy. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

CloudError

An error response from a policy operation.

Name Type Description
error

ErrorResponse

Error Response
Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.)

createdByType

The type of identity that created the resource.

Name Type Description
Application

string

Key

string

ManagedIdentity

string

User

string

enforcementMode

The policy assignment enforcement mode. Possible values are Default and DoNotEnforce.

Name Type Description
Default

string

The policy effect is enforced during resource creation or update.

DoNotEnforce

string

The policy effect is not enforced during resource creation or update.

ErrorAdditionalInfo

The resource management error additional info.

Name Type Description
info

object

The additional info.

type

string

The additional info type.

ErrorResponse

Error Response

Name Type Description
additionalInfo

ErrorAdditionalInfo[]

The error additional info.

code

string

The error code.

details

ErrorResponse[]

The error details.

message

string

The error message.

target

string

The error target.

Identity

Identity for the resource. Policy assignments support a maximum of one identity. That is either a system assigned identity or a single user assigned identity.

Name Type Description
principalId

string

The principal ID of the resource identity. This property will only be provided for a system assigned identity

tenantId

string

The tenant ID of the resource identity. This property will only be provided for a system assigned identity

type

ResourceIdentityType

The identity type. This is the only required field when adding a system or user assigned identity to a resource.

userAssignedIdentities

UserAssignedIdentities

The user identity associated with the policy. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

NonComplianceMessage

A message that describes why a resource is non-compliant with the policy. This is shown in 'deny' error messages and on resource's non-compliant compliance results.

Name Type Description
message

string

A message that describes why a resource is non-compliant with the policy. This is shown in 'deny' error messages and on resource's non-compliant compliance results.

policyDefinitionReferenceId

string

The policy definition reference ID within a policy set definition the message is intended for. This is only applicable if the policy assignment assigns a policy set definition. If this is not provided the message applies to all policies assigned by this policy assignment.

Override

The policy property value override.

Name Type Description
kind

OverrideKind

The override kind.

selectors

Selector[]

The list of the selector expressions.

value

string

The value to override the policy property.

OverrideKind

The override kind.

Name Type Description
policyEffect

string

It will override the policy effect type.

ParameterValuesValue

The value of a parameter.

Name Type Description
value

object

The value of the parameter.

PolicyAssignment

The policy assignment.

Name Type Default Value Description
id

string

The ID of the policy assignment.

identity

Identity

The managed identity associated with the policy assignment.

location

string

The location of the policy assignment. Only required when utilizing managed identity.

name

string

The name of the policy assignment.

properties.description

string

This message will be part of response in case of policy violation.

properties.displayName

string

The display name of the policy assignment.

properties.enforcementMode

enforcementMode

Default

The policy assignment enforcement mode. Possible values are Default and DoNotEnforce.

properties.metadata

object

The policy assignment metadata. Metadata is an open ended object and is typically a collection of key value pairs.

properties.nonComplianceMessages

NonComplianceMessage[]

The messages that describe why a resource is non-compliant with the policy.

properties.notScopes

string[]

The policy's excluded scopes.

properties.overrides

Override[]

The policy property value override.

properties.parameters

<string,  ParameterValuesValue>

The parameter values for the assigned policy rule. The keys are the parameter names.

properties.policyDefinitionId

string

The ID of the policy definition or policy set definition being assigned.

properties.resourceSelectors

ResourceSelector[]

The resource selector list to filter policies by resource properties.

properties.scope

string

The scope for the policy assignment.

systemData

systemData

The system metadata relating to this resource.

type

string

The type of the policy assignment.

PolicyAssignmentListResult

List of policy assignments.

Name Type Description
nextLink

string

The URL to use for getting the next set of results.

value

PolicyAssignment[]

An array of policy assignments.

ResourceIdentityType

The identity type. This is the only required field when adding a system or user assigned identity to a resource.

Name Type Description
None

string

Indicates that no identity is associated with the resource or that the existing identity should be removed.

SystemAssigned

string

Indicates that a system assigned identity is associated with the resource.

UserAssigned

string

Indicates that a system assigned identity is associated with the resource.

ResourceSelector

The resource selector to filter policies by resource properties.

Name Type Description
name

string

The name of the resource selector.

selectors

Selector[]

The list of the selector expressions.

Selector

The selector expression.

Name Type Description
in

string[]

The list of values to filter in.

kind

SelectorKind

The selector kind.

notIn

string[]

The list of values to filter out.

SelectorKind

The selector kind.

Name Type Description
policyDefinitionReferenceId

string

The selector kind to filter policies by the policy definition reference ID.

resourceLocation

string

The selector kind to filter policies by the resource location.

resourceType

string

The selector kind to filter policies by the resource type.

resourceWithoutLocation

string

The selector kind to filter policies by the resource without location.

systemData

Metadata pertaining to creation and last modification of the resource.

Name Type Description
createdAt

string

The timestamp of resource creation (UTC).

createdBy

string

The identity that created the resource.

createdByType

createdByType

The type of identity that created the resource.

lastModifiedAt

string

The timestamp of resource last modification (UTC)

lastModifiedBy

string

The identity that last modified the resource.

lastModifiedByType

createdByType

The type of identity that last modified the resource.

UserAssignedIdentities

The user identity associated with the policy. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

Name Type Description