
# 强制桶加密
#### 应用场景
如果您的业务场景对安全性、合规性要求较高，可使用Organizations云服务提供的SCP策略，强制要求绑定策略的成员账号在创建桶时必须开启服务端加密，且现有桶不允许执行关闭桶加密操作。
#### 背景介绍
在使用华为云的过程中，您可能不仅仅只拥有一个华为账号，而是同时拥有多个华为账号，例如企业A有下属子公司B、C、D，企业A总部有账号a，下属子公司分别有账号b、c、d。为了帮助您更高效地管理多个账号，华为云提供了[Organizations云服务](https://support.huaweicloud.com/organizations/index.html)，使用Organizations您可以创建一个组织，然后将多个账号都加入到组织中进行统一管理。
- **组织：** 组织是为管理多账号关系而创建的实体，一个组织由一个管理账号和若干个成员账号组成，详情请参见[组织概述](https://support.huaweicloud.com/usermanual-organizations/org_03_0014.html)。
- **管理账号** ：管理账号是创建组织的账号，管理账号可通过策略（例如服务控制策略）对成员账号进行权限和资源的管理，详情请参见[组织相关账号概述](https://support.huaweicloud.com/usermanual-organizations/org_03_0025.html)。
- **成员账号** ：除管理账号外，组织中的剩余账号都为成员账号，详情请参见[组织相关账号概述](https://support.huaweicloud.com/usermanual-organizations/org_03_0025.html)。
- **组织单元：** 组织单元是成员账号的容器或分组单元，一个组织单元下可以关联多个子组织单元或者成员账号，详情请参见[组织单元](https://support.huaweicloud.com/usermanual-organizations/org_03_0019.html)。
- **服务控制策略** (Service Control Policy，以下简称SCP) ：Organizations提供的一种基于组织的访问控制策略，管理账号可以使用SCP指定成员账号的权限边界，限制成员账号的操作，详情参见[SCP策略概述](https://support.huaweicloud.com/usermanual-organizations/org_03_0065.html)。
 
#### 方案架构
图1使用SCP策略实现强制桶加密   
![](https://support.huaweicloud.com/bestpractice-obs/zh-cn_image_0000002484696216.png "点击放大")
本文将展示如何使用SCP策略实现强制桶加密，如[图1]所示，管理账号创建了一个组织，账号A是组织中的成员账号且受到管理账号的管理。管理账号通过SCP策略的方式，限制了成员账号A的创建桶行为，强制成员账号A只能创建加密桶，非加密桶的创建会被拒绝。同样，可以使用SCP策略规定现有桶不允许执行关闭桶加密操作**。**
#### 约束与限制
成员账号绑定SCP策略后，策略将在30分钟内生效。
#### 操作流程
配置强制桶加密的流程如下：
图2强制桶加密操作流程   
![](https://support.huaweicloud.com/bestpractice-obs/zh-cn_image_0000002454878933.png "点击放大")
#### 步骤一：在Organizations控制台完成准备工作
配置强制桶加密前，请确保您已完成了以下准备工作：
1. 创建组织，如何创建组织请参考[创建组织](https://support.huaweicloud.com/usermanual-organizations/org_03_0015.html)。创建完成后，创建组织的账号会自动成为组织的管理账号。
2. 使用管理账号将需要限制行为的成员账号加入到组织中，如何邀请账号加入组织请参考[邀请账号加入组织](https://support.huaweicloud.com/usermanual-organizations/org_03_0026.html)。
3. 【可选】为了方便您后续对账号的管理，建议您将需要管理的账号移动到组织单元中，如何新建组织单元请参见[新建组织单元](https://support.huaweicloud.com/usermanual-organizations/org_03_0020.html)，如何移动账号到组织单元请参见[移动账号](https://support.huaweicloud.com/usermanual-organizations/org_03_0027.html)。这样后续绑定SCP策略时，只需要绑定组织单元，策略就会对组织单元下的所有成员账号生效，提升您的管理效率。
 
 #### 步骤二：在Organizations控制台创建SCP策略
1. 使用**管理账号** 登录[Organizations控制台](https://console.huaweicloud.com/organizations/)，单击左侧树中的"策略管理"，进入策略管理页。
2. 单击"服务控制策略"，进入SCP管理页。
3. 单击"创建"，进入SCP创建页。
4. 输入策略名称。注意，创建的策略名称不能与已有策略名称重复。
5. （可选）输入策略描述。
6. 编辑SCP策略。以下为SCP策略示例供您参考： 
   **示例一：创建桶必须开启服务端加密** ，对加密方式不做限制，也不限制加密配置是否能关闭。
   ```
   {
     "Version": "5.0",
     "Statement": [
       {
         "Effect": "Deny",
         "Action": [
           "obs:bucket:createBucket"
         ],
         "Condition": {
           "Bool": {
             "obs:BucketEncrypted": [
               "false"
             ]
           }
         }
       }
     ]
   }
   ```
   **示例二：创建桶必须开启服务端加密并使用SSE-KMS加密方式，且现有桶不允许执行关闭桶加密操作。**
   ```
   {
     "Version": "5.0",
     "Statement": [
       {
         "Effect": "Deny",
         "Action": [
           "obs:bucket:createBucket"
         ],
         "Condition": {
           "StringNotEquals": {
             "obs:x-obs-server-side-encryption": [
               "kms"
             ]
           }
         },
         "Resource": [
           "*"
         ]
       },
       {
         "Effect": "Deny",
         "Action": [
           "obs:bucket:putEncryptionConfiguration"
         ],
         "Condition": {
           "Bool": {
             "obs:BucketEncrypted": [
               "false"
             ]
           }
         }
       }
     ]
   }
   ```
   
   
7. 单击右下角"保存"后，系统会自动校验语法，如跳转到策略列表，则SCP创建成功。如提示"策略内容格式不正确"，请按照[SCP语法规范](https://support.huaweicloud.com/usermanual-organizations/org_03_0033.html)进行修改。
 
#### 步骤三：在Organizations控制台为成员账号或组织单元或绑定SCP策略
1. 使用**管理账号** 登录[Organizations控制台](https://console.huaweicloud.com/organizations/)，单击左侧树中的"策略管理"，进入策略管理页。
2. 单击"服务控制策略"，进入SCP策略列表页。
3. 单击[步骤二]中创建的SCP策略右侧的"绑定"，在弹窗中选中要绑定SCP策略的成员账号或组织单元。
4. 在弹窗中输入"确认"，单击右下角"确定"，完成策略绑定。
 
#### 步骤四：在OBS控制台验证配置结果
**验证示例一：**
1. 使用**成员账号** 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在页面右上角单击"创建桶"。
3. 参照[如何创建桶](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829088.html)配置桶参数，不开启服务端加密。
4. 配置完成后单击"立即创建"，如果创桶失败，则说明配置生效。
**验证示例二：**
1. 使用**成员账号** 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在页面右上角单击"创建桶"。
3. 参照[如何创建桶](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829088.html)配置桶参数，不要选择SSE-KMS加密方式。
4. 配置完成后单击"立即创建"，如果创桶失败，则说明强制使用SSE-KMS的策略生效。
5. 接下来验证禁止关闭桶加密的策略。打开服务端加密并选择SSE-KMS加密方式，创建一个开启SSE-KMS加密的桶。
6. 创桶成功后在桶列表中，单击新建的桶，进入"对象"页。
7. 在左侧导航栏，单击"概览"，进入"概览"页。
8. 在概览页的"基础配置"区域下，单击"服务端加密"卡片，系统弹出"服务端加密"对话框。
9. 关闭服务端加密，单击"确认"。如果关闭失败，则说明"禁止关闭桶加密"的策略生效。
**验证示例三：**
1. 使用**成员账号** 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在页面右上角单击"创建桶"，参照[如何创建桶](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829088.html)配置桶参数。
3. 验证**强制使用SSE-KMS** 策略。
   
   配置加密模式时，不要选择SSE-KMS加密方式，如果创建桶失败，则说明强制使用SSE-KMS的策略生效。
   
   
4. 验证**禁用默认加密密钥** 策略。
   
   打开服务端加密并选择SSE-KMS加密方式：
   - 当加密密钥类型选择"默认密钥"时：创建桶失败，表示"禁用默认加密密钥"策略生效。
   
   - 当加密密钥类型选择"自定义密钥"时：创建桶成功，表示"禁用默认加密密钥"策略生效。
   
   - 当加密密钥类型选择"共享密钥"时：创建桶成功，表示"禁用默认加密密钥"策略生效。
    
   
   
5. 验证**禁止关闭桶加密** 策略。
   
   1. 创桶成功后在桶列表中，单击新建的桶，进入"对象"页。
   
   2. 在左侧导航栏，单击"概览"，进入"概览"页。
   
   3. 在概览页的"基础配置"区域下，单击服务端加密卡片，系统弹出服务端加密对话框。
   
   4. 关闭服务端加密，单击"确认"。如果关闭失败，则说明"禁止关闭桶加密"的策略生效。
   
   
   
   
 
