0

我正在尝试获取订阅中所有存储帐户的密钥。但是我在一个使用 Azure Java SDK 的存储帐户上遇到了这个异常。

com.microsoft.azure.CloudException: 状态码 403, {"error":{"code":"AuthorizationFailed","message":"客户端 '5c79ee27-#########-#### ##91f8e3' 对象 ID 为 '5c79ee27-###########-#####91f8e3' 无权在范围 ' 上执行操作 'Microsoft.Storage/storageAccounts/listKeys/action' /subscriptions/758ad253-#######f07/resourceGroups/spcwestus/providers/Microsoft.Storage/storageAccounts/grsstorag'."}}:客户端'5c79ee27-###########- #####91f8e3' 对象 id 为 '5c79ee27-###########-#####91f8e3' 无权执行操作 'Microsoft.Storage/storageAccounts/listKeys/action'超出范围'/subscriptions/758ad253-#######f07/resourceGroups/spcwestus/providers/Microsoft.存储/storageAccounts/grsstorag'。

对于大多数存储帐户,我设法获得了密钥。但对于其中一些人来说,同样的错误会重复出现。这是什么意思?

4

1 回答 1

2

从您遇到的错误来看,服务器以 HTTP 403状态码响应您的请求表明您的请求被服务器禁止

HTTP 403 状态码

接收到不足以获得访问权限的有效凭据的服务器应该使用 403(禁止访问)状态代码
([RFC7231] 的第 6.5.3 节)进行响应。

这很可能是由一些基于角色的访问控制引起的,这些访问控制是为了防止您的帐户根据您分配的角色对某些存储帐户执行列表存储帐户密钥操作。

你可以使用下面的 Azure PowerShell cmdlet 来验证在特定范围内分配给你的特定对象的角色是否有权列出存储帐户密钥。

Get-AzureRmRoleAssignment -Scope "/subscriptions/758ad253-#######f07/resourceGroups/spcwestus/providers/Microsoft.Storage/storageAccounts/grsstorag" -ObjectId 5c79ee27-###########-#####91f8e3

更多信息请参考以下链接:

使用基于角色的访问控制来管理对 Azure 订阅资源的访问

于 2017-08-01T22:49:13.343 回答