繁体   English   中英

无法以编程方式获取 Azure 存储帐户的密钥

[英]Unable to programmatically get the keys for Azure Storage Account

我正在尝试获取订阅中所有存储帐户的密钥。 但是我在一个使用 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.Storage/storageAccounts/grsstorag”。

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

从您遇到的错误来看,服务器以 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 订阅资源的访问

也许就像上面的补充。 Azure 具有存储帐户密钥操作员服务角色,如下所述:

  • 存储帐户密钥操作员可以列出和重新生成存储帐户上的密钥

授予您此角色应该允许列出密钥。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM