全部產品
Search
文件中心

Object Storage Service:建立存取點

更新時間:Nov 15, 2024

存取點(Access Point)用於簡化大規模共用資料集的資料存取權限控制管理的情境。本文介紹如何建立存取點。

前提條件

  • Bucket所屬地區必須為:華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北 3(張家口)、華北5(呼和浩特)、華北6(烏蘭察布)、華南1(深圳)、華南2(河源)、華南3(廣州)、西南1(成都)、中國香港、美國(矽谷)、美國(維吉尼亞)、日本(東京)、韓國(首爾)、新加坡、馬來西亞(吉隆坡)、印尼(雅加達)、菲律賓(馬尼拉)、泰國(曼穀)、德國(法蘭克福)、英國(倫敦)

  • 如果希望使用網路來源為VPC的存取點,您需要提前建立VPC。具體操作,請參見建立和管理專用網路

  • RAM使用者必須擁有以下許可權:oss:CreateAccessPointoss:GetAccessPointoss:DeleteAccessPointoss:ListAccessPointsoss:PutAccessPointPolicyoss:GetAccessPointPolicyoss:DeleteAccessPointPolicyoss:PutBucketPolicyoss:GetBucketPolicyoss:DeleteBucketPolicy。具體操作,請參見為RAM使用者授權自訂的權限原則

情境說明

A作為公司的阿里雲帳號owner(其賬戶UID為137918634953xxxx),其公司需針對統一採集的資料進行巨量資料分析與管理,統一採集的資料存放在儲存空間examplebucket中。examplebucket的使用方涉及10個不同的業務部門,其中:

  • 部門<1~3>僅允許對examplebucket/dir1/下的檔案進行讀取,不可寫入,且允許通過互連網進行訪問。

  • 部門<4>僅允許對examplebucket下的目錄進行讀取和寫入,且允許通過互連網進行訪問。

  • 部門<5~10>僅對examplebucket/dir2/下的檔案進行讀取和寫入,且限制只能通過指定的VPC ID進行訪問。

針對以上情境樣本,該公司的阿里雲帳號owner可以通過存取點功能完成以上需求。

該公司的阿里雲帳號owner可以為部門<1~3>、部門<4>以及部門<5~10>分別建立一個存取點,然後為存取點委派許可權。許可權委派完成後,不同部門可以通過不同的存取點訪問OSS資源。

操作步驟

