基本概念
本章为您介绍使用IAM服务时常用的基本概念。
账号
当您首次使用华为云时注册的账号,该账号是您的华为云资源归属、资源使用计费的主体,账号根用户对账号所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。账号统一接收所有IAM用户进行资源操作时产生的费用账单。
您不能在IAM中修改账号信息,而是需要到账号中心去修改账号信息,如果您需要删除账号,可以在账号中心进行注销。

账号可以由账号名(Account Name)和账号ID(Account ID)标识,在IAM或其他云服务的资料中可能出现Domain Name和Domain ID,它们也标识账号名和账号ID。其中,Account Name和Domain Name是完全等价的,Account ID和Domain ID也是完全等价的。
IAM用户
由账号管理员在IAM中创建的用户,是云服务的使用人员,具有独立的身份凭证(密码和访问密钥),根据账号管理员授予的权限使用资源。IAM用户使用云服务资源时不进行独立的计费,由所属账号统一付费。
如果您忘记了IAM用户的登录密码,可以重置密码,重置方法请参见:忘记账号或IAM用户密码怎么办。

账号根用户
在创建账号的同时,系统会默认创建一个与账号同名的根用户。
从概念上来说,账号根用户也是一种IAM用户,它具备IAM用户概念模型下相同的能力。
从使用上来说,账号根用户会有一些额外的约束与限制。
约束1:账号根用户拥有默认的授权
账号根用户在被创建的同时会被授予默认的完全访问权限, 基于这些权限,根用户可以完全控制账号下的资源, 还可以分配其他IAM用户的使用权限。
约束2:账号根用户的权限不允许被修改
账号根用户不允许被绑定或者解绑权限,也不允许被加入或移除用户组,以保证账号根用户可以完全控制账号下的资源。
约束3:账号根用户不允许被删除

- 强烈建议您不要使用根用户来执行日常任务。
- 请您保护好根用户凭证,避免泄露。
账号与IAM用户的关系
从概念模型上来说
- 账号: 资源归属、资源使用计费的主体,账号不直接使用资源。
- IAM用户: 账号下资源的使用主体。
从使用习惯上来说
- 账号根用户:创建账号时,默认创建的与账号同名的IAM用户, 有一些额外的约束和限制。
- IAM用户:创建账号后,手动创建的IAM用户,可以被修改权限和删除。
用户组
用户组是用户的集合,IAM可以通过用户组功能实现批量用户的授权。您创建的IAM用户,加入特定用户组后,将具备对应用户组的权限。当某个用户加入多个用户组时,此用户同时拥有多个用户组的权限,即多个用户组权限的全集。
“admin”为系统缺省提供的用户组,具有所有云服务和资源的操作权限。将IAM用户加入该用户组后,IAM用户可以操作所有云资源,包括但不仅限于创建用户组及用户、修改用户组权限、管理资源等。

