通过VPC Policy与Bucket Policy控制数据访问安全

您可以通过VPC Policy控制授权用户允许访问的资源,同时结合Bucket Policy指定资源允许哪些用户访问,从而保证云上数据在一个安全网络环境内进行访问,降低未授权访问风险。

前提条件

已创建与Bucket在同一地域的VPC。具体操作,请参见创建和管理专有网络

背景信息

通过源端与目的端控制数据访问安全的方案架构如下:

safety

通过以上方案架构得知:

  • 允许访问

    在授权的VPC内通过授信的用户AccessKey访问授权的Bucket资源。

  • 拒绝访问

    • 在授权的VPC内通过非授信的用户AccessKey访问未被授权的Bucket资源。

    • 在非授权的VPC内通过授信的用户AccessKey访问授权的Bucket资源。

场景描述

UID为174649585760xxxx的用户在OSS中创建了名为examplebucket的存储空间,用于存放企业的重要数据。此外,用户还购买了多台ECS运行业务,业务环境搭建在ID为t4nlw426y44rd3iq4xxxx的专有网络VPC内。

该用户希望仅允许当前VPC访问OSS指定资源examplebucket,从而对数据流进行VPC源端访问控制。此外,还需要阻止所有非当前VPC的OSS访问请求,从而对数据流进行Bucket目的端访问控制。

步骤一:配置VPC Policy

通过VPC Policy限制ID为t4nlw426y44rd3iq4xxxx的专有网络VPC仅允许访问OSS中examplebucket下的资源。

  1. 登录专有网络管理控制台

  2. 在左侧导航栏,单击终端节点

  3. 在顶部菜单栏处,选择要创建网关终端节点的地域。

  4. 单击网关终端节点页签,然后单击创建终端节点

  5. 创建终端节点页面,配置以下参数信息,然后单击确定创建

    参数

    说明

    节点名称

    输入网关终端节点的名称。

    终端节点类型

    选择需要创建的终端节点类型,本教程选择网关终端节点

    终端节点服务

    单击选择可用服务,然后选择服务资源类型为对象存储OSS的终端节点服务。

    专有网络

    选择需要创建网关终端节点的VPC。

    路由表

    选择与网关终端节点关联的路由表。

    资源组

    选择终端节点所属资源组。

    描述

    输入终端节点的描述信息。

    访问策略

    输入以下访问策略。

    {
      "Statement":
        [
          {
            "Action": "oss:*",
            "Effect": "Allow",
            "Principal": ["174649585760xxxx"],
            "Resource": ["acs:oss:*:*:examplebucket",
                         "acs:oss:*:*:examplebucket/*"]
          }
        ],
      "Version": "1"
    }
    重要

    如果没有配置VPC Policy,则默认允许该VPC访问相同地域的Bucket。如果配置了VPC Policy,则只有鉴权结果为Allow时,才允许该VPC访问相同地域的Bucket。

步骤二:配置Bucket Policy

通过Bucket Policy阻止ID不为t4nlw426y44rd3iq4xxxxVPC网络请求访问OSS资源。

  1. 登录OSS管理控制台

  2. 在左侧导航栏,单击Bucket 列表,然后单击examplebucket。

  3. 在左侧导航栏,选择权限控制>Bucket 授权策略

  4. Bucket 授权策略页签单击按语法策略添加

  5. 单击编辑,然后输入以下Bucket Policy。

    {
      "Statement" :
        [
          {
            "Action": ["oss:*"],
            "Effect": "Deny",
            "Principal": ["*"],
            "Resource": "acs:oss:*:*:*",
            "Condition":
              {
                "StringNotEquals" :
                  {
                    "acs:SourceVpc": ["t4nlw426y44rd3iq4xxxx"]
                  }
              }
          }
        ] ,
      "Version": "1"
    }
    重要

    如果Bucket Policy鉴权结果为Deny,则拒绝访问。如果鉴权结果不是Deny,则需要结合RAM Policy等结果综合判定是否允许访问。更多信息,请参见OSS鉴权详解

  6. 单击保存后,在弹出的对话框,单击确定