华为云IAM用户权限设置主要有哪些问题需要注意?
华为云IAM用户权限设置有很多需要注意的问题,尤其是总是碰见权限不足等问题,主要有以下需要特别注意的地方(很多人踩坑):
1. 授权范围要明确,尤其是区域(Region)和项目(Project)
-
IAM用户访问API(比如IoTDA、OBS、ECS)时,后台校验的是具体Project ID权限,不是泛泛的"全局权限"。
-
所以授权时,一定要勾选实际需要访问的区域和项目,比如【cn-north-4(北京四)】。
-
否则,就会出现
"User not found by IAM token"
、403 forbidden
类错误。
2. 需要区分"控制台可见权限" 和 "API可用权限"
-
给IAM用户赋权时,即使能在华为云控制台正常登录、管理资源,不代表能直接用API。
-
API需要的是更加细颗粒度的权限,比如 IoTDA的具体服务接口权限。
-
必须分配API操作权限(FullAccess、ReadOnlyAccess或者自定义Policy)。
3. Token类型问题
-
华为云Token分两种:
-
IAM Token:自己用户体系下发,走标准IAM流程。
-
Agency Token(委托Token):需要设置委托。
-
-
普通IAM用户需要走**获取IAM Token(POST /v3/auth/tokens)**流程。
-
注意请求体里user、domain、password、scope必须正确。
4. scope(作用范围)要正确
-
scope可以是:
-
project(项目级别授权,最常见)
-
domain(整个账号级别授权,少用)
-
-
大多数物联网IoT、云服务器ECS场景,都是必须用scope.project。
5. 权限策略要完整
-
比如访问IoTDA(物联网平台),IAM用户要有:
-
IoTDA FullAccess 或至少 IoTDA ReadOnlyAccess。
-
-
有时候即使你加了很多策略,比如边缘服务、OBS读写等,但漏了IoTDA权限,也不能访问IoTDA资源。
6. IAM用户状态必须是启用状态
-
被禁用、冻结的IAM用户,即使有权限也无法调用API。
-
在IAM用户管理那里确认是【启用】状态。
7. AK/SK vs Token 使用场景不同
-
AK/SK:适合长期调用程序(比如SDK)。
-
Token:适合短期登录、临时调用(比如手动拉设备影子,访问受保护的API)。
8. 注意标准版与其他版本IAM用户权限接入的区别
9. 设备权限与用户权限是分开的
-
就算IAM用户有IoTDA权限,如果设备ID错误、设备本身未激活,调用设备影子也会失败。
-
必须确保设备本身在平台上是【在线】或者【已注册】状态。
🔵 重点记住两件事:
✅ 给IAM用户授权时,要【指定正确的区域项目】而不是所有资源。
✅ 必须有对应服务(IoTDA)的【FullAccess】权限才能通过API访问。