操作场景
双端固定是同时设置VPC终端节点策略与ZOS桶策略,分别从请求来源和被访问资源两个角度保障了数据安全性,对ZOS中存储的数据提供VPC粒度的权限控制。
通过设置VPC终端节点策略限制VPC中的服务器(CT-ECS、CT-DPS等)访问ZOS中的特定资源,同时通过设置ZOS桶策略限定ZOS中的桶被特定VPC中的服务器访问,从而在请求来源和被访问资源两个角度保障了数据安全。
约束与限制
对象存储双端固定支持的区域请参见产品能力地图。
背景信息
虚拟私有云(CT_VPC)是您在天翼云上申请的隔离的、私密的网络环境。您能够在一个安全可控、隔离的网络环境中实现云资源的高效管理和利用。了解更多请参见虚拟私有云产品定义。
VPC终端节点(VPCE)是一种能够将VPC私密地连接到终端节点服务(如对象存储ZOS)的解决方案。通过使用VPC终端节点,VPC中的云资源无需使用弹性IP就可以直接访问终端节点服务,从而提高了访问效率。这种灵活、安全的组网方式为用户提供了更高效的连接方式,保障了数据的安全性和隐私。了解更多请参见VPC终端节点产品定义。
您可以通过VPC终端节点将对象存储ZOS中的数据共享给云上服务器。
工作原理
VPC终端节点策略和ZOS桶策略,分别从请求来源和被访问资源两个角度保障了数据安全性。
设置VPC终端节点策略可以限制VPC中的服务器(CT-ECS、CT-DPS等)可以访问哪些云上资源,设置桶策略可以限定ZOS的存储桶被只能被特定VPC中的服务器访问,两者可以同时设置。
比如,设置VPC终端节点策略:允许VPC1中的服务器通过VPCE1访问存储桶A,允许VPC2中的服务器通过VPCE2访问桶A;设置桶策略:存储桶A允许VPCE1访问,桶B允许VPCE2访问。由于配置了双端固定,所以VPC1中的服务器通过VPCE1访问桶A成功,访问桶B失败。VPC2访问桶A和桶B均失败。
VPC终端节点策略语法说明
VPC终端节点策略遵循最小权限原则,如果策略没有显式“Allow(允许)”,则默认“Deny(拒绝)”。在创建终端节点时,系统将会为该终端节点生成一个默认策略,该策略允许对ZOS完全访问。在创建完成后,您可以根据需要随时调整策略。
VPC终端节点策略由Effect(作用)、Action(授权项)、Resource(资源类型)组成:
参数 | 值 |
---|---|
Effect | 定义Action中的操作权限是否允许执行。
当同一个Action的Effect既有Allow又有Deny时,遵循Deny优先的原则。 |
Action | 对ZOS资源的操作权限。具体可授权操作请参见附录一:桶策略授权操作。 |
Resource | 策略所作用的资源。格式为:"arn:aws:s3:::授权资源"。授权资源取值如下:
|
操作步骤
1. 点击天翼云门户首页的“控制中心”,输入登录的用户名和密码,进入控制中心页面。
2. 在管理控制台上方点击图标,选择所需的资源池节点,以下操作选择华东-华东1。
3. 在系统首页,选择“网络>VPC终端节点”,进入“终端节点”页面。
4. 在左侧导航栏选择“终端节点服务”,点击“创建终端节点服务”。
5. 在“创建终端节点服务”页面根据终端节点服务配置说明配置参数,服务请选择cn.ctyun.cn-huadong-1.zos,具体步骤请参考创建终端节点。
说明
在创建VPC终端节点时会生成默认策略,该策略允许VPC终端节点对ZOS完全访问,您可以在创建VPC终端节点后对VPC终端节点策略进行编辑修改。
6. 编辑VPC终端节点策略:选择需要修改策略的VPC终端节点,选择“策略”栏,点击“编辑”即可进行修改
以下提供三种配置双端固定的场景示例。
示例一:只配置VPC终端节点策略,允许访问特定对象资源
场景描述:允许VPC内的服务器通过该终端节点下载桶bucket-test中的所有对象,不允许访问其他桶。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::bucket-test/*"
]
}
]
}
示例二:只配置VPC终端节点策略,禁止访问特定对象资源
场景描述:允许VPC内的服务器通过该终端节点下载桶bucket-test中除对象objecttest外的所有其他对象。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::bucket-test/*"
]
},
{
"Effect": "Deny",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::bucket-test/objecttest"
]
}
]
}
示例三:同时配置VPC终端节点策略和桶策略
场景描述:只允许VPC内的服务器通过终端节点VPCE-test上传/下载桶bucket-test中的对象,并且只允许用户A通过该终端节点VPCE-test的服务器来上传/下载桶bucket-test中的对象。
其中,VPCE-test的实例ID为:endpoint-r20l0nb8d8,可通过终端节点详情页获取。用户A的id为:5e57993ec2xxxxxxxx,通过IAM控制台获取。
(1)配置VPC终端节点策略:只允许VPC内的服务器通过终端节点VPCE-test上传/下载桶bucket-test中的对象
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::bucket-test/*"
]
}
]
}
(2)配置桶bucket-test的桶策略如下,配置方法请参见桶策略。需要配置两条桶策略。
statementtest1:允许用户5e57993ec2xxxxxxxx通过终端节点VPCE-test(endpoint-r20l0nb8d8)上传/下载桶bucket-test中的对象。具体可授权操作请参见附录一:桶策略授权操作。
statementtest2:除了通过终端节点VPCE-test(endpoint-r20l0nb8d8)的请求可以操作外,其余请求均不能操作桶A及桶中的对象。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "statementtest1",
"Resource": [
"arn:aws:s3:::bucket-test/*"
],
"Principal": {
"AWS": [ "arn:aws:iam:::user/5e57993ec2xxxxxxxx"
]
},
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Condition": {
"StringEquals": {
"aws:SourceVpce": [
"endpoint-r20l0nb8d8"
]
}
}
},
{
"Sid": "statementtest2",
"Resource": [
"arn:aws:s3:::bucket-test",
"arn:aws:s3:::bucket-test/*"
],
"Principal":"*",
"Effect": "Deny",
"Action": [
"s3:*"
],
"Condition": {
"StringNotEqualsIfExists": {
"aws:SourceVpce": [
"endpoint-r20l0nb8d8"
]
}
}
}
]
}
说明
由于桶owner默认拥有桶的所有权限,故需要注意下面两种情况:
若用户A是桶bucket-test的owner,则只有用户A能通过该终端节点VPCE-test的服务器来上传/下载桶bucket-test中的对象,且用户A通过非终端节点VPCE-test的其余方式(公网、内网、其他终端节点等)来请求桶bucket-test均会被拒绝。
若用户A不是桶bucket-test的owner,则配置上述策略后,除用户A外,桶bucket-test的owner也能通过该终端节点VPCE-test的服务器来访问桶bucket-test,其他用户通过任何方式来请求桶bucket-test均会被拒绝。若您需要限制桶owner的权限需要额外配置禁止策略。
设置上述桶策略后,被授权的用户A可以正常通过SDK或API进行上传下载操作。如果希望在控制台或客户端工具上进行上传下载,还需要在IAM权限中额外配置zos:AllMyBuckets:List和zos:Bucket:List权限,否则登录控制台和客户端工具时会报错,无法看到桶和桶内对象。