使用OSS控制台

  1. 配置存取點基礎資訊。

    1. 登入OSS管理主控台

    2. 在左側導覽列,單擊存取點列表

    3. 存取點列表頁面,單擊建立存取點

    4. 建立存取點對話方塊,按說明完成以下配置項,然後單擊下一步

      配置項

      說明

      樣本值

      存取點名稱

      為存取點命名。存取點命名規範說明如下:

      • 存取點名稱在當前阿里雲帳號單個地區內唯一。

      • 不允許以-ossalias結尾。

      • 只能包括小寫字母、數字和短劃線(-),不能以虛線開頭或結尾。

      • 命名長度為3~19個字元。

      • 部門<1~3>:ap-01

      • 部門<4>:ap-02

      • 部門<5~10>:ap-03

      Bucket

      下拉選擇需要使用存取點的Bucket。單個Bucket支援建立100個存取點。

      examplebucket

      網路來源

      選擇存取點的網路來源。

      • 互連網:同時支援通過外網或內網訪問Bucket內的資源。

      • VPC:限制僅支援通過指定的VPC ID訪問Bucket內的資源。選擇該選項後,您需要手動輸入VPC ID

        重要
        • 通過存取點限制VPC來源時,需確保選擇的VPC地區與OSS支援的網關終端節點地區相匹配,否則會導致鑒權請求無法關聯至對應的VPC,進而引發鑒權失敗。關於OSS支援的網關終端節點地區,請參見OSS支援的網關終端節點地區

        • 如果存取點的網路來源設定為VPC,則不支援通過控制台訪問存取點關聯的Bucket內的資源,您可以通過SDK以內網Endpoint的形式進行訪問。

      • 部門<1~3>:互連網

      • 部門<4>:互連網

      • 部門<5~10>:VPC

  2. 配置存取點策略。

    重要

    在存取點內配置的存取原則僅作用於從該存取點發出的請求,存取點配置的存取原則對當前Bucket現有的其他訪問方式不造成任何影響。

    按圖形策略添加存取點策略

    1. 存取點策略對話方塊,按說明完成以下配置項。

      配置項

      說明

      樣本值

      存取點策略

      選中按圖形策略添加

      不涉及

      存取點ARN

      顯示存取點ARN,格式為acs:oss:region名稱:帳號UID:accesspoint/存取點名稱/object/*

      acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-01/object/*

      授權資源

      授權整個Bucket或Bucket內的部分資源供存取點訪問。

      • 整個Bucket:授權策略針對整個Bucket生效。

      • 指定資源:授權策略只針對指定的資源生效。您可以配置多條針對指定資源的授權策略。

      • 部門<1~3>:指定資源

      • 部門<4>:整個Bucket

      • 部門<5~10>:指定資源

      資源路徑

      • 選擇授權資源整個Bucket時,資源路徑格式為accesspoint/存取點名稱/*

      • 選擇授權資源指定資源時,按以下說明填寫資源路徑。

        • 針對目錄層級授權

          授權訪問目錄下的所有子目錄和檔案時,需在目錄結尾處加上星號(*)。例如授權訪問abc目錄下的所有子目錄和檔案,則填寫為abc/*。

        • 針對指定檔案授權

          授權訪問目錄下的指定檔案時,需填寫不包含Bucket名稱在內的檔案的完整路徑,例如授權訪問abc目錄下的myphoto.png檔案,則填寫為abc/myphoto.png。

      • 部門<1~3>:accesspoint/ap-01/object/dir1/*

      • 部門<4>:accesspoint/ap-02/*

      • 部門<5~10>:accesspoint/ap-03/object/dir2/*

      授權使用者

      僅支援為當前帳號下的RAM使用者授權訪問指定資源。

      完成RAM授權時,您需要選中子帳號,然後從下拉式功能表中選擇目標RAM使用者。如果需要授權的RAM使用者較多時,建議直接在搜尋方塊輸入RAM使用者名稱稱關鍵字進行模糊比對。

        重要

        從下拉式功能表中選擇目標RAM使用者時,要求您當前的帳號必須是阿里雲帳號,或擁有此Bucket系統管理權限及RAM控制台ListUsers許可權的RAM使用者,否則無法查看當前帳號的RAM使用者列表。為RAM使用者授予ListUsers許可權的具體操作,請參見為RAM使用者授權

      • 部門<1~3>:子帳號(UID為26571698800555xxxx)

      • 部門<4>:子帳號(UID為25770968794578xxxx)

      • 部門<5~10>:子帳號(UID為26806658794579xxxx)

      授權操作

      您可以通過簡單設定進階設定兩種方式進行授權操作。

      • 簡單設定

        選中此項後,您可以結合實際情境按照如下說明配置相應的存取權限。將滑鼠移至上方在每一種存取權限右側對應的mark,可擷取各存取權限對應的Action列表。

        • 唯讀(不包含ListObject操作):對相關資源擁有查看和下載的許可權。

        • 唯讀(包含ListObject操作):對相關資源擁有查看、列舉和下載的許可權。

        • 讀/寫:對相關資源有讀和寫入權限。

        • 完全控制:對相關資源有讀、寫、刪除等所有操作許可權。

        • 拒絕訪問:拒絕對相關資源的所有操作。

        重要

        如果針對某使用者同時配置了多條Bucket Policy規則,則該使用者所擁有的許可權是所有Policy規則的疊加。當這些Bucket Policy中包含拒絕存取權限時,遵循拒絕存取權限優先原則。例如針對某使用者第一次設定了唯讀許可權,第二次設定了讀/寫入權限,則該使用者最終的許可權為讀/寫。如果第三次設定了拒絕存取權限,則該使用者最終的許可權為拒絕訪問。

        唯讀、讀/寫、完全控制對應的授權效力為Allow,拒絕訪問對應的授權效力為Deny。

      • 進階設定

        選中此項後,您需要根據以下說明完成相關配置。

        • 效力:包含允許(Allow)和拒絕(Deny)兩種授權效力。

        • 操作:支援配置所有OSS支援的Action。關於Action分類的更多資訊,請參見RAM Policy

      • 部門<1~3>:簡單設定下的唯讀(包含ListObject操作)

      • 部門<4>:簡單設定下的讀/寫

      • 部門<5~10>:簡單設定下的讀/寫

    2. 單擊提交

      • 存取點建立完成預計需要10分鐘左右。

      • 存取點建立後,存取點列表頁面將顯示OSS自動建立的存取點別名。

      • 不支援修改、刪除或者禁用存取點別名。

    按文法策略添加存取點策略

    1. 存取點策略對話方塊,存取點策略選中按文法策略添加

    2. 在文法策略輸入框中,輸入以下授權策略。

      部門<1~3>存取點策略

      {
          "Version": "1",
          "Statement": [{
              "Effect": "Allow",
              "Action": [    
                  "oss:GetObject",    
                  "oss:GetObjectAcl",
                  "oss:ListObjects",
                  "oss:RestoreObject",
                  "oss:ListObjectVersions",
                  "oss:GetObjectVersion",
                  "oss:GetObjectVersionAcl",
                  "oss:RestoreObjectVersion"    
              ],    
              "Principal": [    
                  "26571698800555xxxx"    
              ],    
              "Resource": [    
                  "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-01/object/dir1/*"    
              ]    
          },{     
              "Effect": "Allow",    
              "Action": [    
                  "oss:ListObjects",
                  "oss:GetObject"    
              ],    
              "Principal": [    
                  "26571698800555xxxx"    
              ],    
              "Resource": [    
                  "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-01"    
          ],
              "Condition": {    
                  "StringLike": {    
                      "oss:Prefix": [            
                          "dir1/*"    
                      ]    
                  }    
              }    
            }    
          ]    
      }

      部門<4>存取點策略

      {
          "Version": "1",
          "Statement": [{
              "Effect": "Allow",
              "Action": [    
                  "oss:GetObject",
                  "oss:PutObject",    
                  "oss:GetObjectAcl",
                  "oss:PutObjectAcl",
                  "oss:ListObjects",
                  "oss:AbortMultipartUpload",
                  "oss:ListParts",
                  "oss:RestoreObject",
                  "oss:ListObjectVersions",
                  "oss:GetObjectVersion",
                  "oss:GetObjectVersionAcl",
                  "oss:RestoreObjectVersion"    
              ],    
              "Principal": [    
                  "25770968794578xxxx"    
              ],    
              "Resource": [    
                  "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-02/object/*"    
              ]    
          },{     
              "Effect": "Allow",    
              "Action": [    
                  "oss:ListObjects",
                  "oss:GetObject"    
              ],    
              "Principal": [    
                  "25770968794578xxxx"    
              ],    
              "Resource": [    
                  "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-02"    
          ],
              "Condition": {    
                  "StringLike": {    
                      "oss:Prefix": [            
                          "*"    
                      ]    
                  }    
              }    
            }    
          ]    
      }

      部門<5~10>存取點策略

      {
          "Version": "1",
          "Statement": [{
              "Effect": "Allow",
              "Action": [    
                  "oss:GetObject",
                  "oss:PutObject",    
                  "oss:GetObjectAcl",
                  "oss:PutObjectAcl",
                  "oss:ListObjects",
                  "oss:AbortMultipartUpload",
                  "oss:ListParts",
                  "oss:RestoreObject",
                  "oss:ListObjectVersions",
                  "oss:GetObjectVersion",
                  "oss:GetObjectVersionAcl",
                  "oss:RestoreObjectVersion"    
              ],    
              "Principal": [    
                  "26806658794579xxxx"    
              ],    
              "Resource": [    
                  "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-03/object/dir2/*"    
              ]    
          },{     
              "Effect": "Allow",    
              "Action": [    
                  "oss:ListObjects",
                  "oss:GetObject"    
              ],    
              "Principal": [    
                  "26806658794579xxxx"    
              ],    
              "Resource": [    
                  "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-03"    
          ],
              "Condition": {    
                  "StringLike": {    
                      "oss:Prefix": [            
                          "dir2/*"    
                      ]    
                  }    
              }    
            }    
          ]    
      }
    3. 單擊提交

      • 存取點建立完成預計需要10分鐘左右。

      • 存取點建立後,存取點列表頁面將顯示OSS自動建立的存取點別名。

      • 不支援修改、刪除或者禁用存取點別名。

  3. 通過Bucket Policy為存取點委派許可權。

    1. 存取點列表頁面,單擊已建立的存取點。

    2. 存取點組態管理頁簽,單擊存取點許可權委派

    3. 存取點許可權委派對話方塊,通過Bucket Policy將Bucket的存取原則委派給存取點。

      委派類型

      說明

      樣本值

      oss:DataAccessPointArn

      為指定的存取點委派許可權。委派後,僅指定的存取點生效。

      oss:DataAccessPointAccount

      oss:AccessPointNetworkOrigin

      為互連網或Virtual Private Cloud下的存取點委派許可權。委派後,僅指定網路的存取點生效。

      說明

      互連網支援外網和專有雲網路VPC。選擇互連網存取點後,專用網路存取點也會生效。

      oss:DataAccessPointAccount

      為當前帳號下的所有存取點委派許可權。委派後,帳號下所有的存取點生效。

    4. 單擊產生Policy

使用REST API

如果您的程式自訂要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。

後續步驟

建立存取點後,您需要使用存取點別名進行訪問。具體步驟,請參見使用存取點

常見問題

存取點的使用權限設定支援IP白名單嗎?

支援。您可以按文法策略添加存取點策略,添加"IpAddress": {"acs:SourceIp": ["xxx"]}