华为云统一身份认证服务IAM实战:用户组、权限策略与最小权限原则

举报
yd_235631729 发表于 2026/11/04 15:16:19 2026/11/04
【摘要】 本文以小型研发团队规范使用华为云为主线,详解IAM用户与用户组的创建、系统策略授权与JSON自定义策略编写、Deny兜底高危操作,以及跨账号与云服务委托、MFA与操作保护、AK/SK安全使用与轮换等最佳实践,帮助落地最小权限原则。

一、背景:云上账号安全从权限管理开始

上云之后,最容易被忽视的风险往往不是漏洞,而是“权限”:所有人共用一个主账号登录控制台、把拥有全部权限的 AK/SK 写死在代码里、离职员工的账号迟迟没有删除……一旦凭证泄露,攻击者就能直接删除资源、窃取数据甚至大量创建实例产生费用。

华为云 统一身份认证服务 IAM(Identity and Access Management) 提供用户管理、身份认证和细粒度权限控制能力,并且免费使用。本文以“一个小型研发团队如何规范使用华为云”为主线,依次介绍 IAM 用户与用户组、系统策略与自定义策略、JSON 自定义策略示例、委托、MFA 多因素认证以及 AK/SK 最佳实践,帮助大家落地最小权限原则。

二、核心概念

概念 说明
账号 注册华为云时创建的主体,拥有所有资源的完全控制权,也是计费主体,不建议日常使用
IAM 用户 由账号在 IAM 中创建的用户,对应具体的人或应用程序,拥有独立的登录密码和访问密钥
用户组 用户的集合,权限授予用户组,组内用户自动继承,是推荐的授权方式
权限(策略) 描述“允许或拒绝对哪些资源执行哪些操作”,分为系统策略和自定义策略
项目 按区域划分的资源隔离单位,授权时可以选择全局服务或指定区域项目
委托 将本账号的操作权限委托给其他账号或云服务,实现跨账号或服务间访问

权限的授予关系可以概括为:账号 → 创建用户 → 加入用户组 → 为用户组授权(选择作用范围)。用户本身不直接绑定权限,这样人员变动时只需要调整其所属的用户组即可。

三、创建用户组与 IAM 用户

假设团队有三类角色:管理员、开发人员和只读审计人员。推荐的做法如下:

  1. 使用账号登录控制台,进入“统一身份认证服务”,选择“用户组”,点击“创建用户组”,分别创建 admins、developers、auditors 三个用户组。
  2. 选择“用户”,点击“创建用户”,填写用户名、邮箱或手机号,访问方式按需勾选:
    • 管理控制台访问:给需要登录控制台的人员,设置初始密码并勾选“首次登录时重置密码”;
    • 编程访问:给程序或 CI/CD 流水线使用,创建后会生成访问密钥 AK/SK。
  3. 在创建向导中将用户加入对应的用户组,完成创建。

建议“人”和“程序”使用不同的 IAM 用户:人员账号只开控制台访问,程序账号只开编程访问,两者互不混用,便于审计和权限收敛。

四、系统策略:快速完成常见授权

华为云为各云服务预置了大量系统策略,常见的有以下几类:

  • Tenant Administrator:除 IAM 外所有服务的管理员权限;
  • Tenant Guest:全部服务的只读权限,适合审计人员;
  • XXX FullAccess / XXX ReadOnlyAccess:某一服务的完全或只读权限,例如 ECS FullAccess、OBS ReadOnlyAccess;
  • Security Administrator:IAM 管理权限,只建议授予极少数管理员。

授权步骤:在“用户组”列表中点击目标用户组的“授权”,搜索并勾选策略,然后选择授权范围(所有资源、指定区域项目或企业项目),确认即可。比如为 developers 组授予华北-北京四区域的 ECS FullAccess 与 VPC ReadOnlyAccess,为 auditors 组授予 Tenant Guest。

需要注意,权限生效通常有几分钟的延迟;部分服务的策略存在依赖关系,控制台在勾选时会自动提示并带上依赖的策略。

五、自定义策略:精确到操作与资源

系统策略粒度较粗,“开发人员可以管理 ECS 但不能删除”这类需求就需要自定义策略。在 IAM 控制台选择“权限管理 → 权限 → 创建自定义策略”,可以通过可视化视图勾选服务和操作,也可以直接编辑 JSON。

