最近更新时间:2023.08.14 11:15:48
首次发布时间:2023.07.14 19:44:36
本文介绍如何配置双端固定,以及双端固定的场景示例。
仅使用 VPC 终端节点发出请求时,TOS 才能获取到 SourceVpc 这一鉴权上下文信息。因此单独使用 SourceVpc 这个 condition 来实现单端固定,不会生效。
注意
VPC 终端节点功能处于邀测状态,如您需要使用该功能,请联系客户经理。
使用可视化视图配置桶策略时,您需要在条件(可选)区域设置 SourceVpc 和 rolename 键,具体操作,请参见自定义创建桶策略(可视化视图)。
使用 JSON 视图配置桶策略时,您需要在 Condition
参数下设置 tos:sourcevpc
,具体操作,请参见自定义创建桶策略(JSON 视图)。
场景描述: 允许 VPC1 内的服务器使用任意账号对 tos-example
存储桶执行任意操作。
VPC 终端节点策略配置如下:
{ "Statement": [ { "Effect": "Allow", "Principal": [ "*" ], "Action": "*", "Resource": [ "trn:tos:::tos-example", "trn:tos:::tos-example/*" ] } ] }
场景描述:只允许 VPC1 内的服务器使用 100000
账号下的子用户 user1
对 tos-example
存储桶执行 GET
类操作。
VPC 终端节点策略配置如下:
{ "Statement": [ { "Effect": "Allow", "Principal": [ "trn:iam::100000:user/user1" ], "Action": "tos:Get*", "Resource": [ "trn:tos:::tos-example", "trn:tos:::tos-example/*" ] } ] }
场景描述:允许 VPC1 内的服务器使用任意账号对 tos-example
存储桶执行任意操作,tos-example
存储桶允许来自 VPC1 的任意请求。
VPC 终端节点策略配置如下:
{ "Statement": [ { "Effect": "Allow", "Principal": [ "*" ], "Action": ["*"], "Resource": [ "trn:tos:::tos-example", "trn:tos:::tos-example/*" ] } ] }
桶策略配置如下:
设置 Action
为 *
,并在 Condition
参数下设置条件运算符为StringEquals
,然后设置 tos:sourcevpc
为 vpc-pedgr4xdnklc4acvz69o****
,表示允许来自vpc-pedgr4xdnklc4acvz69o****
VPC 的请求访问存储桶。
{ "Statement": [ { "Sid": "id-11", "Effect": "Allow", "Principal": [ "*" ], "Action": [ "*" ], "Resource": [ "trn:tos:::tos-example", "trn:tos:::tos-example/*" ], "Condition": { "StringEquals": { "tos:sourcevpc": [ "vpc-pedgr4xdnklc4acvz69o****" ] } } } ] }
场景描述: 只允许 VPC1 内的服务器使用任意账号对 tos-example
存储桶执行上传、下载对象操作,tos-example
存储桶允许来自 VPC1 的请求执行上传、下载对象操作。
VPC 终端节点策略配置如下:
{ "Statement": [ { "Effect": "Allow", "Principal": [ "*" ], "Action": ["tos:PutObject","tos:GetObject"], "Resource": [ "trn:tos:::tos-example/*" ] } ] }
桶策略配置如下:
设置 Action
为 PutObject
和 GetObject
,并在 Condition
参数下设置条件运算符为StringEquals
,然后设置 tos:sourcevpc
为 vpc-pedgr4xdnklc4acvz69o****
,表示只允许来自 vpc-pedgr4xdnklc4acvz69o****
VPC 的请求在存储桶执行上传、下载对象操作。
{ "Statement": [ { "Sid": "id-11", "Effect": "Allow", "Principal": [ "*" ], "Action": [ "tos:PutObject", "tos:GetObject" ], "Resource": [ "trn:tos:::tos-example/*" ], "Condition": { "StringEquals": { "tos:sourcevpc": [ "vpc-pedgr4xdnklc4acvz69o****" ] } } } ] }
当同时设置了 VPC1 的终端节点策略与 tos-example
桶策略后,由于双端固定的限制,其他云服务以及 TOS 内部跨区域复制和桶清单请求可能无法访问 tos-example
存储桶。针对这种情况,您可以指定 rolename
使得其他云服务和 TOS 内部请求能够正常访问存储桶 tos-example
。
场景描述:只允许 VPC1 内的服务器使用任意账号对 tos-example
桶执行上传、下载对象操作,tos-example
存储桶允许来自 VPC1 的请求执行上传、下载对象操作。同时允许来自 TOS 内部跨区域复制请求执行上传、下载对象操作。
VPC 终端节点策略配置如下:
{ "Statement": [ { "Effect": "Allow", "Principal": [ "*" ], "Action": ["tos:PutObject","tos:GetObject"], "Resource": [ "trn:tos:::tos-example/*" ] } ] }
桶策略配置如下:
设置 Action
为 PutObject
和 GetObject
,并在 Condition
参数下设置条件运算符为StringEquals
,然后设置 tos:sourcevpc
为 vpc-pedgr4xdnklc4acvz69o****
,表示允许来自 vpc-pedgr4xdnklc4acvz69o****
VPC 的请求在存储桶执行上传、下载对象操作。
设置 Action
为 PutObject
和 GetObject
,并在 Condition
参数下设置条件运算符为StringEquals
,然后设置 tos:rolename
为 ServiceRoleforReplicationAccessTOS
,表示允许来自跨区域复制的请求在存储桶执行上传、下载对象操作。
{ "Statement": [ { "Sid": "id-11", "Effect": "Allow", "Principal": [ "*" ], "Action": [ "tos:PutObject", "tos:GetObject" ], "Resource": [ "trn:tos:::tos-example/*" ], "Condition": { "StringEquals": { "tos:sourcevpc": [ "vpc-pedgr4xdnklc4acvz69o****" ] } } }, { "Sid": "id-12", "Effect": "Allow", "Principal": [ "*" ], "Action": [ "tos:PutObject", "tos:GetObject" ], "Resource": [ "trn:tos:::tos-example/*" ], "Condition": { "StringEquals": { "tos:rolename": [ "ServiceRoleforReplicationAccessTOS" ] } } } ] }
除此之外,桶策略也可以配置为拒绝除指定 VPC1 或指定 rolename 外的访问。但此种配置会导致无法通过控制台访问该存储桶。
桶策略配置如下:
设置 Action
为 PutObject
和 GetObject
,并在 Condition
参数下设置条件运算符为 StringNotEquals
,然后设置 tos:sourcevpc
为 vpc-pedgr4xdnklc4acvz69o****
,设置 tos:rolename
为 ServiceRoleforReplicationAccessTOS
。表示拒绝除vpc-pedgr4xdnklc4acvz69o****
VPC 和跨区域复制外的请求在存储桶执行上传、下载对象操作。
{ "Statement": [ { "Sid": "id-11", "Effect": "Deny", "Principal": [ "*" ], "Action": [ "tos:PutObject", "tos:GetObject" ], "Resource": [ "trn:tos:::tos-example/*" ], "Condition": { "StringNotEquals": { "tos:sourcevpc": [ "vpc-pedgr4xdnklc4acvz69o****" ], "tos:rolename": [ "ServiceRoleforReplicationAccessTOS" ] } } } ] }
TOS 内部请求和其他云服务对应 rolename
如下:
请求来源 | rolename |
---|---|
跨区域复制 | ServiceRoleforReplicationAccessTOS |
桶清单 | TosArchiveTOSInventory |
其他云服务 | 服务关联角色名称。 说明 为其他云服务设置 |