更新时间:2025-09-25 GMT+08:00
分享

跨账号资源访问

对于华为云的部分云服务,您可以授予云服务对资源的跨账号访问权限。为了实现跨账号资源访问的目的,您可以给资源直接附加资源策略,也可以使用IAM委托(包含普通委托和信任委托两种)实现跨账号授权后,使用IAM委托访问跨账号的资源。如果不使用IAM委托直接实现跨账号资源共享,则需要云服务的资源必须支持资源策略。与IAM身份策略不同,资源策略要求在策略中指定谁可以访问该资源。使用IAM委托实现跨账号资源共享不要求云服务的资源必须支持资源策略。

使用委托实现跨账号访问

大部分华为云云服务并不支持资源策略。对于这些服务,您可以在使用IAM委托访问其他账号下的云服务资源。IAM委托分为两类:一类是普通委托,其信任关系非常简单,是在委托中直接通过配置参数指定该委托所信任的用户或云服务;另一类是信任委托,其信任关系是通过信任策略描述某个用户或云服务能够切换委托等操作。简单来说,无论是哪一种委托,您都可以通过在创建委托时配置信任关系,允许其他账号或云服务可以访问您账号下的资源。其他账号或云服务能对您账号下的资源进行的具体操作则是通过在IAM委托上配置的身份策略限制的。

示例:

  1. 某账号下的IAM用户张三创建一个信任委托,信任委托需要绑定两种策略:其一是信任策略,表示用户间的信任关系;其二是身份策略,表示被委托账号切换到该信任委托上具有什么操作权限。
    • 该信任策略表示允许租户李四下具有切换信任委托权限的IAM主体切换到该信任委托。在信任策略中使用Principal表示信任的主体,可参见JSON元素参考中的Principal查看详情。
      {
      	"Version": "5.0",
      	"Statement": [{
      		"Principal": {
      			"IAM": [
      				"{Account Id Of LiSi}"
      			]
      		},
      		"Effect": "Allow",
      		"Action": [
      			"sts:agencies:assume"
      		]
      	}]
      }
    • 该身份策略表示允许上述信任委托下载委托方账号中的指定资源(obs:::object:{bucket_name}/{object_name})。
      {
      	"Version": "5.0",
      	"Statement": [{
      		"Effect": "Allow",
      		"Action": [
      			"obs:object:getObject"
      		],
      		"Resource": [
      			"obs:::object:{bucket_name}/{object_name}"
      		]
      	}]
      }
  2. 用户李四下具有sts:agencies:assume权限的IAM主体即可调用POST /v5/agencies/assume接口获取信任委托的临时安全凭证,进而使用该临时安全凭证调用OBS接口获取OBS对象详情。

使用资源策略实现跨账号访问

当一个账号使用资源策略所授予的权限访问另外一个账号的资源时,该账号下的IAM主体仍在本账号体系下,并不需要切换委托。换言之,该账号下的IAM主体既可以访问本账号下的资源,又可以访问其他账号下的资源。这种机制对于执行跨账号任务非常实用,例如向其他账号中的资源复制数据或从该资源获取数据。

当前,华为云仅OBS和IAM服务支持资源策略,分别是OBS桶策略和IAM信任委托的信任策略。桶策略的使用详情见桶策略概述。信任策略的使用见上方的使用委托实现跨账号访问

使用RAM实现跨账号访问

资源访问管理(Resource Access Manager,简称RAM)服务为用户提供安全的跨账号共享资源的能力。如果您有多个华为云账号,您可以创建一次资源,并使用RAM服务将该资源共享给其他账号使用,以此实现资源的跨账号访问。使用RAM服务,资源所有者可以集中管理资源的共享。资源所有者可以将指定资源共享给指定对象(包括组织、OU以及账号),资源所有者还可以随时更新或删除资源共享实例。资源使用者可以接受或拒绝共享邀请,查看当前正在使用的共享信息,以及在共享资源使用结束后退出共享。要了解RAM服务的使用详情,请参见RAM 产品介绍。当前已支持RAM的资源清单,请参见支持共享的云服务和资源类型

相关文档