更新时间:2025-08-30 GMT+08:00

强制桶加密

应用场景

如果您的业务场景对安全性、合规性要求较高,可使用Organizations云服务提供的SCP策略,强制要求绑定策略的成员账号在创建桶时必须开启服务端加密,且现有桶不允许执行关闭桶加密操作。

背景介绍

在使用华为云的过程中,您可能不仅仅只拥有一个华为账号,而是同时拥有多个华为账号,例如企业A有下属子公司B、C、D,企业A总部有账号a,下属子公司分别有账号b、c、d。为了帮助您更高效地管理多个账号,华为云提供了Organizations云服务,使用Organizations您可以创建一个组织,然后将多个账号都加入到组织中进行统一管理。

  • 组织:组织是为管理多账号关系而创建的实体,一个组织由一个管理账号和若干个成员账号组成,详情请参见组织概述
  • 管理账号:管理账号是创建组织的账号,管理账号可通过策略(例如服务控制策略)对成员账号进行权限和资源的管理,详情请参见组织相关账号概述
  • 成员账号除管理账号外,组织中的剩余账号都为成员账号,详情请参见组织相关账号概述
  • 组织单元:组织单元是成员账号的容器或分组单元,一个组织单元下可以关联多个子组织单元或者成员账号,详情请参见组织单元
  • 服务控制策略(Service Control Policy,以下简称SCP) Organizations提供的一种基于组织的访问控制策略,管理账号可以使用SCP指定成员账号的权限边界,限制成员账号的操作,详情参见SCP策略概述

方案架构

图1 使用SCP策略实现强制桶加密

本文将展示如何使用SCP策略实现强制桶加密,如图1所示,管理账号创建了一个组织,账号A是组织中的成员账号且受到管理账号的管理。管理账号通过SCP策略的方式,限制了成员账号A的创建桶行为,强制成员账号A只能创建加密桶,非加密桶的创建会被拒绝。同样,可以使用SCP策略规定现有桶不允许执行关闭桶加密操作

约束与限制

成员账号绑定SCP策略后,策略将在30分钟内生效。

操作流程

配置强制桶加密的流程如下:

图2 强制桶加密操作流程

步骤一:在Organizations控制台完成准备工作

配置强制桶加密前,请确保您已完成了以下准备工作:

  1. 创建组织,如何创建组织请参考创建组织。创建完成后,创建组织的账号会自动成为组织的管理账号。
  2. 使用管理账号将需要限制行为的成员账号加入到组织中,如何邀请账号加入组织请参考邀请账号加入组织
  3. 【可选】为了方便您后续对账号的管理,建议您将需要管理的账号移动到组织单元中,如何新建组织单元请参见新建组织单元,如何移动账号到组织单元请参见移动账号。这样后续绑定SCP策略时,只需要绑定组织单元,策略就会对组织单元下的所有成员账号生效,提升您的管理效率。

步骤二:在Organizations控制台创建SCP策略

  1. 使用管理账号登录Organizations控制台,单击左侧树中的“策略管理”,进入策略管理页。
  2. 单击“服务控制策略”,进入SCP管理页。
  3. 单击“创建”,进入SCP创建页。
  4. 输入策略名称。注意,创建的策略名称不能与已有策略名称重复。
  5. (可选)输入策略描述。
  6. 编辑SCP策略。以下为两个SCP策略示例供您参考:

    示例一:创建桶必须开启服务端加密,对加密方式不做限制,也不限制加密配置是否能关闭。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    {
      "Version": "5.0",
      "Statement": [
        {
          "Effect": "Deny",
          "Action": [
            "obs:bucket:createBucket"
          ],
          "Condition": {
            "Bool": {
              "obs:BucketEncrypted": [
                "false"
              ]
            }
          }
        }
      ]
    }
    

    示例二:创建桶必须开启服务端加密并使用SSE-KMS加密方式,且现有桶不允许执行关闭桶加密操作。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    {
      "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语法规范进行修改。

步骤三:在Organizations控制台为成员账号或组织单元或绑定SCP策略

  1. 使用管理账号登录Organizations控制台,单击左侧树中的“策略管理”,进入策略管理页。
  2. 单击“服务控制策略”,进入SCP策略列表页。
  3. 单击步骤二中创建的SCP策略右侧的“绑定”,在弹窗中选中要绑定SCP策略的成员账号或组织单元。
  4. 在弹窗中输入“确认”,单击右下角“确定”,完成策略绑定。

步骤四:在OBS控制台验证配置结果

验证示例一:

  1. 使用成员账号在OBS管理控制台左侧导航栏选择“对象存储”
  2. 在页面右上角单击“创建桶”。
  3. 参照如何创建桶配置桶参数,不开启服务端加密
  4. 配置完成后单击“立即创建”,如果创桶失败,则说明配置生效。

验证示例二:

  1. 使用成员账号在OBS管理控制台左侧导航栏选择“对象存储”
  2. 在页面右上角单击“创建桶”。
  3. 参照如何创建桶配置桶参数,不要选择SSE-KMS加密方式。
  4. 配置完成后单击“立即创建”,如果创桶失败,则说明强制使用SSE-KMS的策略生效。
  5. 接下来验证禁止关闭桶加密的策略。打开服务端加密并选择SSE-KMS加密方式,创建一个开启SSE-KMS加密的桶。
  6. 创桶成功后在桶列表中,单击新建的桶,进入“对象”页。
  7. 在左侧导航栏,单击“概览”,进入“概览”页。
  8. 在概览页的“基础配置”区域下,单击“服务端加密”卡片,系统弹出“服务端加密”对话框。
  9. 关闭服务端加密,单击“确认”。如果关闭失败,则说明“禁止关闭桶加密”的策略生效。