全部產品
Search
文件中心

Object Storage Service:基於VPC Policy和Bucket Policy實現雙重存取控制

更新時間:Jan 15, 2026

結合VPC Policy和Bucket Policy配置雙重存取控制機制,從網路來源和資源兩個層面實現對OSS的存取控制,確保雲上資料僅在安全的網路環境內被授權訪問,有效防範未授權訪問和資料泄露風險。

方案介紹

相比單純依賴Bucket Policy進行目的端驗證,雙重控制方案通過VPC Policy和Bucket Policy組合形成源端授權+目的端驗證的多層安全防護體系,顯著提升資料訪問安全性。VPC Policy在網路源端預先限制可訪問的Bucket範圍,實現細粒度許可權管理和風險隔離;Bucket Policy在儲存目的端驗證訪問來源,確保僅來自授權VPC的請求可以訪問資源。

  • 允許訪問:在授權VPC內訪問授權的Bucket資源時,雙端策略同時允許存取。

  • 拒絕訪問

    • VPC Policy拒絕:在授權VPC內嘗試訪問未被VPC Policy授權的Bucket資源。

    • Bucket Policy拒絕:在非授權VPC內嘗試訪問Bucket資源。

image

方案實現

以下通過具體情境示範雙重存取控制的配置過程。某企業使用者(UID為174649585760xxxx)在OSS中建立了名為example-bucket的儲存空間用於存放重要業務資料,同時在ID為vpc-t4nlw426y44rd3iq4xxxx的Virtual Private Cloud內運行多台ECS執行個體。為遵循最小許可權原則,使用RAM使用者example-user(UID為20655703638807****)的AccessKey進行業務訪問。需要實現以下存取控制目標:

  • VPC源端控制:限制VPC僅允許訪問OSS指定資源example-bucket

  • Bucket目的端控制:拒絕所有非當前VPC的OSS訪問請求。

步驟一:配置VPC Policy

為ID為vpc-t4nlw426y44rd3iq4xxxx的Virtual Private Cloud建立終端節點策略,限制其僅能訪問OSS中example-bucket下的資源。

  1. 前往Virtual Private Cloud控制台,在左側功能表列單擊終端節點

  2. 單擊建立終端節點,按以下說明配置終端節點。

    首次使用需開通私網串連服務
    • 所屬地區:選擇VPC所在地區,如新加坡

    • 節點名稱:輸入終端節點名稱。

    • 終端節點類型:選擇網關終端節點

    • 終端節點服務:選擇阿里雲服務,在服務列表中選擇OSS終端節點服務(服務名稱以oss結尾的條目)。

    • 專用網路:選擇目標專用網路。

    • 路由表:選擇目標路由表。

    • 終端節點策略:在編輯器內輸入以下策略。

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "oss:*",
            "Principal": [
              "20655703638807****"
            ],
            "Resource": [
              "acs:oss:*:*:example-bucket",
              "acs:oss:*:*:example-bucket/*"
            ]
          }
        ]
      }
  3. 確認配置無誤後,單擊確定建立

步驟二:配置Bucket Policy

配置Bucket Policy,拒絕ID不為vpc-t4nlw426y44rd3iq4xxxx的VPC網路請求訪問OSS資源。

  1. 前往Bucket列表,單擊目標Bucket。

  2. 在Bucket左側功能表列單擊許可權控制 > Bucket授權策略

  3. 選擇按文法策略添加,然後單擊編輯,在編輯器內輸入以下策略。

    {
      "Statement": [
        {
          "Action": [
            "oss:*"
          ],
          "Effect": "Deny",
          "Principal": [
            "20655703638807****"
          ],
          "Resource": "acs:oss:*:*:*",
          "Condition": {
            "StringNotEquals": {
              "acs:SourceVpc": [
                "vpc-t4nlw426y44rd3iq4xxxx"
              ]
            }
          }
        }
      ],
      "Version": "1"
    }
  4. 確認授權策略無誤後,單擊儲存,根據頁面提示儲存授權策略。

步驟三:驗證存取控制效果

以下通過ossutil命令列工具驗證雙重存取控制的實際效果。使用命令前需先下載命令列工具ossutil 2.0並使用RAM使用者的AccessKey和內網訪問地址(如oss-ap-southeast-1-internal.aliyuncs.com)進行配置。

驗證允許訪問情境

在授權VPC(vpc-t4nlw426y44rd3iq4xxxx)內的ECS執行個體上,使用授權使用者(UID為20655703638807****)的AccessKey訪問example-bucket,如列舉Bucket中的檔案。

ossutil ls oss://example-bucket/

訪問成功,說明雙端策略均允許存取。

驗證VPC Policy拒絕情境

在同一VPC內嘗試訪問未被VPC Policy授權的其他Bucket(如other-bucket)。

ossutil ls oss://other-bucket/

訪問被拒絕,提示Access denied by VPC endpoint policy..,說明VPC Policy在源端成功限制了可訪問的Bucket範圍。

驗證Bucket Policy拒絕情境

在非授權VPC或公網環境中,使用同一使用者的AccessKey訪問example-bucket

ossutil ls oss://example-bucket/

訪問被拒絕,提示Access denied by bucket policy..,說明Bucket Policy在目的端成功驗證了VPC來源。