创建接入点

接入点(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(其账户UID137918634953xxxx),其公司需针对统一采集的数据进行大数据分析与管理,统一采集的数据存放在存储空间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/*

      授权资源

      授权整个BucketBucket内的部分资源供接入点访问。

      • 整个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>:子账号(UID26571698800555xxxx)

      • 部门<4>:子账号(UID25770968794578xxxx)

      • 部门<5~10>:子账号(UID26806658794579xxxx)

      授权操作

      您可以通过简单设置高级设置两种方式进行授权操作。

      • 简单设置

        选中此项后,您可以结合实际场景按照如下说明配置相应的访问权限。将鼠标悬停在每一种访问权限右侧对应的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 PolicyBucket的访问策略委派给接入点。

      委派类型

      说明

      示例值

      oss:DataAccessPointArn

      为指定的接入点委派权限。委派后,仅指定的接入点生效。

      oss:DataAccessPointAccount

      oss:AccessPointNetworkOrigin

      为互联网或专有网络VPC下的接入点委派权限。委派后,仅指定网络的接入点生效。

      说明

      互联网支持外网和专有云网络VPC。选择互联网接入点后,专有网络接入点也会生效。

      oss:DataAccessPointAccount

      为当前账号下的所有接入点委派权限。委派后,账号下所有的接入点生效。

    4. 单击生成Policy

使用REST API

如果您的程序自定义要求较高,您可以直接发起REST API请求。直接发起REST API请求需要手动编写代码计算签名。

后续步骤

创建接入点后,您需要使用接入点别名进行访问。具体步骤,请参见使用接入点

常见问题

接入点的权限设置支持IP白名单么?

支持。您可以按语法策略添加接入点策略,添加"IpAddress": {"acs:SourceIp": ["xxx"]}