Skip to content

Use ACR production SKU#

Reliability · Container Registry · 2020_06

ACR should use the Premium or Standard SKU for production deployments.

Description#

Azure Container Registry (ACR) provides a range of different service tiers (also known as SKUs). These service tiers provide different levels of performance and features.

Three service tiers are available: Basic, Standard, and Premium. Basic container registries are only recommended for non-production deployments. Use a minimum of Standard for production container registries.

The Premium SKU provides higher image throughput and included storage, and is required for:

  • Geo-replication
  • Availablity zones
  • Private Endpoints
  • Firewall restrictions
  • Tokens and scope-maps

Recommendation#

Consider using the Premium Container Registry SKU for production deployments.

Examples#

Configure with Azure template#

To deploy Container Registries that pass this rule:

  • Set sku.name to Premium or Standard.

For example:

Azure Template snippet
{
    "type": "Microsoft.ContainerRegistry/registries",
    "apiVersion": "2021-06-01-preview",
    "name": "[parameters('registryName')]",
    "location": "[parameters('location')]",
    "sku": {
        "name": "Premium"
    },
    "identity": {
        "type": "SystemAssigned"
    },
    "properties": {
        "adminUserEnabled": false,
        "policies": {
            "quarantinePolicy": {
                "status": "enabled"
            },
            "trustPolicy": {
                "status": "enabled",
                "type": "Notary"
            },
            "retentionPolicy": {
                "status": "enabled",
                "days": 30
            }
        }
    }
}

Configure with Bicep#

To deploy Container Registries that pass this rule:

  • Set sku.name to Premium or Standard.

For example:

Azure Bicep snippet
resource acr 'Microsoft.ContainerRegistry/registries@2021-06-01-preview' = {
  name: registryName
  location: location
  sku: {
    name: 'Premium'
  }
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    adminUserEnabled: false
    policies: {
      quarantinePolicy: {
        status: 'enabled'
      }
      trustPolicy: {
        status: 'enabled'
        type: 'Notary'
      }
      retentionPolicy: {
        status: 'enabled'
        days: 30
      }
    }
  }
}

Last update: 2022-12-03

Comments