下面的示例允许用户查看、启动、停止和重启云服务器,但显式拒绝删除操作:

{
  "Version": "1.1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:servers:get",
        "ecs:servers:list",
        "ecs:servers:start",
        "ecs:servers:stop",
        "ecs:servers:reboot"
      ]
    },
    {
      "Effect": "Deny",
      "Action": [
        "ecs:servers:delete"
      ]
    }
  ]
}

编写策略时请记住几条规则:

  1. Action 的格式为“服务名:资源类型:操作”,支持通配符,例如 obs:object:*;具体可用的操作以各服务的“权限及授权项”文档为准;
  2. Deny 优先:同一用户同时被 Allow 和 Deny 命中时,以 Deny 为准,适合用来兜底禁止高危操作;
  3. 可以通过 Condition 条件键进一步限制,例如限定来源 IP 或要求请求开启 MFA;
  4. 部分服务支持在 Resource 中指定具体资源(如某个 OBS 桶),实现资源级授权。

建议先从“只读 + 少量必需写操作”开始,在实际使用中根据报错信息逐步补充,而不是一开始就授予 FullAccess。

六、委托:跨账号与云服务授权

很多场景下需要“让别人代表我操作”:

  • 委托其他账号:例如把运维工作交给合作伙伴,在 IAM 中创建委托,选择“普通账号”,填写对方账号名并授予指定权限。对方的 IAM 用户在控制台右上角“切换角色”后即可管理你的资源,无需你为其创建用户、共享密码;
  • 委托云服务:例如让 ECS 上运行的程序访问 OBS、让函数工作流 FunctionGraph 读写其他服务。创建委托时选择“云服务”,再在服务侧绑定该委托,程序即可获取临时安全凭证访问资源。

委托最大的好处是无需在代码或服务器上保存长期 AK/SK,临时凭证自动轮换,泄露风险大大降低。委托同样应遵循最小权限,并设置合理的持续时间。

七、MFA 与登录安全

只靠密码保护账号是不够的。IAM 提供多项登录安全能力:

  1. 虚拟 MFA:在“安全设置”中绑定华为云 App 或其他支持 TOTP 的身份验证器,登录时除密码外还需输入 6 位动态码;
  2. 登录保护:为用户开启登录保护,可选虚拟 MFA、短信或邮件验证;
  3. 操作保护:开启后,删除资源、修改关键配置等敏感操作需要二次验证,有效防止误操作;
  4. 密码策略与访问控制:在“安全设置”中设置密码复杂度、有效期、登录失败锁定,并可配置允许访问的 IP 地址段。

强烈建议:账号本身和所有拥有管理权限的 IAM 用户都必须绑定 MFA。

八、AK/SK 最佳实践

访问密钥是程序调用华为云 API 的长期凭证,一旦泄露危害极大:

  1. 不使用账号的 AK/SK,为每个应用创建独立的编程访问用户并按需授权;
  2. 不硬编码:不要把 AK/SK 写进代码或提交到 Git 仓库,优先使用环境变量、配置中心或数据加密服务 DEW 的凭据管理;
  3. 能用委托就用委托:运行在 ECS、CCE、FunctionGraph 上的程序优先通过委托获取临时凭证;
  4. 定期轮换:每个用户最多可以有两个访问密钥,可先创建新密钥、切换业务,再停用并删除旧密钥,实现平滑轮换;
  5. 及时清理:在用户详情中查看访问密钥的最近使用时间,长期未使用的密钥应停用;
  6. 审计:开启云审计服务 CTS,记录所有 API 调用,发现异常操作时可快速追溯。

九、总结

IAM 是华为云安全体系的第一道门。落地时记住几条主线:主账号只用于管理和计费,日常操作使用 IAM 用户;权限授予用户组而不是个人;系统策略满足不了时用 JSON 自定义策略精确控制,并用 Deny 兜底高危操作;跨账号和服务间访问优先使用委托;所有管理员开启 MFA 与操作保护;AK/SK 不硬编码、定期轮换、配合 CTS 审计。坚持最小权限原则,才能在享受云上便利的同时把安全风险降到最低。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。