为实例配置 Instance Policy,可以通过限制访问来源 IP、访问来源网络和 TLS 版本等策略,保护实例中的资源安全。
工作原理
Instance Policy 是附加在实例上的授权策略,采用基于资源的授权模式,定义哪些主体(Principal)在满足哪些条件(Condition)时,可以对哪些资源(Resource)执行哪些操作(Action)。关于授权策略的语法和元素,请参见授权语法与元素。
收到访问请求时,系统会综合评估实例上配置的所有授权策略。权限判定遵循显式拒绝优先原则:Deny 规则的优先级高于所有 Allow 策略,命中任何一条 Deny 规则都会立即阻止请求执行。
使用限制
单个实例添加的授权条件总大小不能超过 4 KB。
配置方式
控制台
登录表格存储控制台,在页面上方切换地域。
单击目标实例名称或实例管理,然后单击安全策略页签。
单击新增授权,在可视化策略展示页签配置策略。选择效果(Effect)为允许或拒绝,并配置策略生效的条件(Condition)。
说明可切换到脚本策略展示页签,查看 JSON 格式的脚本策略。
参数
说明
条件键
条件键值。取值范围如下:
acs:SourceVpc:根据来源 VPC 控制访问实例的客户端所处 VPC。ots:TLSVersion:根据来源使用的 TLS 版本控制访问实例的客户端。acs:SourceIp:根据来源 IP 控制访问实例的客户端。ots:AccessId:根据来源的用户 AccessKey ID(AK)控制访问实例的客户端。acs:SecureTransport:根据请求是否通过 HTTPS 安全传输控制访问实例的客户端。
重要acs:SourceIp条件关键字仅匹配请求的源 IP 地址,不区分该 IP 来自公网还是 VPC 内网。仅使用acs:SourceIp限制访问时,其他 VPC 中恰好使用相同 IP 地址段的请求也会被匹配放行,存在越权访问风险。因此配置acs:SourceIp时必须同时配置acs:SourceVpc,明确请求的网络来源。运算符
条件键值的运算符。更多信息,请参见条件运算符。
条件值
根据选择的条件键设置相应的条件值。
acs:SourceVpc:填写有效的 VPC ID。仅允许公网访问的场景,请填写vpc-*,配合StringNotLike运算符使用。如果需要填写多个 VPC,请按行输入,一行输入一个 VPC ID。
ots:TLSVersion:选择所需 TLS 版本,取值范围为 TLSv1、TLSv1.1、TLSv1.2 和 TLSv1.3。acs:SourceIp:填写 IP 地址或者 IP 网段。如果需要填写多个 IP 地址,请按行输入,一行输入一个 IP 地址或 IP 网段。
ots:AccessId:填写用户 AccessKey ID(AK)。如果有多个 AccessId,请按行输入,一行输入一个 AccessId。
acs:SecureTransport:选择条件值为 true(仅允许 HTTPS 访问)或 false(仅允许 HTTP 访问)。
单击确定。
为实例添加授权策略后,可以在完整脚本策略展示页签,查看实例的完整授权策略。
API
通过UpdateInstancePolicy、DeleteInstancePolicy和CheckInstancePolicy接口对 Instance Policy 进行操作。
常见场景与策略示例
表格存储支持从 TLS 版本、访问来源 IP 和访问来源网络(VPC)等维度限制实例访问。
仅允许指定公网 IP 地址访问
通过配置实例策略,限制只允许指定的公网 IP 地址访问实例。配置acs:SourceIp时必须同时配置acs:SourceVpc以明确网络来源。因此,限制公网 IP 访问时,需将acs:SourceVpc配置为非 VPC 来源。
选择效果(Effect)为允许,添加以下两个条件:
条件键 | 运算符 | 条件值 |
|
| 允许访问的公网 IP 地址或网段。 |
|
|
|
以下示例用于仅允许公网 IP 地址203.0.113.5访问 myinstance 实例。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"IpAddress": {
"acs:SourceIp": ["203.0.113.5"]
},
"StringNotLike": {
"acs:SourceVpc": ["vpc-*"]
}
}
}
]
}仅允许指定 VPC 访问
通过配置实例策略,限制只允许通过指定 VPC 访问实例。
选择效果(Effect)为允许,添加以下条件:
条件键 | 运算符 | 条件值 |
|
| 允许访问的 VPC ID。 |
以下示例用于仅允许通过 VPC(ID 为vpc-bp1xxxxxxxxxxxxxxxx)访问 myinstance 实例。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
}
]
}仅允许指定 VPC 内的指定 IP 网段访问
通过配置实例策略,限制只允许指定 VPC 内的指定 IP 网段访问实例。
选择效果(Effect)为允许,添加以下两个条件:
条件键 | 运算符 | 条件值 |
|
| 允许访问的 IP 网段。 |
|
| 指定的 VPC ID,表示将请求来源限定为该 VPC。 |
以下示例用于仅允许 VPC(ID 为vpc-bp1xxxxxxxxxxxxxxxx)内 IP 网段192.168.0.0/16的请求访问 myinstance 实例。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"IpAddress": {
"acs:SourceIp": ["192.168.0.0/16"]
},
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
}
]
}限制访问实例的 TLS 版本
通过配置实例策略,限制只允许使用指定的 TLS 版本访问表格存储,增强访问安全性。
选择效果(Effect)为允许,添加以下条件:
条件键 | 运算符 | 条件值 |
|
|
|
以下示例用于限制请求必须通过 TLSv1.2 和 TLSv1.3 版本访问 myinstance 实例。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"ots:TLSVersion": ["TLSv1.2", "TLSv1.3"]
}
}
}
]
}