diff --git a/src/azure-cli/azure/cli/command_modules/acr/custom.py b/src/azure-cli/azure/cli/command_modules/acr/custom.py index 115e55966a7..c9e89d4b1bc 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/custom.py +++ b/src/azure-cli/azure/cli/command_modules/acr/custom.py @@ -24,6 +24,7 @@ logger = get_logger(__name__) DEF_DIAG_SETTINGS_NAME_TEMPLATE = '{}-diagnostic-settings' SYSTEM_ASSIGNED_IDENTITY_ALIAS = '[system]' +DENY_ACTION = 'Deny' def acr_check_name(client, registry_name): @@ -132,10 +133,6 @@ def acr_update_custom(cmd, if tags is not None: instance.tags = tags - if default_action is not None: - NetworkRuleSet = cmd.get_models('NetworkRuleSet') - instance.network_rule_set = NetworkRuleSet(default_action=default_action) - if data_endpoint_enabled is not None: instance.data_endpoint_enabled = data_endpoint_enabled @@ -145,6 +142,9 @@ def acr_update_custom(cmd, if anonymous_pull_enabled is not None: instance.anonymous_pull_enabled = anonymous_pull_enabled + if default_action is not None: + _configure_default_action(cmd, instance, default_action) + _handle_network_bypass(cmd, instance, allow_trusted_services) _handle_export_policy(cmd, instance, allow_exports) @@ -158,9 +158,15 @@ def _configure_public_network_access(cmd, registry, enabled): registry.public_network_access = PublicNetworkAccess.enabled else: registry.public_network_access = PublicNetworkAccess.disabled + _configure_default_action(cmd, registry, DENY_ACTION) logger.warning('Disabling the public endpoint overrides all firewall configurations.') +def _configure_default_action(cmd, registry, action): + NetworkRuleSet = cmd.get_models('NetworkRuleSet') + registry.network_rule_set = NetworkRuleSet(default_action=action) + + def _handle_network_bypass(cmd, registry, allow_trusted_services): if allow_trusted_services is not None: NetworkRuleBypassOptions = cmd.get_models('NetworkRuleBypassOptions') diff --git a/src/azure-cli/azure/cli/command_modules/acr/tests/latest/recordings/test_acr_with_public_network_access_disabled.yaml b/src/azure-cli/azure/cli/command_modules/acr/tests/latest/recordings/test_acr_with_public_network_access_disabled.yaml new file mode 100644 index 00000000000..1ec943914ef --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/acr/tests/latest/recordings/test_acr_with_public_network_access_disabled.yaml @@ -0,0 +1,407 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - acr create + Connection: + - keep-alive + ParameterSetName: + - --name --resource-group --sku + User-Agent: + - AZURECLI/2.38.0 azsdk-python-azure-mgmt-resource/21.1.0b1 Python/3.10.5 (Windows-10-10.0.22000-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2021-04-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","type":"Microsoft.Resources/resourceGroups","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2022-07-19T18:49:54Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '310' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 19 Jul 2022 18:49:57 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"location": "westus", "sku": {"name": "Premium"}, "properties": {"adminUserEnabled": + false, "anonymousPullEnabled": false}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - acr create + Connection: + - keep-alive + Content-Length: + - '124' + Content-Type: + - application/json + ParameterSetName: + - --name --resource-group --sku + User-Agent: + - AZURECLI/2.38.0 azsdk-python-azure-mgmt-containerregistry/8.2.0 Python/3.10.5 + (Windows-10-10.0.22000-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002?api-version=2021-08-01-preview + response: + body: + string: '{"sku":{"name":"Premium","tier":"Premium"},"type":"Microsoft.ContainerRegistry/registries","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002","name":"testreg000002","location":"westus","tags":{},"systemData":{"createdBy":"ankitagarwal@microsoft.com","createdByType":"User","createdAt":"2022-07-19T18:49:58.6717885+00:00","lastModifiedBy":"ankitagarwal@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2022-07-19T18:49:58.6717885+00:00"},"properties":{"loginServer":"testreg000002.azurecr.io","creationDate":"2022-07-19T18:49:58.6717885Z","provisioningState":"Creating","adminUserEnabled":false,"networkRuleSet":{"defaultAction":"Allow","virtualNetworkRules":[],"ipRules":[]},"policies":{"quarantinePolicy":{"status":"disabled"},"trustPolicy":{"type":"Notary","status":"disabled"},"retentionPolicy":{"days":7,"lastUpdatedTime":"2022-07-19T18:50:00.1867358+00:00","status":"disabled"},"exportPolicy":{"status":"enabled"}},"encryption":{"status":"disabled"},"dataEndpointEnabled":false,"dataEndpointHostNames":[],"privateEndpointConnections":[],"publicNetworkAccess":"Enabled","networkRuleBypassOptions":"AzureServices","zoneRedundancy":"Disabled","anonymousPullEnabled":false}}' + headers: + api-supported-versions: + - 2021-08-01-preview + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002/operationStatuses/registries-95109661-0793-11ed-9d53-7c70db1b2c71?api-version=2021-08-01-preview + cache-control: + - no-cache + content-length: + - '1290' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 19 Jul 2022 18:49:59 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - acr create + Connection: + - keep-alive + ParameterSetName: + - --name --resource-group --sku + User-Agent: + - AZURECLI/2.38.0 azsdk-python-azure-mgmt-containerregistry/8.2.0 Python/3.10.5 + (Windows-10-10.0.22000-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002/operationStatuses/registries-95109661-0793-11ed-9d53-7c70db1b2c71?api-version=2021-08-01-preview + response: + body: + string: '{"status":"Succeeded"}' + headers: + api-supported-versions: + - 2021-08-01-preview + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002/operationStatuses/registries-95109661-0793-11ed-9d53-7c70db1b2c71?api-version=2021-08-01-preview + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 19 Jul 2022 18:50:10 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - acr create + Connection: + - keep-alive + ParameterSetName: + - --name --resource-group --sku + User-Agent: + - AZURECLI/2.38.0 azsdk-python-azure-mgmt-containerregistry/8.2.0 Python/3.10.5 + (Windows-10-10.0.22000-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002?api-version=2021-08-01-preview + response: + body: + string: '{"sku":{"name":"Premium","tier":"Premium"},"type":"Microsoft.ContainerRegistry/registries","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002","name":"testreg000002","location":"westus","tags":{},"systemData":{"createdBy":"ankitagarwal@microsoft.com","createdByType":"User","createdAt":"2022-07-19T18:49:58.6717885+00:00","lastModifiedBy":"ankitagarwal@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2022-07-19T18:49:58.6717885+00:00"},"properties":{"loginServer":"testreg000002.azurecr.io","creationDate":"2022-07-19T18:49:58.6717885Z","provisioningState":"Succeeded","adminUserEnabled":false,"networkRuleSet":{"defaultAction":"Allow","virtualNetworkRules":[],"ipRules":[]},"policies":{"quarantinePolicy":{"status":"disabled"},"trustPolicy":{"type":"Notary","status":"disabled"},"retentionPolicy":{"days":7,"lastUpdatedTime":"2022-07-19T18:50:00.1867358+00:00","status":"disabled"},"exportPolicy":{"status":"enabled"}},"encryption":{"status":"disabled"},"dataEndpointEnabled":false,"dataEndpointHostNames":[],"privateEndpointConnections":[],"publicNetworkAccess":"Enabled","networkRuleBypassOptions":"AzureServices","zoneRedundancy":"Disabled","anonymousPullEnabled":false}}' + headers: + api-supported-versions: + - 2021-08-01-preview + cache-control: + - no-cache + content-length: + - '1291' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 19 Jul 2022 18:50:10 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - acr update + Connection: + - keep-alive + ParameterSetName: + - --name --resource-group --public-network-enabled + User-Agent: + - AZURECLI/2.38.0 azsdk-python-azure-mgmt-containerregistry/8.2.0 Python/3.10.5 + (Windows-10-10.0.22000-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002?api-version=2021-08-01-preview + response: + body: + string: '{"sku":{"name":"Premium","tier":"Premium"},"type":"Microsoft.ContainerRegistry/registries","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002","name":"testreg000002","location":"westus","tags":{},"systemData":{"createdBy":"ankitagarwal@microsoft.com","createdByType":"User","createdAt":"2022-07-19T18:49:58.6717885+00:00","lastModifiedBy":"ankitagarwal@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2022-07-19T18:49:58.6717885+00:00"},"properties":{"loginServer":"testreg000002.azurecr.io","creationDate":"2022-07-19T18:49:58.6717885Z","provisioningState":"Succeeded","adminUserEnabled":false,"networkRuleSet":{"defaultAction":"Allow","virtualNetworkRules":[],"ipRules":[]},"policies":{"quarantinePolicy":{"status":"disabled"},"trustPolicy":{"type":"Notary","status":"disabled"},"retentionPolicy":{"days":7,"lastUpdatedTime":"2022-07-19T18:50:00.1867358+00:00","status":"disabled"},"exportPolicy":{"status":"enabled"}},"encryption":{"status":"disabled"},"dataEndpointEnabled":false,"dataEndpointHostNames":[],"privateEndpointConnections":[],"publicNetworkAccess":"Enabled","networkRuleBypassOptions":"AzureServices","zoneRedundancy":"Disabled","anonymousPullEnabled":false}}' + headers: + api-supported-versions: + - 2021-08-01-preview + cache-control: + - no-cache + content-length: + - '1291' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 19 Jul 2022 18:50:10 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"properties": {"networkRuleSet": {"defaultAction": "Deny"}, "publicNetworkAccess": + "Disabled"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - acr update + Connection: + - keep-alive + Content-Length: + - '96' + Content-Type: + - application/json + ParameterSetName: + - --name --resource-group --public-network-enabled + User-Agent: + - AZURECLI/2.38.0 azsdk-python-azure-mgmt-containerregistry/8.2.0 Python/3.10.5 + (Windows-10-10.0.22000-SP0) + method: PATCH + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002?api-version=2021-08-01-preview + response: + body: + string: '{"sku":{"name":"Premium","tier":"Premium"},"type":"Microsoft.ContainerRegistry/registries","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002","name":"testreg000002","location":"westus","tags":{},"systemData":{"createdBy":"ankitagarwal@microsoft.com","createdByType":"User","createdAt":"2022-07-19T18:49:58.6717885+00:00","lastModifiedBy":"ankitagarwal@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2022-07-19T18:50:12.0771305+00:00"},"properties":{"loginServer":"testreg000002.azurecr.io","creationDate":"2022-07-19T18:49:58.6717885Z","provisioningState":"Succeeded","adminUserEnabled":false,"networkRuleSet":{"defaultAction":"Deny","virtualNetworkRules":[],"ipRules":[]},"policies":{"quarantinePolicy":{"status":"disabled"},"trustPolicy":{"type":"Notary","status":"disabled"},"retentionPolicy":{"days":7,"lastUpdatedTime":"2022-07-19T18:50:00.1867358+00:00","status":"disabled"},"exportPolicy":{"status":"enabled"}},"encryption":{"status":"disabled"},"dataEndpointEnabled":false,"dataEndpointHostNames":[],"privateEndpointConnections":[],"publicNetworkAccess":"Disabled","networkRuleBypassOptions":"AzureServices","zoneRedundancy":"Disabled","anonymousPullEnabled":false}}' + headers: + api-supported-versions: + - 2021-08-01-preview + cache-control: + - no-cache + content-length: + - '1291' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 19 Jul 2022 18:50:11 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - acr update + Connection: + - keep-alive + ParameterSetName: + - --name --resource-group --public-network-enabled + User-Agent: + - AZURECLI/2.38.0 azsdk-python-azure-mgmt-containerregistry/8.2.0 Python/3.10.5 + (Windows-10-10.0.22000-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002?api-version=2021-08-01-preview + response: + body: + string: '{"sku":{"name":"Premium","tier":"Premium"},"type":"Microsoft.ContainerRegistry/registries","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002","name":"testreg000002","location":"westus","tags":{},"systemData":{"createdBy":"ankitagarwal@microsoft.com","createdByType":"User","createdAt":"2022-07-19T18:49:58.6717885+00:00","lastModifiedBy":"ankitagarwal@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2022-07-19T18:50:12.0771305+00:00"},"properties":{"loginServer":"testreg000002.azurecr.io","creationDate":"2022-07-19T18:49:58.6717885Z","provisioningState":"Succeeded","adminUserEnabled":false,"networkRuleSet":{"defaultAction":"Deny","virtualNetworkRules":[],"ipRules":[]},"policies":{"quarantinePolicy":{"status":"disabled"},"trustPolicy":{"type":"Notary","status":"disabled"},"retentionPolicy":{"days":7,"lastUpdatedTime":"2022-07-19T18:50:00.1867358+00:00","status":"disabled"},"exportPolicy":{"status":"enabled"}},"encryption":{"status":"disabled"},"dataEndpointEnabled":false,"dataEndpointHostNames":[],"privateEndpointConnections":[],"publicNetworkAccess":"Disabled","networkRuleBypassOptions":"AzureServices","zoneRedundancy":"Disabled","anonymousPullEnabled":false}}' + headers: + api-supported-versions: + - 2021-08-01-preview + cache-control: + - no-cache + content-length: + - '1291' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 19 Jul 2022 18:50:11 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"properties": {"publicNetworkAccess": "Enabled"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - acr update + Connection: + - keep-alive + Content-Length: + - '50' + Content-Type: + - application/json + ParameterSetName: + - --name --resource-group --public-network-enabled + User-Agent: + - AZURECLI/2.38.0 azsdk-python-azure-mgmt-containerregistry/8.2.0 Python/3.10.5 + (Windows-10-10.0.22000-SP0) + method: PATCH + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002?api-version=2021-08-01-preview + response: + body: + string: '{"sku":{"name":"Premium","tier":"Premium"},"type":"Microsoft.ContainerRegistry/registries","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.ContainerRegistry/registries/testreg000002","name":"testreg000002","location":"westus","tags":{},"systemData":{"createdBy":"ankitagarwal@microsoft.com","createdByType":"User","createdAt":"2022-07-19T18:49:58.6717885+00:00","lastModifiedBy":"ankitagarwal@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2022-07-19T18:50:13.3128567+00:00"},"properties":{"loginServer":"testreg000002.azurecr.io","creationDate":"2022-07-19T18:49:58.6717885Z","provisioningState":"Succeeded","adminUserEnabled":false,"networkRuleSet":{"defaultAction":"Deny","virtualNetworkRules":[],"ipRules":[]},"policies":{"quarantinePolicy":{"status":"disabled"},"trustPolicy":{"type":"Notary","status":"disabled"},"retentionPolicy":{"days":7,"lastUpdatedTime":"2022-07-19T18:50:00.1867358+00:00","status":"disabled"},"exportPolicy":{"status":"enabled"}},"encryption":{"status":"disabled"},"dataEndpointEnabled":false,"dataEndpointHostNames":[],"privateEndpointConnections":[],"publicNetworkAccess":"Enabled","networkRuleBypassOptions":"AzureServices","zoneRedundancy":"Disabled","anonymousPullEnabled":false}}' + headers: + api-supported-versions: + - 2021-08-01-preview + cache-control: + - no-cache + content-length: + - '1290' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 19 Jul 2022 18:50:13 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 200 + message: OK +version: 1 diff --git a/src/azure-cli/azure/cli/command_modules/acr/tests/latest/test_acr_commands.py b/src/azure-cli/azure/cli/command_modules/acr/tests/latest/test_acr_commands.py index 07c7228b35a..77e21187f33 100644 --- a/src/azure-cli/azure/cli/command_modules/acr/tests/latest/test_acr_commands.py +++ b/src/azure-cli/azure/cli/command_modules/acr/tests/latest/test_acr_commands.py @@ -599,6 +599,32 @@ def test_acr_with_public_network_access(self, resource_group, resource_group_loc self.cmd('acr create --name {registry_2_name} --resource-group {rg} --sku premium --public-network-enabled false --allow-trusted-services false', checks=[self.check('publicNetworkAccess', 'Disabled'), self.check('networkRuleBypassOptions', 'None')]) + + + @ResourceGroupPreparer() + def test_acr_with_public_network_access_disabled(self, resource_group, resource_group_location): + self.kwargs.update({ + 'registry_name': self.create_random_name('testreg', 20), + }) + + # test defaults + self.cmd('acr create --name {registry_name} --resource-group {rg} --sku premium', + checks=[self.check('publicNetworkAccess', 'Enabled'), + self.check('networkRuleBypassOptions', 'AzureServices'), + self.check('networkRuleSet.defaultAction', 'Allow')]) + + # public network access disabled + self.cmd('acr update --name {registry_name} --resource-group {rg} --public-network-enabled false', + checks=[self.check('publicNetworkAccess', 'Disabled'), + self.check('networkRuleBypassOptions', 'AzureServices'), + self.check('networkRuleSet.defaultAction', 'Deny')]) + + # public network access enabled + self.cmd('acr update --name {registry_name} --resource-group {rg} --public-network-enabled true', + checks=[self.check('publicNetworkAccess', 'Enabled'), + self.check('networkRuleBypassOptions', 'AzureServices'), + self.check('networkRuleSet.defaultAction', 'Deny')]) + @ResourceGroupPreparer() def test_acr_with_anonymous_pull(self, resource_group, resource_group_location):