应急预案:专有云控制台升级到V3.8.1后用户对Bucket无权访问的应急处理方法

应急预案:专有云控制台升级到V3.8.1后用户对Bucket无权访问的应急处理方法

更新时间:2020-07-14 11:11:35

1. 概述

本文主要介绍在专有云控制台升级到V3.8.1后,用户对Bucket无权访问的应急处理方法。

1.1. 适用范围

  • 专有云V3企业版,专有云控制台
    说明:适用于专有云控制台升级到V3.8.1的环境。

1.2. 用户告知

  • 适用平台:x86、ARM
  • 授权级别:L2(二线技术支持工程师)
  • 临时或固化方案:临时
  • 操作复杂度:高
  • 预估执行时长:1小时
  • 业务影响:是
    说明:手动添加Tag信息存在误操作风险,误操作后需要重新执行本方案进行覆盖,不影响原本用户使用。
  • 风险等级:中
    说明
    • 升级后新创建用户对升级前无Tag信息的OSS Bucket操作没有权限。
    • 升级前创建的用户修改角色会使用新的RAM策略,会造成原本正常使用的用户无权限操作OSS Bucket。

2. 问题描述

在OSS控制台,具有OSS资源使用权限的用户访问OSS资源时,报无权限的错误。发生报错的原因是在专有云V3.8.1对OSS和OTS的RAM策略做了调整,使用Tag进行控制,但是没有对升级前环境中已有的Bucket进行处理。

说明:使用Tag进行控制的方法是对OSS Bucket实例设置Tag,同时在RAM策略中设置Tag,两者匹配才可以使用Bucket。


3. 解决方案

3.1. 环境检查

  1. 登录OSS控制台,在Bucket基本信息页面,获取Bucket的服务地址
  2. 登录天基控制台,在Project框中搜索webappAll,选择集群,单击集群右侧的集群运维中心,进入集群运维中心页面。
  3. 选择dtdream-dtcenter服务和Manage#服务角色,单击任意服务器右侧的Terminal,登录对应的机器。
  4. 进入manage容器,在tmp目录下,执行以下命令,配置ossutil工具的config文件。
    说明:如果manage容器的tmp目录中没有ossutil工具包,请将ossutil64.tar文件解压后,上传到OPS服务器的任意目录,然后执行相应的命令。
    ./ossutil64 config

    系统显示类似如下。

    说明
    • [$Endpoint]为第一步获取的实例服务地址。
    • [$AccessKey_ID]为OSS Bucket所属部门的AccessKey ID。
    • [$AccessKey_Secrt]为OSS Bucket所属部门的AccessKey Secrt。
  5. 行以下命令,查询Bucket的Tag信息。
    ./ossutil64 bucket-tagging --method get oss://[$Bucket_Name]
    说明:[$Bucket_Name]为OSS Bucket的名称。
    系统显示类似如下。

3.2. 实施步骤

  1. 在manage容器的tmp目录下,执行以下命令,设置Bucket的Tag信息。
    ./ossutil64 bucket-tagging --method put oss://[$Bucket_Name] dt_department#department_[$TagValue1] dt_project#project_[$TagValue2]
    说明
    • department_[$TagValue1]为部门Tag的值。
    • project_[$TagValue2]为项目Tag的值。
    • 在专有云控制台中需要为每个Bucket设置两个Tag,分别代表部门和项目的归属,注意格式和示例保持一致。
    命令示例如下:
    ./ossutil64 bucket-tagging --method put oss://acs-bucket dt_department#department_2_3_ dt_project#project_5000
    系统显示类似如下。
  2. 执行以下命令,查看设置的Bucket的Tag信息。
    ./ossutil64 bucket-tagging --method get oss://[$Bucket_Name]
    系统显示类似如下。

3.3. 结果验证

用户可以正常访问OSS Bucket。

4. 回滚方案

此方案为应急处理方案,没有变配内容,不需要回滚。

5. 补充说明

部门和项目的Tag值获取方式如下:

  • 部门Tag:登录专有云控制台,在部门管理中,查看当前Bucket所属部门,按F12,打开开发者调试工具,单击Network,在Name中找到tree,找到当前Bucket所属部门的ID,逐级向上寻找,直到root部门。如root部门的ID为2,下一级部门的ID为3,当前Bucket所属部门的ID为16,则部门Tag为department_2_3_16_

  • 项目Tag:登录专有云控制台,在当前项目的项目详情页面,查看项目ID。如项目ID为500,则项目Tag为project_500