為執行個體配置 Instance Policy,可以通過限制訪問來源 IP、訪問來源網路和 TLS 版本等策略,保護執行個體中的資源安全。
工作原理
Instance Policy 是附加在執行個體上的授權策略,採用基於資源的授權模式,定義哪些主體(Principal)在滿足哪些條件(Condition)時,可以對哪些資源(Resource)執行哪些操作(Action)。關於授權策略的文法和元素,請參見授權文法與元素。
收到訪問請求時,系統會綜合評估執行個體上配置的所有授權策略。許可權判定遵循顯式拒絕優先原則:Deny 規則的優先順序高於所有 Allow 策略,命中任何一條 Deny 規則都會立即阻止請求執行。
使用限制
單個執行個體添加的授權條件總大小不能超過 4 KB。
配置方式
控制台
登入Table Store控制台,在頁面上方切換地區。
單擊目標執行個體名稱或執行個體管理,然後單擊安全性原則頁簽。
單擊新增授權,在可視化策略展示頁簽配置策略。選擇效果(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 進行操作。
常見情境與策略樣本
Table Store支援從 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 版本訪問Table Store,增強訪問安全性。
選擇效果(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"]
}
}
}
]
}