Azure CLI执行az account list与Azure Web控制台结果不一致的原因
Azure CLI与Azure控制台账号列表不一致的原因
环境信息
root@LT142:~# az version { "azure-cli": "2.63.0", "azure-cli-core": "2.63.0", "azure-cli-telemetry": "1.1.0", "extensions": { "account": "0.2.5" } } root@LT142:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy
CLI返回的账号列表
root@LT142:~# az account list [ { "cloudName": "AzureCloud", "homeTenantId": "8e1e397d-74c6-4f72-9735-7583dd199d48", "id": "cb1c2d2d-685c-4da7-a032-e50920819397", "isDefault": true, "managedByTenants": [], "name": "vy-august2024", "state": "Enabled", "tenantDefaultDomain": "donhuvyhotmail.onmicrosoft.com", "tenantDisplayName": "Default Directory", "tenantId": "8e1e397d-74c6-4f72-9735-7583dd199d48", "user": { "name": "xxx@foo.com", "type": "user" } }, { "cloudName": "AzureCloud", "homeTenantId": "8e1e397d-74c6-4f72-9735-7583dd199d48", "id": "bacda0a9-17d5-480d-92e0-73fda3984a8f", "isDefault": false, "managedByTenants": [], "name": "vy-august2024", "state": "Enabled", "tenantDefaultDomain": "donhuvyhotmail.onmicrosoft.com", "tenantDisplayName": "Default Directory", "tenantId": "8e1e397d-74c6-4f72-9735-7583dd199d48", "user": { "name": "yyy@gmail.com", "type": "user" } } ]
可能的原因
多用户会话缓存:Azure CLI会本地缓存不同用户的登录会话,
az account list默认返回当前缓存中所有该用户有权访问的订阅。从CLI输出可见,两个订阅分别对应不同登录用户(xxx@foo.com和yyy@gmail.com),而Azure控制台仅以当前登录用户的视角展示订阅,只会显示该用户有权限的条目,两者视角不同导致列表不一致。CLI本地缓存未同步:CLI会缓存订阅信息,若Azure控制台中订阅发生变更(如新增、删除、权限调整),CLI未及时刷新缓存。可执行
az account list --refresh强制刷新本地缓存,对比新结果与控制台是否一致。权限差异:控制台登录用户与CLI中某一用户的权限范围不同。比如控制台登录的是
xxx@foo.com,则只能看到该用户有权访问的cb1c2d2d-685c-4da7-a032-e50920819397订阅;若CLI中存在yyy@gmail.com的会话,该用户拥有另一订阅权限,就会显示两条目。租户或云环境不匹配:确认Azure控制台是否切换到了正确的租户(
Default Directory)和云环境(AzureCloud),若控制台选择了其他租户或云,自然会看到不同的订阅列表。
内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ
相关产品推荐
相关产品推荐

