设置 CycleCloud 服务器时出现“提供的 Azure 凭据无效”错误

本文介绍如何解决设置 CycleCloud 服务器时可能发生的“提供的 Azure 凭据无效”错误。

背景

设置 CycleCloud 时,可以使用 服务主体托管标识 进行权限管理。 在任一方案中,都必须为订阅分配参与者角色。 参与者角色需要授权服务主体或托管标识执行订阅操作,例如创建存储帐户或创建虚拟机(VM)。

现象

尝试将 CycleCloud 服务器与服务主体或托管标识一起设置时,会收到以下错误消息:

提供的 Azure 凭据无效:对象 ID 为“application-guid”的客户端“<<tenant-guid>>”无权在范围“/subscriptions/subscription-guid>”上执行操作“Microsoft.Storage/storageAccounts/<read”,或者范围无效。 如果最近已授予访问权限,请刷新凭据。

原因

角色尚未正确分配给服务主体或托管标识。

注意

“参与者”角色是最简单的选项,其中包含足够的权限用于管理订阅中的 CycleCloud 资源,例如 VM、网络和存储。 但是,“参与者”角色的特权级别高于 CycleCloud 所需的权限级别。 因此,可以在更复杂的方案中使用自定义角色。 如果考虑使用自定义角色,建议更深入地了解 Azure 角色定义和特定操作

服务主体解决方案

服务主体设置

在初始 CycleCloud 设置期间,按照“使用服务主体”中的 说明创建服务主体。 使用 CLI 命令创建服务主体并为订阅分配参与者角色。

检查订阅权限

  1. 登录到Azure 门户,然后搜索订阅
  2. 找到要用于 CycleCloud 的订阅(如果列出了多个订阅)。
  3. 选择访问控制(IAM),选择“角色分配”选项卡,然后找到“参与者”角色列表。
  4. 检查是否缺少参与者角色中的服务主体(而不是正在部署 CycleCLoud 的用户)。

在涉及多个用户和租户的方案中,服务主体很可能缺失。 如果尝试将现有服务主体用于 CycleCloud 开发,而不是创建新的服务主体,则这种情况也可能会发生这种情况。

添加角色分配

先决条件

若要添加角色分配,必须具有订阅的 Microsoft.Authorization/roleAssignments/write 权限,例如用户访问管理员或所有者。 默认情况下,不会向参与者授予写入权限。

若要将参与者角色添加到用于 CycleCloud 开发的服务主体,请按照使用 Azure 门户 分配 Azure 角色中的步骤操作。

托管标识的解决方案

托管标识设置

设置托管标识时,可以在创建 CycleCloud VM 期间或之后启用托管标识,如使用 Azure 门户 配置托管标识中所述

启用托管标识后,必须将参与者订阅角色分配给托管标识。

按照以下步骤将参与者角色添加到订阅:

  1. 登录到Azure 门户,找到 CycleCloud 服务器 VM。
  2. 在左侧面板中,选择“设置>标识”。
  3. 选择 Azure 角色分配>“添加角色分配”,然后在菜单中选择“订阅”和参与者”。
  4. 创建新分配可能需要一到两分钟。 创建后,请确保在 CycleCloud 中验证凭据。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区