Azure / Azure/azure-powershell

Forbidden Error using Get-AzAppConfigurationKeyValue

Open
#24,095 6 comments 2 reactions 0 assignees View on GitHub
act-codegen-extensibility-squad App Configuration bug customer-reported Service Attention
Dominant language
C#
Stars
4.8k
Forks
4.3k
Avg merge
2d 17h
Merged PRs (30d)
51

Description

### Description

if you run the module Get-AzAppConfigurationKeyValue as the owner of an app configuration you will receive the error message forbidden. As owner, you can read and write to the keys via the azure portal and the az cli. However, it doesn't work using the PowerShell module unless you have the role app configuration data owner or app configuration data reader.

**Error** - Get-AzAppConfigurationKeyValue : The server responded with a Request Error, Status: Forbidden

**Module** - https://learn.microsoft.com/en-us/powershell/module/az.appconfiguration/get-azappconfigurationkeyvalue?view=azps-11.2.0

### Issue script & Debug output

```PowerShell
COMMANDS USED

$configuration = Get-AzAppConfigurationStore -Name 'XXXX' -ResourceGroupName 'XXXX'
Get-AzAppConfigurationKeyValue -Endpoint $configurationOne.Endpoint
Write-Output '---'
az appconfig kv list --name 'XXXX'

OUTPUT

DEBUG: 11:49:31 - GetAzureRMContextCommand begin processing with ParameterSet 'GetSingleContext'.
DEBUG: 11:49:31 - [ConfigManager] Got nothing from [DisplayBreakingChangeWarning], Module = [], Cmdlet = []. Returning default value [True].
DEBUG: 11:49:31 - [ConfigManager] Got nothing from [DisplayRegionIdentified], Module = [], Cmdlet = []. Returning default value [True].
DEBUG: 11:49:31 - [ConfigManager] Got nothing from [CheckForUpgrade], Module = [], Cmdlet = []. Returning default value [True].
DEBUG: 11:49:31 - GetAzureRMContextCommand end processing.
DEBUG: [CmdletBeginProcessing]: Starting command
DEBUG: CmdletBeginProcessing:
DEBUG: CmdletProcessRecordStart:
DEBUG: CmdletGetPipeline:
DEBUG: CmdletBeforeAPICall:
DEBUG: URLCreated: /subscriptions//resourceGroups//providers/Microsoft.AppConfiguration/configu
rationStores/?api-version=2022-05-01
DEBUG: RequestCreated: /subscriptions//resourceGroups//providers/Microsoft.AppConfiguration/con
figurationStores/?api-version=2022-05-01
DEBUG: HeaderParametersAdded:
DEBUG: 11:49:31 - [ConfigManager] Got nothing from [EnableLoginByWam], Module = [], Cmdlet = []. Returning default value [False].
DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
GET

Absolute Uri:
https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.AppConfiguratio
n/configurationStores/?api-version=2022-05-01

Headers:
x-ms-unique-id : 915
x-ms-client-request-id : xxxxxxxxxxxxx
CommandName : Get-AzAppConfigurationStore
FullCommandName : Get-AzAppConfigurationStore_Get
ParameterSetName : __AllParameterSets
User-Agent : AzurePowershell/v0.0.0,PSVersion/v5.1.19041.3758,Az.AppConfiguration/1.3.0

Body:

DEBUG: BeforeCall:
DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
OK

Headers:
Pragma : no-cache
x-ms-ratelimit-remaining-subscription-reads: 11999
Strict-Transport-Security : max-age=31536000; includeSubDomains
x-ms-request-id : xxxxxxx
x-ms-correlation-request-id : xxxxxxx
x-ms-routing-request-id : UKWEST:20240202T114931Z:xxxxx
X-Content-Type-Options : nosniff
X-Cache : CONFIG_NOCACHE
X-MSEdge-Ref : Ref A: xxxxxxx Ref B: AMS231020615035 Ref C: 2024-02-02T11:49:31Z
Cache-Control : no-cache
Date : Fri, 02 Feb 2024 11:49:31 GMT
ETag : "xxxxxxxx"

Body:
{
"type": "Microsoft.AppConfiguration/configurationStores",
"location": "westeurope",
"properties": {
"provisioningState": "Succeeded",
"creationDate": "2024-01-30T12:37:22+00:00",
"endpoint": "https://.azconfig.io",
"encryption": {
"keyVaultProperties": null
},
"privateEndpointConnections": null,
"disableLocalAuth": false,
"softDeleteRetentionInDays": 1,
"enablePurgeProtection": false
},
"sku": {
"name": "standard"
},
"systemData": {
"createdBy": "",
"createdByType": "User",
"createdAt": "2024-01-30T12:37:22+00:00",
"lastModifiedBy": "",
"lastModifiedByType": "User",
"lastModifiedAt": "2024-01-30T12:37:23+00:00"
},
"id": "/subscriptions//resourceGroups//providers/Microsoft.AppConfiguration/configurationStor
es/",
"name": "",
"tags": {}
}

DEBUG: ResponseCreated:
DEBUG: BeforeResponseDispatch:
DEBUG: Finally:
DEBUG: CmdletAfterAPICall:
DEBUG: [CmdletProcessRecordAsyncEnd]: Finish HTTP process
DEBUG: CmdletProcessRecordAsyncEnd:
DEBUG: CmdletProcessRecordEnd:
DEBUG: AzureQoSEvent: Module: Az.AppConfiguration:1.3.0; CommandName: Get-AzAppConfigurationStore; PSVersion: 5.1.19041.3758; IsSuccess: True; Duration:
00:00:00.3082096
DEBUG: [CmdletBeginProcessing]: Starting command
DEBUG: CmdletBeginProcessing:
DEBUG: CmdletProcessRecordStart:
DEBUG: CmdletGetPipeline:
DEBUG: CmdletBeforeAPICall:
DEBUG: URLCreated: /kv?api-version=1.0
DEBUG: RequestCreated: /kv?api-version=1.0
DEBUG: HeaderParametersAdded:
DEBUG: 11:49:31 - [ConfigManager] Got nothing from [EnableLoginByWam], Module = [], Cmdlet = []. Returning default value [False].
DEBUG: ============================ HTTP REQUEST ============================

HTTP Method:
GET

Absolute Uri:
https://.azconfig.io/kv?api-version=1.0

Headers:
x-ms-unique-id : 916
x-ms-client-request-id : xxxxxx
CommandName : Get-AzAppConfigurationKeyValue
FullCommandName : Get-AzAppConfigurationKeyValue_Get
ParameterSetName : __AllParameterSets
User-Agent : AzurePowershell/v0.0.0,PSVersion/v5.1.19041.3758,Az.AppConfigurationdata/1.3.0

Body:

DEBUG: BeforeCall:
DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
Forbidden

Headers:
Connection : keep-alive
x-ms-request-id : 32168c88-1ed2-481a-a1af-453b787eb157
x-ms-correlation-request-id : 32168c88-1ed2-481a-a1af-453b787eb157
Strict-Transport-Security : max-age=31536000; includeSubDomains
Access-Control-Allow-Origin : *
Date : Fri, 02 Feb 2024 11:49:31 GMT

Body:

DEBUG: ResponseCreated:
DEBUG: BeforeResponseDispatch:
Get-AzAppConfigurationKeyValue : The server responded with a Request Error, Status: Forbidden
At C:\Users\\Documents\WindowsPowerShell\Modules\Az.AppConfiguration\1.3.0\AppConfigurationData.Autorest\exports\ProxyCmdletDefinitions.ps1:1735
char:9
+ $steppablePipeline.Begin($PSCmdlet)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ({ }:<>f__AnonymousType1) [Get-AzAppConfigurationKeyValue_Get], RestException`1
+ FullyQualifiedErrorId : Forbidden,Microsoft.Azure.PowerShell.Cmdlets.AppConfigurationdata.Cmdlets.GetAzAppConfigurationKeyValue_Get
DEBUG: Finally:
DEBUG: CmdletAfterAPICall:
DEBUG: [CmdletProcessRecordAsyncEnd]: Finish HTTP process
DEBUG: CmdletProcessRecordAsyncEnd:
DEBUG: CmdletProcessRecordEnd:
```

### Environment data

```PowerShell
Name Value
---- -----
PSVersion 5.1.19041.3758
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.3758
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
```

### Module versions

```PowerShell
Script 1.3.0 Az.AppConfiguration {Clear-AzAppConfigurationDeletedStore, Get-AzAppConfigurationDeletedStore, Get-AzAppConfigurationKey, Get-AzAppConfigurationKeyValue...}
```

### Error output

```PowerShell
N/A
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.