接入點(Access Point)用于簡化大規模共享數據集的數據訪問權限控制管理的場景。本文介紹如何創建接入點。
前提條件
Bucket所屬地域必須為:華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北 3(張家口)、華北5(呼和浩特)、華北6(烏蘭察布)、華南1(深圳)、華南2(河源)、華南3(廣州)、西南1(成都)、中國香港、美國(硅谷)、美國(弗吉尼亞)、日本(東京)、韓國(首爾)、新加坡、馬來西亞(吉隆坡)、印度尼西亞(雅加達)、菲律賓(馬尼拉)、泰國(曼谷)、德國(法蘭克福)、英國(倫敦)。
如果希望使用網絡來源為VPC的接入點,您需要提前創建VPC。具體操作,請參見創建和管理專有網絡。
RAM用戶必須擁有以下權限:
oss:CreateAccessPoint
、oss:GetAccessPoint
、oss:DeleteAccessPoint
、oss:ListAccessPoints
、oss:PutAccessPointPolicy
、oss:GetAccessPointPolicy
、oss:DeleteAccessPointPolicy
、oss:PutBucketPolicy
、oss:GetBucketPolicy
、oss: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控制臺
配置接入點基礎信息。
登錄OSS管理控制臺。
在左側導航欄,單擊接入點列表。
在接入點列表頁面,單擊創建接入點。
在創建接入點對話框,按說明完成以下配置項,然后單擊下一步。
配置項
說明
示例值
接入點名稱
為接入點命名。接入點命名規范說明如下:
接入點名稱在當前阿里云賬號單個地域內唯一。
不允許以-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
配置接入點策略。
重要在接入點內配置的訪問策略僅作用于從該接入點發出的請求,接入點配置的訪問策略對當前Bucket現有的其他訪問方式不造成任何影響。
按圖形策略添加接入點策略
在接入點策略對話框,按說明完成以下配置項。
配置項
說明
示例值
接入點策略
選中按圖形策略添加。
不涉及
接入點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)
授權操作
您可以通過簡單設置和高級設置兩種方式進行授權操作。
簡單設置
選中此項后,您可以結合實際場景按照如下說明配置相應的訪問權限。將鼠標懸停在每一種訪問權限右側對應的,可獲取各訪問權限對應的Action列表。
只讀(不包含ListObject操作):對相關資源擁有查看和下載的權限。
只讀(包含ListObject操作):對相關資源擁有查看、列舉和下載的權限。
讀/寫:對相關資源有讀和寫權限。
完全控制:對相關資源有讀、寫、刪除等所有操作權限。
拒絕訪問:拒絕對相關資源的所有操作。
重要如果針對某用戶同時配置了多條Bucket Policy規則,則該用戶所擁有的權限是所有Policy規則的疊加。當這些Bucket Policy中包含拒絕訪問權限時,遵循拒絕訪問權限優先原則。例如針對某用戶第一次設置了只讀權限,第二次設置了讀/寫權限,則該用戶最終的權限為讀/寫。如果第三次設置了拒絕訪問權限,則該用戶最終的權限為拒絕訪問。
只讀、讀/寫、完全控制對應的授權效力為Allow,拒絕訪問對應的授權效力為Deny。
高級設置
選中此項后,您需要根據以下說明完成相關配置。
效力:包含允許(Allow)和拒絕(Deny)兩種授權效力。
操作:支持配置所有OSS支持的Action。關于Action分類的更多信息,請參見RAM Policy。
部門<1~3>:簡單設置下的只讀(包含ListObject操作)
部門<4>:簡單設置下的讀/寫
部門<5~10>:簡單設置下的讀/寫
單擊提交。
接入點創建完成預計需要10分鐘左右。
接入點創建后,接入點列表頁面將顯示OSS自動創建的接入點別名。
不支持修改、刪除或者禁用接入點別名。
按語法策略添加接入點策略
在接入點策略對話框,接入點策略選中按語法策略添加。
在語法策略輸入框中,輸入以下授權策略。
{ "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/*" ] } } } ] }
{ "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": [ "*" ] } } } ] }
{ "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/*" ] } } } ] }
單擊提交。
接入點創建完成預計需要10分鐘左右。
接入點創建后,接入點列表頁面將顯示OSS自動創建的接入點別名。
不支持修改、刪除或者禁用接入點別名。
通過Bucket Policy為接入點委派權限。
在接入點列表頁面,單擊已創建的接入點。
在接入點配置管理頁簽,單擊接入點權限委派。
在接入點權限委派對話框,通過Bucket Policy將Bucket的訪問策略委派給接入點。
委派類型
說明
示例值
oss:DataAccessPointArn
為指定的接入點委派權限。委派后,僅指定的接入點生效。
oss:DataAccessPointAccount
oss:AccessPointNetworkOrigin
為互聯網或專有網絡VPC下的接入點委派權限。委派后,僅指定網絡的接入點生效。
說明互聯網支持外網和專有云網絡VPC。選擇互聯網接入點后,專有網絡接入點也會生效。
oss:DataAccessPointAccount
為當前賬號下的所有接入點委派權限。委派后,賬號下所有的接入點生效。
單擊生成Policy。
使用REST API
如果您的程序自定義要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。
關于創建接入點的API接口說明,請參見CreateAccessPoint。
關于配置接入點策略的API接口說明,請參見PutAccessPointPolicy。
關于通過Bucket Policy為接入點委派權限的API接口說明,請參見PutBucketPolicy。
后續步驟
創建接入點后,您需要使用接入點別名進行訪問。具體步驟,請參見使用接入點。
常見問題
接入點的權限設置支持IP白名單么?
支持。您可以按語法策略添加接入點策略,添加"IpAddress": {"acs:SourceIp": ["xxx"]}
。