云服务器内容精选

  • 配置须知 按照本案例配置后,可以正常通过API或SDK完成权限所允许的操作,但如果通过控制台或OBS Browser+登录,可能会出现无权限的相关提示信息。 报错原因:通过控制台或者OBS Browser+登录后,加载桶列表时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。如果指定的权限中没有包含如obs:bucket:ListAllMyBuckets、obs:bucket:ListBucket及一些控制台和OBS Browser+加载页面时需要调用的接口权限,会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。 如果希望 IAM 用户能在控制台或OBS Browser+顺利完成桶和对象相关操作,建议至少在自定义策略中包含obs:bucket:ListAllMyBuckets和obs:bucket:ListBucket两个权限。(本案例中的权限2和权限3已包含) obs:bucket:ListAllMyBuckets面向所有资源,资源选择时要选择所有资源。 obs:bucket:ListBucket只面向授权的桶,资源选择时根据情况选择所有资源或者指定的桶。
  • 桶ACL和桶策略的映射关系 桶ACL用于授予桶基本的读写权限,桶策略高级设置中支持更多在桶上可以执行的动作。桶ACL是对桶策略的补充,除了限定的只能由桶ACL授予日志投递用户组权限外,更多时候桶策略可以替代桶ACL管理桶的访问权限。桶ACL访问权限和桶策略动作的映射关系如表1所示。 表1 桶ACL和桶策略的映射关系 ACL权限 选项 对应桶策略高级设置中的动作 桶访问权限 读取权限 HeadBucket ListBucket ListBucketVersions ListBucketMultipartUploads 写入权限 PutObject DeleteObject DeleteObjectVersion 对象权限 对象读权限 GetObject ACL访问权限 读取权限 GetBucketAcl 写入权限 PutBucketAcl
  • 对象ACL和桶策略的映射关系 对象ACL用于授予对象基本的读写权限。桶策略高级设置中支持更多在对象上可以执行的动作。对象ACL访问权限和桶策略动作的映射关系如表2所示。 表2 对象ACL和桶策略的映射关系 对象ACL权限 选项 对应桶策略高级设置中的动作 对象访问权限 读取权限 GetObject GetObjectVersion ACL访问权限 读取权限 GetObjectAcl GetObjectVersionAcl 写入权限 PutObjectAcl PutObjectVersionAcl
  • Action / NotAction 桶策略动作与资源相关,当资源为当前整个桶时,桶策略动作需配置为桶相关的动作;当资源为桶内对象时,桶策略动作需配置为对象相关的动作。 桶策略动作可以通过排除策略来指定: (可选项)排除以上授权操作:桶策略对除指定动作外的其他动作生效。 不勾选:表示桶策略对指定的动作生效。 勾选:表示桶策略对除指定动作外的其他动作生效。 对于桶策略模板,“桶读写”模板默认勾选,其他模板默认不勾选。桶策略模板中的动作排除策略不支持修改。
  • Condition 除了指定效力、被授权用户、资源、动作外,桶策略还可以指定生效条件。只有当条件设置的表达式与访问请求中的值匹配时,桶策略才生效。条件是可选参数,用户可以根据业务需要选择是否使用。 例如,账号A拥有example桶,账号B会向账号A的example桶中上传对象,账号A想要拥有账号B向example桶中上传对象的完全控制权限(因为默认情况下对象由上传该对象的账号B拥有),则可以指定上传请求中必须包含x-obs-acl键,以及显式授予完全控制权限,完整的条件表达式如下: 条件运算符 键 值 StringEquals x-obs-acl bucket-owner-full-control 条件由条件运算符、条件键、条件值三部分组成,最终组成一个条件表达式,决定桶策略生效的条件。同一个条件运算符中,如果存在多个相同的键,则只会保留最后一个键。条件运算符、键两者之间存在互相限制的关联关系,例如:条件运算符选择了一个String类型的,比如StringEquals,键就只能选择String类型的,比如UserAgent。键选择了一个Date类型,比如CurrentTime,条件运算符就只能选择Date类型的,比如DateEquals。 条件运算符 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,策略才能生效。Statement中可选的条件运算符参见表4,String型运算符如未增加说明,不区分大小写。
  • 配置须知 如果同时在IAM和企业项目中针对某个动作(Action)为某IAM用户进行了授权,授权结果以IAM为准。 举例: 1、如果在IAM和企业项目同时配置了列举桶权限(obs:bucket:ListAllMyBuckets),最终结果会列举出所有桶,包括用户所属企业项目之外的桶。 2、针对上传权限(obs:object:PutObject),如果在IAM中配置Allow,企业项目中配置deny,最终结果为Allow,即允许上传对象。 如果在IAM中为某IAM用户配置OBS Viewer权限,并且将其所在用户组加入至企业项目中,则IAM用户登录后将会出现无法列举桶的情况。 配置完成进入桶后仍然会出现无权限相关提示,属于正常现象,因为控制台还调用了其他高级配置的接口,但此时已可以正常完成读写模式中允许的操作。
  • 场景介绍 本章节介绍如何通过企业项目为华为云账号下的某个IAM用户配置指定桶的权限,使其只能在控制台看到授权的桶并且拥有桶的指定权限,无法看到账号下的其他桶,实现桶资源的隔离。 本案例将指定IAM用户test-user只能在控制台看到名为example的桶,并且只拥有上传权限(obs:object:PutObject)、列举桶内权限(obs:bucket:ListBucket)和列举桶权限(obs:bucket:ListAllMyBuckets),通过这些权限test-user用户可以完成上传对象的操作。
  • 场景介绍 本案例介绍如何使用临时访问密钥(临时AK/SK和securitytoken),通过临时授权的方式访问OBS。 假设您希望IAM用户(用户名:APPServer)可以访问桶hi-company的APPClient文件夹,并希望申请到两个不同的临时访问密钥分发给终端APP:APP-1和APP-2,其中APP-1仅能访问APPClient/APP-1下的文件,APP-2仅能访问APPClient/APP-2下的文件。
  • 相关场景 如果想要实现只允许指定的IP地址访问OBS桶,则将上述示例中桶策略的“条件运算符”设置为“NotIpAddress”,并在“值”中指定允许的IP地址即可。 在内网访问OBS的场景下,如果想要限制指定私网IP地址访问桶,需要购买网关型VPCEP终端节点(服务类别选择“按名称查找服务”,获取服务名称请提交工单,技术人员将为您提供)。通过VPCEP终端节点访问桶,OBS侧感知到的源IP即为私网IP,桶策略可直接针对私网IP进行访问限制。
  • 文件分享方法 在OBS管理控制台左侧导航栏选择“桶列表”。 在桶列表单击目标桶的桶名称,进入“对象”页面。 选中待分享的文件,并单击右侧操作列的“分享”。 此时,链接信息中的链接就已经生效并开始计时,有效期为默认的5分钟。修改URL有效期,链接会相应变化,新链接的有效期从修改时开始计算。 图1 分享文件 URL相关操作。 单击“打开URL”,将在新页面打开文件进行预览或者直接下载文件到本地。 单击“复制链接”,您可以将该链接分享给所有用户,用户可以在浏览器中通过此链接直接访问文件。 单击“复制路径”,您可将该路径分享给所有拥有对象所在桶权限的用户,用户可以在对应桶中的文件搜索框中输入该路径搜索并访问文件。 在“URL有效期”内,任何用户都可以访问该文件。
  • 文件夹分享方法 在OBS管理控制台左侧导航栏选择“桶列表”。 在桶列表单击目标桶的桶名称,进入“对象”页面。 选中待分享的文件夹,并单击右侧的“分享”,系统弹出“分享文件夹”对话框。 分享文件夹有两种方式,分别是提取码分享和直接分享。 方法一:提取码分享。 图2 提取码分享 分享策略选择“提取码分享”。 设置相关参数。 表1 提取码分享文件夹参数 参数 说明 URL有效期 单位为分钟或小时,URL有效期的取值范围为1分钟到18小时,默认值为5分钟。 在“URL有效期”内,任何用户都可以访问该文件夹。 提取码 六位数字。 用户在访问分享链接时,需要输入提取码,才能看到文件夹中的对象。 单击“创建分享”,生成文件分享URL。 将链接及提取码发送给所有用户,用户通过访问链接并输入提取码以访问文件夹中的对象。 验证: 其他用户通过网页访问分享的文件夹。 打开网页,输入分享的URL地址,打开链接。 在页面提示框输入“提取码”,确认即可访问分享的文件夹。 其他用户通过OBS Browser+访问分享的文件夹。 打开OBS Browser+。 在登录页面选择“授权码登录”。 输入“授权码”和“提取码”。 单击“登录”,即可访问分享的文件夹。 方法二:直接分享。 图3 直接分享 分享策略选择“直接分享”。 设置相关参数。 表2 直接分享文件夹参数 参数 说明 URL有效期 单位为分钟或小时,URL有效期的取值范围为1分钟到18小时,默认值为5分钟。 在“URL有效期”内,任何用户都可以访问该文件夹。 单击“复制链接”发送给用户,用户通过该链接即可访问文件夹下所有对象。该分享链接由桶 域名 (前缀)+签名信息(后缀)构成,对该文件夹下所有对象生效。用户可以在分享链接的前缀后面插入对象路径来访问文件夹中的对象,支持访问下载,如图4所示。 验证:其他用户通过分享链接访问文件夹下所有对象。 打开网页,输入分享的链接(前缀+后缀)。 单击“Enter”键打开链接,列举出文件夹内所有对象。 复制对象路径,然后在前缀后黏贴。 单击“Enter”键打开链接,即可访问下载文件夹中的指定对象。 图4 访问直接分享链接示例图
  • 配置须知 本案例预置的“目录只读”模板允许所有账号(所有互联网用户)对指定目录执行以下权限: GetObject:获取对象内容、获取对象元数据 GetObjectVersion:获取指定版本对象内容、获取指定版本对象元数据 GetObjectVersionAcl:获取指定版本对象ACL GetObjectAcl:获取对象ACL RestoreObject:恢复归档存储对象 HeadBucket:判断桶是否存在、获取桶元数据 GetBucketLocation:获取桶位置 使用本案例授权会涉及部分桶相关权限(HeadBucket、GetBucketLocation),请谨慎使用。如果需要缩小权限范围,请参考对所有账号授予指定对象的读权限。
  • 配置须知 按照本案例配置后,可以正常通过API或SDK完成对象下载操作,但如果通过控制台或OBS Browser+登录桶列表,会出现无权限的相关提示信息。 报错原因:通过控制台或者OBS Browser+登录后,加载桶列表时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。而授予的只读权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。
  • 配置须知 本案例预置的“对象只读”模板允许其他账号对桶内指定对象执行以下权限: GetObject:获取对象内容、获取对象元数据 GetObjectVersion:获取指定版本对象内容、获取指定版本对象元数据 GetObjectVersionAcl:获取指定版本对象ACL GetObjectAcl:获取对象ACL RestoreObject:恢复归档存储对象 按照本案例配置后,可以正常通过API或SDK完成读操作(下载指定对象),但如果通过控制台或OBS Browser+登录,会出现无权限的相关提示信息。 报错原因:通过控制台或者OBS Browser+登录后,加载桶列表时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。而授予的只读权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。
  • 配置须知 本案例预置的“桶读写”模板允许其他账号对整个桶及桶内所有对象执行除以下权限以外的所有权限: DeleteBucket:删除桶 PutBucketPolicy:设置桶策略 PutBucketAcl:设置桶ACL 按照本案例配置后,被授权账号可以正常通过API或SDK完成读写操作(上传、下载、删除桶内所有对象),此外允许通过OBS Browser+挂载外部桶的方式完成读写操作。暂不支持在OBS控制台访问非本账号的OBS桶。 通过OBS Browser+访问添加的外部桶可能仍会出现无权限的相关提示信息。 报错原因:OBS Browser+桶详情页面的加载会调用一些其他的OBS接口,而授予的读写权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执-行此操作”,但并不影响已有权限。