Azure CLI脚本执行CDN清除操作时授权失败问题求助
解决GitHub Actions执行Azure CDN清理时的授权失败问题
错误详情
Run azure/CLI@v1 Starting script execution via docker image mcr.microsoft.com/azure-cli:2.58.0 错误: (AuthorizationFailed) 客户端'1b577114-b48e-4f1d-aaa7-99e39635f911'(对象ID为'1b577114-b48e-4f1d-aaa7-99e39635f911')无权在范围'/subscriptions/bf94b8dd-32e1-4d61-ac66-992080104192/resourceGroups/cloudresume/providers/Microsoft.Cdn/profiles/azureresumenkg/endpoints/azureresumenkg'上执行操作'Microsoft.Cdn/profiles/endpoints/purge/action',或者范围无效。如果最近已授予权限,请刷新凭据。 Code: AuthorizationFailed Message: 客户端'1b577114-b48e-4f1d-aaa7-99e39635f911'(对象ID为'1b577114-b48e-4f1d-aaa7-99e39635f911')无权在范围'/subscriptions/bf94b8dd-32e1-4d61-ac66-992080104192/resourceGroups/cloudresume/providers/Microsoft.Cdn/profiles/azureresumenkg/endpoints/azureresumenkg'上执行操作'Microsoft.Cdn/profiles/endpoints/purge/action',或者范围无效。如果最近已授予权限,请刷新凭据。 Error: Error: az cli脚本执行失败。 cleaning up container... MICROSOFT_AZURE_CLI_1711863820587_CONTAINER Error: az cli脚本执行失败。
解决方案
- 定位服务主体:错误中的客户端ID
1b577114-b48e-4f1d-aaa7-99e39635f911就是GitHub Actions连接Azure所用的服务主体,在Azure门户的Azure Active Directory > 企业应用程序中可找到该主体。 - 分配对应权限:
- 进入目标CDN端点、其所属资源组或订阅的详情页,打开访问控制(IAM)。
- 点击添加 > 添加角色分配,选择内置的CDN 端点参与者角色(该角色包含CDN端点清理操作权限);若需更细粒度控制,可创建自定义角色,仅包含
Microsoft.Cdn/profiles/endpoints/purge/action权限。 - 在成员选择页选中上述服务主体,完成角色分配。
- 确认权限范围:确保角色分配的范围覆盖错误信息中指定的CDN端点、配置文件、资源组或订阅,范围必须包含目标资源。
- 等待权限生效:Azure RBAC权限通常需要1-5分钟生效,刚完成分配后需等待片刻再重新运行工作流。
- 手动验证(可选):用Azure CLI以该服务主体身份登录,执行清理命令测试权限是否生效:
az login --service-principal -u <客户端ID> -p <客户端密钥> --tenant <租户ID> az cdn endpoint purge --name <端点名称> --profile-name <配置文件名称> --resource-group <资源组名称> --content-paths "/*"
内容的提问来源于stack exchange,提问作者Nikhil Gupta
相关产品推荐
相关产品推荐

