接入点(Access Point)用于简化大规模共享数据集的数据访问权限控制管理的场景。本文介绍如何创建接入点。
前提条件
如果希望使用网络来源为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自动创建的接入点别名。
不支持修改、删除或者禁用接入点别名。
在接入点策略对话框,接入点策略选中按语法策略添加。
在语法策略输入框中,输入以下授权策略。
部门<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/*" ] } } } ] }
单击提交。
接入点创建完成预计需要10分钟左右。
接入点创建后,接入点列表页面将显示OSS自动创建的接入点别名。
不支持修改、删除或者禁用接入点别名。
通过Bucket Policy为接入点委派权限。
在接入点列表页面,单击已创建的接入点。
在接入点配置管理页签,单击接入点权限委派。
在接入点权限委派对话框,通过Bucket Policy将Bucket的访问策略委派给接入点。
委派类型
说明
示例值
oss:DataAccessPointArn
为指定的接入点委派权限。委派后,仅指定的接入点生效。
oss:DataAccessPointAccount
oss:AccessPointNetworkOrigin
为互联网或专有网络VPC下的接入点委派权限。委派后,仅指定网络的接入点生效。
说明互联网支持外网和专有云网络VPC。选择互联网接入点后,专有网络接入点也会生效。
oss:DataAccessPointAccount
为当前账号下的所有接入点委派权限。委派后,账号下所有的接入点生效。
单击生成Policy。
使用命令行工具ossutil
您可以使用命令行工具ossutil来创建和配置接入点,ossutil的安装请参见安装ossutil。
以下示例展示了如何为存储空间
examplebucket
创建接入点名称为"ap-01"
的接入点。ossutil api create-access-point --bucket examplebucket --create-access-point-configuration "{\"AccessPointName\":\"ap-01\",\"NetworkOrigin\":\"internet\"}"
关于该命令的更多信息,请参见create-access-point。
以下示例展示了如何为存储空间
examplebucket
的接入点"ap-01"
配置策略。ossutil api put-access-point-policy --bucket examplebucket --access-point-name ap-01 --body "{\"Version\":\"1\",\"Statement\":[{\"Action\":[\"oss:PutObject\",\"oss:GetObject\"],\"Effect\":\"Deny\",\"Principal\":[\"27737962156157xxxx\"],\"Resource\":[\"acs:oss:cn-hangzhou:111933544165xxxx:accesspoint/$ap-01\",\"acs:oss:cn-hangzhou:111933544165xxxx:accesspoint/ap-01/object/*\"]}]}"
关于该命令的更多信息,请参见put-access-point-policy。
相关API
以上操作方式底层基于API实现,如果您的程序自定义要求较高,您可以直接发起REST API请求。直接发起REST API请求需要手动编写代码计算签名。
关于创建接入点的API接口说明,请参见CreateAccessPoint。
关于配置接入点策略的API接口说明,请参见PutAccessPointPolicy。
关于通过Bucket Policy为接入点委派权限的API接口说明,请参见PutBucketPolicy。
后续步骤
创建接入点后,您需要使用接入点别名进行访问。具体步骤,请参见使用接入点。
常见问题
接入点的权限设置支持IP白名单么?
支持。您可以按语法策略添加接入点策略,添加"IpAddress": {"acs:SourceIp": ["xxx"]}
。
- 本页导读 (1)
- 前提条件
- 场景说明
- 操作方式
- 使用OSS控制台
- 使用命令行工具ossutil
- 相关API
- 后续步骤
- 常见问题
- 接入点的权限设置支持IP白名单么?