
# 配置双端固定
#### 配置示例一：只配置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视图）](https://support.huaweicloud.com/usermanual-obs/obs_03_0141.html)。
   两个桶策略：
   - 桶策略1：允许VPC1内的服务器上传/下载账号A的桶mybucket中的对象。 其中*statementId* 可自定义，*domainId* 和*userId* 需要设置为允许上传下载的账号ID和用户ID。相关说明请参见[桶策略](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0004.html)。
     ```
     {
         "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"]
                     }
                 }
             }
         ]
     }
     ```
     ![](https://support.huaweicloud.com/usermanual-vpcep/public_sys-resources/note_3.0-zh-cn.png)
     设置上述桶策略后，被授权的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委托](https://support.huaweicloud.com/usermanual-iam/iam_06_0004.html)，委托其它云服务访问桶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"]
                   }
               }
           }
       ]
   }
   ```
   
 