信任委托
信任委托是您可以在账号中创建的一种具有特定权限的IAM身份。信任委托与IAM用户类似,均可以绑定身份策略,身份策略拥有决定该身份在华为云中能做什么和不能做什么的权限。但是,信任委托并非只与某个人唯一关联,而是旨在供任何需要它的人员进行切换代入。与IAM用户相比,信任委托没有与之关联的长期凭证(如密码或永久访问密钥),在您切换到一个信任委托时,它会为您的信任委托会话提供临时安全凭证。信任委托根据委托对象的不同,分为委托其他账号和委托其他云服务:
- 委托其他账号:通过信任委托,您可以将自己账号中的资源操作权限委托给其他更专业的第三方账号,被委托的第三方账号可以根据权限代替您进行资源运维工作。
- 委托其他云服务:基于云服务的业务需求,可能需要您创建云服务信任委托,将资源的操作权限委托给该服务,让该服务代替您进行一些资源运维工作。
其中,有一种特殊的云服务信任委托被称为服务关联委托,它由云服务代表您进行创建。普通的云服务信任委托由用户自己进行管理,而服务关联委托则由云服务进行管理,您可以查看但是不能编辑服务关联委托的权限。想要了解信任委托的更多情况,请参见信任委托概述。
此外,在IAM新版控制台的“委托”页签,同时展示了普通委托和信任委托两种类型的委托,它们之间的差异见信任委托概述中的信任策略。在IAM新版资料中,在广义上委托包含普通委托和信任委托,泛指把资源委托给其他人管理,而在狭义上委托即指普通委托,此时它有区别于信任委托。
IAM身份
IAM身份是可以授予身份策略的IAM资源,包含IAM用户、用户组、委托和信任委托。
IAM主体
主体(Principal),是可以对华为云资源发出操作请求的主体,包含IAM用户、委托和信任委托。主体访问API需要经过身份认证,主体也是一种资源,因此Principal URN遵从资源URN格式定义。
身份策略
- 云服务在IAM预置了常用授权项集,称为系统身份策略。管理员给用户组授权时,可以直接使用这些系统身份策略,系统身份策略只能使用,不能修改。如果管理员在IAM控制台给用户、用户组或者信任委托授权时,无法找到特定服务的系统身份策略,原因是该服务暂时不支持IAM,管理员可以通过给对应云服务提交工单,申请该服务在IAM预置系统身份策略。
- 如果系统身份策略无法满足授权要求,管理员可以根据各服务支持的授权项,创建自定义身份策略,并附加至用户、用户组、委托或信任委托,自定义身份策略是对系统身份策略的扩展和补充。目前支持可视化视图、JSON视图两种自定义身份策略配置方式。
身份策略结构图3所示,身份策略结构包含版本号Version和权限语句Statement两部分,其中Statement可以有多个,用于不同的权限控制。身份策略的Version为5.0,在Statement中,Sid表示Statement语句的标识,作用Effect包含Allow和Deny两种,分别表示允许执行和不允许执行。授权项Action/NotAction的格式为:{service name}:{resource type}:{action name},资源Resource URN的格式为{service name}:{region id}:{account id}:{resource type}:{resource name},条件Condition支持String、Number、Date、Bool、IP Address、Null六类条件运算符。同时身份策略支持40+的全局条件键,可以为用户访问华为云提供更加灵活与安全的控制方式。有关身份策略中各种元素的详情,请参见JSON元素参考。
下面以一个具体的身份策略示例说明身份策略的模型结构:
{ "Version": "5.0", "Statement": [{ "Effect": "Deny", "Action": [ "kms:cmk:decryptData" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "g:ResourceAccount": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } } }] }
该身份策略表示拒绝用户使用指定用户以外的KMS密钥解密数据。身份策略详情请参见身份策略语法,更多示例请参见自定义身份策略使用样例。IAM的身份策略相对于策略,其授权项定义更加规范与细粒度,也支持更多的全局条件键,策略仅支持8个全局条件键,如果您仍需使用策略进行授权,请参见权限管理。
授权
授权指的是安全管理员将IAM权限附加到IAM身份(用户、用户组、信任委托、委托)上,使得主体(用户、委托、信任委托)被允许或者禁止访问华为云的资源。也就是说,授权描述的是IAM身份与权限之间的关系。在对IAM身份进行授权时,安全管理员可以直接给用户、用户组、信任委托和委托配置系统身份策略和自定义身份策略。身份策略授权与IAM旧版控制台中的角色和策略授权模型不同,不存在授权范围的概念,可以直接授予各种IAM身份。
{ "Version": "5.0", "Statement": [{ "Effect": "Allow", "Action": ["ecs:*:*"], "Resource": ["*"], "Condition": { "StringEquals": { "g:RequestedRegion": "cn-north-4" } } }] }
如果想要在身份策略授权中达到类似控制授权范围的效果,则可以使用g:RequestedRegion条件键来实现。例如,将上述身份策略直接授予IAM用户上,表示仅允许IAM用户访问华北-北京四cn-north-4区域的ECS服务资源。如果您仍需使用角色与策略授权,授权方式和授权范围请参见权限管理。除此之外,由于系统兼容性原因,支持在IAM新版控制台中为委托授予系统身份策略和自定义身份策略,但是不支持在IAM旧版控制台中为信任委托授予系统角色、系统策略和自定义策略。IAM建议安全管理员在做权限管理时,尽量不要将委托和身份策略或者信任委托和角色与策略进行混用。
身份凭证
身份凭证是识别主体的依据,您通过控制台或者API访问华为云时,需要使用凭证来通过系统的鉴权认证。凭证包括密码、访问密钥、临时安全凭证,您可以在IAM中管理主体(IAM用户、委托和信任委托)的凭证。
MFA
Multi-Factor Authentication (MFA) 是一种非常简单的安全实践方法,它能够在用户名和密码之外再额外增加一层保护。启用MFA后,用户登录控制台时,系统将要求用户输入用户名和密码(第一安全要素),以及来自其MFA设备的验证码(第二安全要素)。这些多重要素结合起来将为您的账号和资源提供更高的安全保护。
URN
统一资源名称(Uniform Resource Name,URN),用于唯一标识云服务资源。
格式为:<service-name>:<region>:<account-id>:<type-name>:<resource-path>