更新时间:2024-08-15 GMT+08:00

让IAM用户只能看到被授权的桶

场景介绍

本章节介绍如何通过企业项目为华为云账号下的某个IAM用户配置指定桶的权限,使其只能在控制台看到授权的桶并且拥有桶的指定权限,无法看到账号下的其他桶,实现桶资源的隔离。

本案例将指定IAM用户test-user只能在控制台看到名为example的桶,并且只拥有上传权限(obs:object:PutObject)、列举桶内权限(obs:bucket:ListBucket)和列举桶权限(obs:bucket:ListAllMyBuckets),通过这些权限test-user用户可以完成上传对象的操作。

推荐配置方法

企业项目

配置须知

  • 如果同时在IAM和企业项目中针对某个动作(Action)为某IAM用户进行了授权,授权结果以IAM为准。

    举例:

    1、如果在IAM和企业项目同时配置了列举桶权限(obs:bucket:ListAllMyBuckets),最终结果会列举出所有桶,包括用户所属企业项目之外的桶。

    2、针对上传权限(obs:object:PutObject),如果在IAM中配置Allow,企业项目中配置deny,最终结果为Allow,即允许上传对象。

  • 如果在IAM中为某IAM用户配置OBS Viewer权限,并且将其所在用户组加入至企业项目中,则IAM用户登录后将会出现无法列举桶的情况。
  • 配置完成进入桶后仍然会出现无权限相关提示,属于正常现象,因为控制台还调用了其他高级配置的接口,但此时已可以正常完成读写模式中允许的操作。

配置步骤

  1. 登录控制台,单击页面右上方的“企业 > 项目管理”。参考创建企业项目,使用授权账号创建一个名为test-project的企业项目。
  2. 参考为企业项目迁入资源,将目标桶example-001迁入步骤1中test-project的企业项目中。

    如果需要授权多个桶,则将需要的桶都迁移到企业项目中即可。

    图1 将目标桶迁入目标企业项目

  3. 选择“权限管理 ”。单击“用户授权”。

    图2 为企业用户添加授权

  4. 进入IAM用户界面,找到目标用户test-user。

    图3 找到目标IAM用户

  5. 单击“操作”列下的“授权”,进入授权页面。选择“直接给用户授权(适用于企业项目授权)”。

    图4 选择直接给用户授权

  6. 对目标用户test-user设置策略,使该用户在test-project企业项目中拥有策略定义的权限。

    1. 选择策略。您可以在所选策略的下拉框中选择“自定义策略”对已有策略进行筛选,也可以通过右侧“新建策略”创建自定义策略。
      • 创建自定义策略的具体操作请参见创建自定义策略。本案例配置的自定义权限内容如下图所示,其中包含上传权限(obs:object:PutObject)、列举桶内权限(obs:bucket:ListBucket)和列举桶权限(obs:bucket:ListAllMyBuckets)。
      • OBS系统权限说明请参见表1
        图5 配置自定义策略

        用户所在的用户组在IAM中需未添加此处待添加的策略,否则添加的策略将以IAM中配置的为准。

    2. 勾选待添加的策略。
    图6 添加自定义策略

  7. 单击“下一步”。将目标用户test-user(未加入任何用户组)添加至该企业项目中。

    图7 将目标用户添加至企业项目中

  8. 单击“确定”,完成权限配置。添加成功的权限会展示在“权限管理 > 授权管理”的“企业项目视图”列表中。

    图8 添加完成

    完成企业项目权限配置后,无需再配置IAM自定义策略或系统策略。

验证

  1. 使用目标用户test-user登录OBS控制台。
  2. 可以看到桶列表中只有名为example-001的桶。

    图9 验证权限配置结果

  3. 进入目标桶,单击左侧导航栏“对象”。可以看到桶中的其他对象。

    图10 进入桶example-001

    配置完成进入桶后仍然会出现无权限相关提示,属于正常现象,因为控制台还调用了其他高级配置的接口,但此时已可以正常完成读写模式中允许的操作。

  4. 上传文件111.txt至桶example-001中,可以上传成功。表示权限配置成功。

    图11 上传文件

    如果需要配置其他指定的权限完成其他操作,如下载对象或删除对象等,可前往“账号名 > 统一身份认证 > 权限”页面配置的自定义策略中继续配置相关权限即可。