您可以通过VPC Policy控制授权用户允许访问的资源,同时结合Bucket Policy指定资源允许哪些用户访问,从而保证云上数据在一个安全网络环境内进行访问,降低未授权访问风险。
前提条件
已创建与Bucket在同一地域的VPC。具体操作,请参见创建和管理专有网络。
背景信息
通过源端与目的端控制数据访问安全的方案架构如下:
通过以上方案架构得知:
允许访问
在授权的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下的资源。
登录专有网络管理控制台。
在左侧导航栏,单击终端节点。
在顶部菜单栏处,选择要创建网关终端节点的地域。
单击网关终端节点页签,然后单击创建终端节点。
在创建终端节点页面,配置以下参数信息,然后单击确定创建。
参数
说明
节点名称
输入网关终端节点的名称。
终端节点类型
选择需要创建的终端节点类型,本教程选择网关终端节点。
终端节点服务
单击选择可用服务,然后选择服务资源类型为对象存储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不为t4nlw426y44rd3iq4xxxx
VPC网络请求访问OSS资源。
登录OSS管理控制台。
在左侧导航栏,单击Bucket 列表,然后单击examplebucket。
在左侧导航栏,选择权限控制>Bucket 授权策略。
在Bucket 授权策略页签,单击按语法策略添加。
单击编辑,然后输入以下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鉴权详解。
单击保存后,在弹出的对话框,单击确定。