跨账户授权

最近更新时间:2019-01-14 10:10:55

假设主账户A想把自己的存储空间example_bucket的部分权限授权给主账号B下的研发人员。

那么要完成上述的功能,需要配置两条策略:

  • 首先,需要将权限通过空间策略授予主账户B;
  • 第2步,主账户B再将这些权限通过用户策略委托给他的子用户rd_user。

原理图如下:

17.png

具体步骤如下:

1,进入到A账户下需要授权的存储空间(Bucket),例如“exampleBucket”。进入【空间设置】->【空间策略】下,配置一条空间策略,如下:

{
    "Version":"2015-11-01",
    "Statement": [
    {
        "Sid":"1",
        "Effect":"Allow",
        "Principal":{krn:ksc:iam::AccountB_ID:root},
        "Action":[
            "ks3:ListBucket",
            "ks3:GetObject"
         ],
        "Resource":["krn:ksc:ks3:::example_bucket",
"krn:ksc:ks3:::example_bucket/*"]
   }
  ]
}

2,进入到B账户下的【策略管理】页面,新建一条自定义策略,授权策略语言如下:

{
    "Version": "2015-11-01",
    "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ks3:ListObject",
            "ks3:GetObject"
         ],
        "Resource":[
            "krn:ksc:ks3:::example_bucket",
            "krn:ksc:ks3:::example_bucket/*"
         ]
     }
   ]
}

3,进入到B账户下的【用户管理】页面,向rd_user授权第2步创建的策略。

4,使用rd_user这个IAM子用户的AK/SK,生成签名信息,构造对应的访问URL,就可以访问example_bucket的相关资源了。

注意

账户A还可以使用空间策略直接向账户B中的子用户授予权限。但是该子用户仍需要来自用户所属的 父账户(账户B)的权限,该子用户必须同时拥有来自 资源拥有者和父账户的权限,便能够访问资源。原理图如下:

18.png

金山云,开启您的云计算之旅

立即注册