更新时间:2024-04-01 GMT+08:00
分享

配置双端固定

配置示例一:只配置VPC终端节点策略

场景描述:

只允许VPC1内的服务器下载账号A的桶mybucket中的对象。

其中VPC1的ID为:4dad1f75-0361-4aa4-ac75-1ffdda3a0fec,账号A的账号ID为:783fc6652cf246c096ea836694f71855。

配置方法:

配置VPC1的终端节点策略如下:

入口:服务列表 > VPC终端节点 > 单击对应VPC终端节点ID > 策略 > 编辑

[
    {
        "Action": [
            "obs:object:GetObject"
        ],
        "Resource": [
            "obs:*:783fc6652cf246c096ea836694f71855:object:mybucket/*"
        ],
        "Effect": "Allow"
    }
]

配置示例二:只配置VPC终端节点策略,禁止指定资源下载

场景描述:

除了账号A的桶mybucket中的对象外,允许VPC1内的服务器下载账号A名下所有其他桶的桶内对象。

其中账号A的账号ID为:783fc6652cf246c096ea836694f71855。

配置方法:

配置VPC1的终端节点策略如下:

入口:服务列表 > VPC终端节点 > 单击对应VPC终端节点ID > 策略 > 编辑

[
    {
        "Action": [
            "obs:object:GetObject"
        ],
        "Resource": [
            "obs:*:783fc6652cf246c096ea836694f71855:object:*/*"
        ],
        "Effect": "Allow"
    },
    {
        "Action": [
            "obs:object:GetObject"
        ],
        "Resource": [
            "obs:*:783fc6652cf246c096ea836694f71855:object:mybucket/*"
        ],
        "Effect": "Deny"
    }
]

配置示例三:同时配置VPC终端节点策略与桶策略

场景描述:

只允许VPC1内的服务器上传/下载账号A的桶mybucket中的对象,并且只允许桶mybucket中的对象被VPC1内的服务器上传/下载。

其中VPC1的ID为:4dad1f75-0361-4aa4-ac75-1ffdda3a0fec,账号A的账号ID为:783fc6652cf246c096ea836694f71855。

配置方法:

  1. 配置VPC1的终端节点策略如下:
    入口:服务列表 > VPC终端节点 > 单击对应VPC终端节点ID > 策略 > 编辑
    [
        {
            "Action": [
                "obs:object:GetObject",
    	    "obs:object:PutObject"
            ],
            "Resource": [
                "obs:*:783fc6652cf246c096ea836694f71855:object:mybucket/*"
            ],
            "Effect": "Allow"
        }
    ]
  2. 配置桶mybucket的桶策略如下:

    配置方法请参见自定义创建桶策略(JSON视图)

    需要配置两个桶策略:

    • 桶策略1:允许VPC1内的服务器上传/下载账号A的桶mybucket中的对象。

      其中statementId可自定义,domainIduserId需要设置为允许上传下载的账号ID和用户ID。相关说明请参见桶策略

      {
          "Statement": [
              {
                  "Sid": "statementId",
                  "Effect": "Allow",
                  "Principal": {
                      "ID": ["domain/domainId:user/userId"]
                  },
                  "Action": ["GetObject", "PutObject"],
                  "Resource": ["mybucket/*"],
                  "Condition": {
                      "StringEquals": {
                          "SourceVpc": ["4dad1f75-0361-4aa4-ac75-1ffdda3a0fec"]
                      }
                  }
              }
          ]
      }
    • 桶策略2:除了VPC1外的其他VPC内的服务器均不能操作账号A的桶mybucket及桶中的对象。

      其中DenyReqNotFromVpc可自定义。

      {
          "Statement": [
              {
                  "Sid": "DenyReqNotFromVpc",
                  "Effect": "Deny",
                  "Principal": {
                      "ID": ["*"]
                  },
                  "Action": "*",
                  "Resource": ["mybucket", "mybucket/*"],
                  "Condition": {
                      "StringNotEqual": {
                          "SourceVpc": ["4dad1f75-0361-4aa4-ac75-1ffdda3a0fec"]
                      }
                  }
              }
          ]
      }

      设置上述桶策略后,被授权的IAM用户可以正常通过SDK或API进行上传下载操作。如果希望在控制台或OBS Browser+上进行上传下载,还需要在IAM权限中额外配置obs:bucket:ListAllMyBuckets和obs:bucket:ListBucket权限,否则登录控制台和OBS Browser+时会报错,无法看到桶和桶内对象。

配置示例四:同时配置VPC终端节点策略与桶策略后,再授权其他云服务访问桶

场景描述:

当同时设置了VPC1的终端节点策略与账号A的桶mybucket的桶策略后,由于双端固定的限制,其它云服务包括OBS就无法访问桶mybucket。如果想要授权其它云服务能够访问桶mybucket,可以通过委托授权的方式。

其中VPC1的ID为:4dad1f75-0361-4aa4-ac75-1ffdda3a0fec,账号A的账号ID为:783fc6652cf246c096ea836694f71855。

配置方法:

  1. 配置VPC1的终端节点策略如下:

    只允许VPC1内的服务器上传/下载账号账号A的桶mybucket中的对象。

    入口:服务列表 > VPC终端节点 > 单击对应VPC终端节点ID > 策略 > 编辑

    [
        {
            "Action": [
                "obs:object:GetObject",
    	    "obs:object:PutObject"
            ],
            "Resource": [
                "obs:*:783fc6652cf246c096ea836694f71855:object:mybucket/*"
            ],
            "Effect": "Allow"
        }
    ]
  2. 创建IAM委托,委托其它云服务访问桶mybucket。例如,委托OBS,绑定系统策略OBS FullAccess,也可以创建自定义策略并绑定该委托。
  3. 配置桶mybucket的桶策略如下:
    只允许桶mybucket中的对象被VPC1内的服务器或者委托名为testAgencyName所对应授权的云服务访问桶mybucket中的对象。其中委托名以步骤二实际创建的IAM委托名称为准。
    {
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {"ID": ["*"]},
                "Action": ["*"],
                "Resource": ["mybucket/*"],
                "Condition": {
                    "StringEquals": {
                        "SourceVpc": ["4dad1f75-0361-4aa4-ac75-1ffdda3a0fec"]
                    }
                }
            },
            {
                "Effect": "Allow",
                "Principal": {"ID": ["*"]},
                "Action": ["*"],
                "Resource": ["mybucket/*"],
                "Condition": {
                    "StringEquals": {
                        "ServiceAgency": ["testAgencyName"]
                    }
                }
            }
        ]
    }

    同时,桶策略也可按如下配置达到同样的效果:

    {
        "Statement": [
            {
                "Effect": "Deny",
                "Principal": {"ID": ["*"]},
                "Action": ["*"],
                "Resource": ["mybucket/*"],
                "Condition": {
                    "StringNotEquals": {
                        "SourceVpc": ["4dad1f75-0361-4aa4-ac75-1ffdda3a0fec"],
                        "ServiceAgency": ["testAgencyName"]
                    }
                }
            }
        ]
    }
分享:

    相关文档

    相关产品