oss上传视频显示“上传失败,无权限”-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

oss上传视频显示“上传失败,无权限”

1722928094024503 2018-11-14 10:03:52 469
对象存储oss上传视频文件,一直显示  上传失败,无权限?怎么回事?
对象存储
分享到
取消 提交回答
全部回答(1)
  • 51干警网
    2018-11-14 10:11:24

    本教程示例详细演示了如何控制用户对 OSS 存储空间和文件夹的访问。在示例中,我们首先创建一个存储空间和文件夹,然后使用阿里云主账号创建访问管理 (RAM) 用户,并为这些用户授予对所创建 OSS 存储空间及文件夹的增量权限。

    存储空间和文件夹的基本概念

    阿里云 OSS 的数据模型为扁平型结构,所有文件都直接隶属于其对应的存储空间。因此,OSS 缺少文件系统中类似于目录与子文件夹的层次结构。但是,您可以在 OSS 控制台上模拟文件夹层次结构。在该控制台中,您可以按文件夹对相关文件进行分组、分类和管理,如下图所示。  
     

    OSS 提供使用键值(key)对格式的分布式对象存储服务。用户根据其唯一的key(对象名)检索对象的内容。例如,名为 example-company 的存储空间有三个文件夹:Development、 Marketing 和 Private,以及一个对象 oss-dg.pdf

    • 在创建   Development  文件夹时,控制台会创建一个key为 Development/的对象。注意,文件夹的key包括分隔符   /

    • 当您将名为ProjectA.docx的对象上传到Development文件夹中时,控制台会上传该对象并将其key设置为Development/ProjectA.docx


      在该key中,Development为前缀,而/为分隔符。您可以从存储空间中获取具有特定前缀和分隔符的所有对象的列表。在控制台中,单击Development文件夹时,控制台会列出文件夹中的对象,如下图所示。



      说明  当控制台列出   example-company存储空间中的   Development文件夹时,它会向 OSS 发送一个用于指定前缀   Development和分隔符   /的请求。控制台的响应与文件系统类似,会显示文件夹列表。上例说明,存储空间 example-company有三个对象,其key分别为   Development/Alibaba Cloud.pdfDevelopment/ProjectA.docx及   Development/ProjectB.docx

    控制台通过对象的key推断逻辑层次结构。当您创建对象的逻辑层次结构时,您可以管理对个别文件夹的访问,如本教程后面描述的那样。

    在本教程开始之前,您还需要知道“根级”存储空间内容的概念。假设example-company存储空间包含以下对象:

    • Development/Alibaba Cloud.pdf
    • Development/ProjectA.docx
    • Development/ProjectB.docx
    • Marketing/data2016.xlsx
    • Marketing/data2016.xlsx
    • Private/2017/images.zip
    • Private/2017/promote.pptx
    • oss-dg.pdf

    这些对象的key构建了一个以 Development、Marketing 和 Private 作为根级文件夹并以 oss-dg.pdf 作为根级对象的逻辑层次结构。当您单击 OSS 控制台中的存储空间名时,控制台会将一级前缀和一个分隔符(Development/、Marketing/ 和 Private/)显示为根级文件夹。对象 oss-dg.pdf 没有前缀,因此显示为根级别项。


     

    OSS 的请求和响应逻辑

    在授予权限之前,我们需要清楚,当用户单击某个存储空间的名字时控制台向 OSS 发送的是什么请求、OSS 返回的是什么响应,以及控制台如何解析该响应。

    当用户单击某个存储空间名时,控制台会将GetBucket 请求发送至 OSS。此请求包括以下参数:

    • prefix,其值为空字符串。
    • delimiter,其值为 /

    请求示例如下所示:

    GET /?prefix=&delimiter=/ HTTP/1.1
    Host: example-company.oss-cn-hangzhou.aliyuncs.com
    Date: Fri, 24 Feb 2012 08:43:27 GMT
    Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:DNrnx7xHk3sgysx7I8U9I9IY1vY=

    OSS 返回的响应包括ListBucketResult元素:

    HTTP/1.1 200 OK
    x-oss-request-id: 534B371674E88A4D8906008B
    Date: Fri, 24 Feb 2012 08:43:27 GMT
    Content-Type: application/xml
    Content-Length: 712
    Connection: keep-alive
    Server: AliyunOSS
    <?xml version="1.0" encoding="UTF-8"?><ListBucketResult xmlns=¡±http://doc.oss-cn-hangzhou.aliyuncs.com¡±><Name>example-company</Name><Prefix></Prefix><Marker></Marker><MaxKeys>100</MaxKeys><Delimiter>/</Delimiter>
        <IsTruncated>false</IsTruncated>
        <Contents>
            <Key>oss-dg.pdf</Key>
            ...
        </Contents>
       <CommonPrefixes>
            <Prefix>Development</Prefix>
       </CommonPrefixes>
          <CommonPrefixes>
            <Prefix>Marketing</Prefix>
       </CommonPrefixes>
          <CommonPrefixes>
            <Prefix>Private</Prefix>
       </CommonPrefixes></ListBucketResult>

    由于 oss-dg.pdf 不包含/分隔符,因此 OSS 在<Contents/>元素中返回该key。存储空间 example-company 中的所有其他key都包含/分隔符,因此 OSS 会将这些key分组,并为每个前缀值 Development/、Marketing/ 和 Private/ 返回一个<CommonPrefixes/>元素。该元素是一个字符串,包含从这些key的第一个字符开始到第一次出现指定的/分隔符之间的字符。

    控制台会解析此结果并显示如下的根级别项:


     

    现在,如果用户单击Development文件夹,控制台会将GetBucket请求发送至 OSS。此请求包括以下参数:

    • prefix,其值为   Development/
    • delimiter,其值为   /

    请求示例如下所示:

    GET /?prefix=Development/&delimiter=/ HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Date: Fri, 24 Feb 2012 08:43:27 GMT
    Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:DNrnx7xHk3sgysx7I8U9I9IY1vY=

    作为响应,OSS 返回以指定前缀开头的key:

    HTTP/1.1 200 OK
    x-oss-request-id: 534B371674E88A4D8906008B
    Date: Fri, 24 Feb 2012 08:43:27 GMT
    Content-Type: application/xml
    Content-Length: 712
    Connection: keep-alive
    Server: AliyunOSS
    <?xml version="1.0" encoding="UTF-8"?><ListBucketResult xmlns=¡±http://doc.oss-cn-hangzhou.aliyuncs.com¡±><Name>example-company</Name><Prefix>Development/</Prefix><Marker></Marker><MaxKeys>100</MaxKeys><Delimiter>/</Delimiter>
        <IsTruncated>false</IsTruncated>
        <Contents>
            <Key>ProjectA.docx</Key>
            ...
        </Contents>
        <Contents>
            <Key>ProjectB.docx</Key>
            ...
        </Contents></ListBucketResult>

    控制台会解析此结果并显示如下的key:


     

    教程示例

    本教程示例如下所示:

    • 创建一个存储空间example-company,然后向其中添加三个文件夹(Development、Marketing 和 Private)。
    • 您有Anne和Leo两个用户。您希望Anne只能访问 Development文件夹而Leo则只能访问 Marketing文件夹,并且希望将 Private文件夹保持私有。在教程示例中,通过创建访问控制 (RAM) 用户(Anne和Leo)来管理访问权限,并授予他们必要的权限。
    • RAM 还支持创建用户组并授予适用于组中所有用户的组级别权限。这有助于更好地管理权限。在本示例中,Anne和Leo都需要一些公共权限。因此,您还要创建一个名为Staff 的组,然后将Anne和Leo添加到该组中。首先,您需要给该组分配策略授予权限。然后,将策略分配给特定用户,添加特定用户的权限。
    说明  本教程示例使用example-company作为存储空间名、使用Anne和Leo作为RAM用户名并使用Staff作为组名。由于阿里云OSS要求存储空间名全局唯一,所以您需要用自己的存储空间名称替换本教程中的存储空间名。

    示例准备

    本示例使用阿里云主账号创建RAM用户。最初,这些用户没有任何权限。您将逐步授予这些用户执行特定 OSS 操作的权限。为了测试这些权限,您需要使用每个用户的RAM账号登录到控制台。当您作为主账号所有者逐步授予权限并作为RAM用户测试权限时,您需要每次使用不同账号进行登录和注销。您可以使用一个浏览器来执行此测试。如果您可以使用两个不同的浏览器,则该测试过程用时将会缩短:一个浏览器用于使用主账号连接到阿里云控制台,另一个浏览器用于使用RAM 账号进行连接。

    要使用您的主账号登录到阿里云控制台。 RAM用户不能使用相同的链接登录。他们必须使用RAM用户登录链接。作为主账号所有者,您可以向RAM用户提供此链接。

    说明  有关 RAM 的详细信息,请参见 使用 RAM 用户账号登录
    为 RAM 用户提供登录链接
    1. 使用主账号登录 RAM 控制台
    2. 在左侧导航栏中,单击 概览
    3. 在 RAM用户登录链接 后找到URL。您将向RAM用户提供此URL,以便其使用RAM用户名和密码登录控制台。

    步骤 1:创建存储空间

    在此步骤中,您可以使用主账号登录到OSS控制台、创建存储空间、将文件夹(Development、Marketing、Private)添加到存储空间中,并在每个文件夹中上传一个或两个示例文档。

    1. 使用主账号登录 OSS 控制台
    2. 创建名为 example-company  的存储空间。

      有关详细过程,请参见OSS 控制台用户指南中的创建存储空间 。

    3. 将一个文件上传到存储空间中。

      本示例假设您将文件 oss-dg.pdf 上传到存储空间的根级别。您可以用不同的文件名上传自己的文件。


      有关详细过程,请参见 OSS 控制台用户指南中的上传文件

    4. 添加名为 Development、Marketing 和 Private 的三个文件夹。

      有关详细过程,请参见 OSS 控制台用户指南 中的创建文件夹

    5. 将一个或两个文件上传到每个文件夹中。

      本例假设您将具有以下对象键的对象上传到存储空间中:

      • Development/Alibaba Cloud.pdf
      • Development/ProjectA.docx
      • Development/ProjectB.docx
      • Marketing/data2016.xlsx
      • Marketing/data2016.xlsx
      • Private/2017/images.zip
      • Private/2017/promote.pptx
      • oss-dg.pdf

    步骤 2:创建 RAM 用户和组

    在此步骤中,您使用 RAM 控制台将两个 RAM 用户 Anne 和 Leo 添加到主账号中。您还将创建一个名为 Staff 的组,然后将这两个用户添加到该组中。
    说明  在此步骤中,不要分配任何授予这些用户权限的策略。在以下步骤中,您将逐步为其授予权限。

    有关创建 RAM 用户的详细过程,请参见 RAM 快速入门中的创建 RAM 用户。请为每个 RAM 用户创建登录密码。

    有关创建组的详细过程,请参见 RAM 用户指南中的创建组

    步骤 3:确认 RAM 用户没有任何权限

    如果您使用两个浏览器,现在可以在另一个浏览器中使用其中一个 RAM 用户账号登录到控制台。

    1. 打开 RAM 用户登录链接,并用 Anne 或 Leo 的账号登录到 RAM 控制台。
    2. 打开 OSS 控制台。

      您发现控制台中没有任何存储空间,这意味着 Anne 不具有对存储空间 example-company 的任何权限。

    步骤 4:授予组级别权限

    我们希望 Anne 和 Leo 都能执行以下操作:


    • 列出主账号所拥有的所有存储空间。


      为此,Anne 和 Leo 必须具有执行 oss:ListBuckets 操作的权限。


    • 列出 example-company 存储空间中的根级别项、文件夹和对象。


      为此,Anne 和 Leo 必须具有对 example-company 存储空间执行 oss:ListObjects 操作的权限。

    步骤 4.1.授予列出所有存储空间的权限

    在此步骤中,创建一个授予用户最低权限的策略。凭借最低权限,用户可列出主账号所拥有的所有存储空间。您还将此策略分配给 Staff 组,以便授予获得主账号拥有的存储空间列表的组权限。

    1. 使用主账号登录 RAM 控制台
    2. 创建策略   AllowGroupToSeeBucketListInConsole
      1. 在左侧导航窗格中,单击 策略管理,然后单击 新建授权策略
      2. 单击 空白模板
      3. 授权策略名称 字段中,输入 AllowGroupToSeeBucketListInConsole
      4. 策略内容 字段中,复制并粘贴以下策略。
        {
        "Version": "1",
        "Statement": [
         {
           "Effect": "Allow",
           "Action": [
             "oss:ListBuckets"
           ],
           "Resource": [
             "acs:oss:*:*:*"
           ]
         }
        ]
        }
        说明  策略为 JSON 文档。在该策略中,Statement 是一个对象数组,每个对象使用名/值对的集合来描述权限。前面的策略描述了一个特定的权限。Effect 元素值决定是允许还是拒绝特定的权限。Action 指定访问权限的类型。在本策略中,oss:ListBuckets 是预定义的 OSS 操作,可返回经过身份验证的发送者所拥有的所有储存空间的列表。
    3. 将   AllowGroupToSeeBucketListInConsole  策略分配给 Staff 组。

      有关分配策略的详细过程,请参见 RAM 快速入门 中将策略分配给 RAM 用户将策略分配给 RAM 组


      可以将策略分配给 RAM 控制台中的 RAM 用户和组。在本例中,我们将策略分配给组,因为我们希望 Anne 和 Leo 都能够列出这些存储空间。

    4. 测试权限。
      1. 打开 RAM 用户登录链接,并用 Anne 或 Leo 的账号登录到 RAM 控制台。
      2. 打开 OSS 控制台。

        控制台列出所有存储空间。

      3. 单击 example-company 存储空间,然后单击 文件选项卡。

        此时将显示一个消息框,表明您没有相应的访问权限。



    步骤 4.2.授予列出存储空间根级内容的权限

    在此步骤中,您授予权限,允许所有用户列出存储空间 example-company 中的所有项目。当用户在 OSS 控制台中单击 example-company 时,能够看到存储空间中的根级别项。


     
    1. 使用主账号登录 RAM 控制台
    2. 用以下策略取代分配给 Staff 组的现有策略 AllowGroupToSeeBucketListInConsole,该策略还允许 oss:ListObjects 操作。请用您的存储空间名替换策略资源中的 example-company。

      有关详细过程,请参见 RAM 用户指南中授权策略修改自定义授权策略部分。注意,您最多可对 RAM 策略进行五次修改。如果超过了五次,则需要删除该策略并创建一个新的策略,然后再次将新策略分配给 Staff 组。

      {
         "Version": "1",
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "oss:ListBuckets",
               "oss:GetBucketAcl"
             ],
             "Resource": [
               "acs:oss:*:*:*"
             ],
             "Condition": {}
           },
           {
             "Effect": "Allow",
             "Action": [
               "oss:ListObjects"
             ],
             "Resource": [
               "acs:oss:*:*:example-company"
             ],
             "Condition": {
               "StringLike": {
                 "oss:Prefix": [
                   ""
                 ],
                 "oss:Delimiter": [
                   "/"
                 ]
               }
             }
           }
         ]
       }
      说明
      • 要列出存储空间内容,用户需要调用 oss:ListObjects 操作的权限。为了确保用户仅看到根级内容,我们添加了一个条件:用户必须在请求中指定一个空前缀,也就是说,他们不能单击任何根级文件夹。我们还通过要求用户请求包含分隔符参数和值   /  来添加需要文件夹样式访问的条件。
      • 当用户登录到 OSS 控制台时,控制台检查用户的身份是否有访问 OSS 服务的权限。要在控制台中支持存储空间操作,我们还需要添加 oss:GetBucketAcl 操作。
    3. 测试更新的权限。
      1. 打开 RAM 用户登录链接,并用 Anne 或 Leo 的账号登录到 RAM 控制台。
      2. 打开 OSS 控制台。

        控制台列出所有存储空间。

      3. 单击 example-company 存储空间,然后单击 文件选项卡。

        控制台列出所有根级别项。



      4. 单击任何文件夹或对象 oss-dg.pdf

        此时将显示一个消息框,表明您没有相应的访问权限。

    组策略摘要

    添加组策略的最终结果是授予 RAM 用户 Anne 和 Leo 以下最低权限:

    • 列出主账号所拥有的所有存储空间。
    • 查看 example-company 存储空间中的根级别项。

    然而,他们可以进行的操作仍然有限。在以下部分中,我们将授予用户以下特定权限:

    • 允许 Anne 在 Development 文件夹中获取和放入对象。
    • 允许 Bob 在 Finance 文件夹中获取和放入对象。

    对于用户特定的权限,您需要将策略分配给特定用户,而非分配给组。以下部分授予 Anne 在 Development 文件夹中操作的权限。您可以重复这些步骤,授予 Leo 在 Finance 文件夹中进行类似操作的权限。

    步骤 5:授予 RAM 用户 Anne 特定权限

    在此步骤中,我们向 Anne 授予额外的权限,使她可以看到 Development 文件夹的内容,并将对象放入文件夹中。

    步骤 5.1.授予 RAM 用户 Anne 权限以列出 Development 文件夹内容

    若要 Anne 能够列出 Development 文件夹内容,您必须为其分配策略。该策略必须能够授予其对 example-company 存储空间执行 oss:ListObjects 操作的权限,还必须包括要求用户在请求中指定前缀 Development/ 的条件。

    1. 使用主账号登录 RAM 控制台
    2. 创建策略 AllowListBucketsIfSpecificPrefixIsIncluded,授予 RAM 用户 Anne 权限以列出 Development 文件夹内容。
      1. 在左侧导航窗格中,单击 策略管理,然后单击 新建授权策略
      2. 单击 空白模板
      3. 授权策略名称字段中,输入 AllowListBucketsIfSpecificPrefixIsIncluded
      4. 策略内容 字段中,复制并粘贴以下策略。
        {
        "Version": "1",
        "Statement": [
         {
           "Effect": "Allow",
           "Action": [
             "oss:ListObjects"
           ],
           "Resource": [
             "acs:oss:*:*:example-company"
           ],
           "Condition": {
             "StringLike": {
               "oss:Prefix": [
                 "Development/*"
               ]
             }
           }
         }
        ]
        }
    3. 将策略分配给 RAM 用户 Anne。

      有关分配策略的详细过程,请参见 RAM 快速入门中的将策略分配给 RAM 用

    4. 测试 Anne 的权限。
      1. 打开 RAM 用户登录链接,并用 Anne 的账号登录到 RAM 控制台。
      2. 打开 OSS 控制台,控制台列出所有存储空间。
      3. 单击 example-company 存储空间,然后单击 文件选项卡,控制台列出所有根级别项。
      4. 单击 Development/ 文件夹。控制台列出文件夹中的对象。
    步骤 5.2 授予 RAM 用户 Anne 在 Development 文件夹中获取和放入对象的权限。

    若要 Anne 能够在 Development 文件夹中获取和放入对象,您必须授予她调用 oss:GetObject 和 oss:PutObject 操作的权限,包括用户必须在请求中指定前缀 Development/ 的条件。

    1. 使用主账号登录   RAM 控制台
    2. 用以下策略取代您在之前步骤中创建的策略 AllowListBucketsIfSpecificPrefixIsIncluded

      有关详细过程,请参见 RAM 用户指南中授权策略修改自定义授权策略部分。注意,您最多可对 RAM 策略进行五次修改。如果超过了五次,则需要删除该策略并创建一个新的策略,然后再次将新策略分配给 Staff 组。

      {
         "Version": "1",
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "oss:ListObjects"
             ],
             "Resource": [
               "acs:oss:*:*:example-company"
             ],
             "Condition": {
               "StringLike": {
                 "oss:Prefix": [
                   "Development/*"
                 ]
               }
             }
           },
           {
             "Effect": "Allow",
             "Action": [
               "oss:GetObject",
               "oss:PutObject",
               "oss:GetObjectAcl"
             ],
             "Resource": [
               "acs:oss:*:*:example-company/Development/*"
             ],
             "Condition": {}
           }
         ]
       }
      说明  当用户登录到 OSS 控制台时,控制台检查用户的身份是否有访问 OSS 服务的权限。要在控制台中支持存储空间操作,我们还需要添加 oss:GetObjectAcl 操作。
    3. 测试更新的策略。
      1. 打开 RAM 用户登录链接,并用 Anne 的账号登录到 RAM 控制台。
      2. 打开 OSS 控制台。

        控制台列出所有存储空间。

      3. 在 OSS 控制台中,确认 Anne 现在可以在 Development 文件夹中添加对象并下载对象。
    步骤 5.3 显式拒绝 RAM 用户 Anne 访问存储空间中任何其他文件夹的权限

    RAM 用户 Anne 现在可以在 example-company 存储空间中列出根级内容,并将对象放入 Development 文件夹中。如果要严格限制访问权限,您可以显式拒绝 Anne 对存储空间中任何其他文件夹的访问。如果有授予 Anne 访问存储空间中任何其他文件夹的其他策略,则此显式策略将替代这些权限。

    您可以将以下语句添加到 RAM 用户 Anne 的策略   AllowListBucketsIfSpecificPrefixIsIncluded,以要求 Anne 发送到 OSS 的所有请求包含前缀参数,该参数的值可以是 Development/* 或空字符串。
    {
          "Effect": "Deny",
          "Action": [
            "oss:ListObjects"
          ],
          "Resource": [
            "acs:oss:*:*:example-company"
          ],
          "Condition": {
            "StringNotLike": {
              "oss:Prefix": [
                "Development/*",
                ""
              ]
            }
          }
        }
    按照之前的步骤更新您为 RAM 用户 Anne 创建的策略   AllowListBucketsIfSpecificPrefixIsIncluded。复制并粘贴以下策略以替换现有策略。
    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:ListObjects"
          ],
          "Resource": [
            "acs:oss:*:*:example-company"
          ],
          "Condition": {
            "StringLike": {
              "oss:Prefix": [
                "Development/*"
              ]
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "oss:GetObject",
            "oss:PutObject",
            "oss:GetObjectAcl"
          ],
          "Resource": [
            "acs:oss:*:*:example-company/Development/*"
          ],
          "Condition": {}
        },
        {
          "Effect": "Deny",
          "Action": [
            "oss:ListObjects"
          ],
          "Resource": [
            "acs:oss:*:*:example-company"
          ],
          "Condition": {
            "StringNotLike": {
              "oss:Prefix": [
                "Development/*",
                ""
              ]
            }
          }
        }
      ]
    }

    步骤 6:授予 RAM 用户 Leo 特定权限

    现在,您希望授予 Leo 访问 Marketing 文件夹的权限。请遵循之前用于向 Anne 授予权限的步骤,但应将 Development 文件夹替换为 Marketing 文件夹。有关详细过程,请参见步骤 5:授予 RAM 用户 Anne 特定权限。

    步骤 7:确保 Private 文件夹安全

    在本例中,您仅拥有两个用户。您在组级别授予两个用户所有所需的最小权限,只有当您真正需要单个用户级别上的权限时,才授予用户级别权限。此方法有助于最大限度地减少管理权限的工作量。随着用户数量的增加,我们希望确保不意外地授予用户对 Private 文件夹的权限。因此,我们需要添加一个显式拒绝访问 Private 文件夹的策略。显式拒绝策略会取代任何其他权限。若要确保 Private 文件夹保持私有,可以向组策略添加以下两个拒绝语句:

    • 添加以下语句以显式拒绝对 Private 文件夹 (example-company/Private/*) 中的资源执行任何操作。
      {
          "Effect": "Deny",
          "Action": [
            "oss:*"
          ],
          "Resource": [
            "acs:oss:*:*:example-company/Private/*"
          ],
          "Condition": {}
        }
    • 您还要在请求指定了 Private/ prefix 时拒绝执行 ListObjects 操作的权限。在控制台中,如果 Anne 或 Leo 单击 Private 文件夹,则此策略将导致 OSS 返回错误响应。
      {
          "Effect": "Deny",
          "Action": [
            "oss:ListObjects"
          ],
          "Resource": [
            "acs:oss:*:*:*"
          ],
          "Condition": {
            "StringLike": {
              "oss:Prefix": [
                "Private/"
              ]
            }
          }
        }

    • 用包含前述拒绝语句的更新策略取代 Staff 组策略AllowGroupToSeeBucketListInConsole。在应用更新策略后,组中的任何用户都不能访问您的存储空间中的 Private 文件夹。

      1. 使用主账号登录 RAM 控制台
      2. 用以下策略取代分配给 Staff 组的现有策略 AllowGroupToSeeBucketListInConsole。请用您的存储空间名替换策略资源中的 example-company。
        {
        "Version": "1",
        "Statement": [
         {
           "Effect": "Allow",
           "Action": [
             "oss:ListBuckets",
             "oss:GetBucketAcl"
           ],
           "Resource": [
             "acs:oss:*:*:*"
           ],
           "Condition": {}
         },
         {
           "Effect": "Allow",
           "Action": [
             "oss:ListObjects"
           ],
           "Resource": [
             "acs:oss:*:*:example-company"
           ],
           "Condition": {
             "StringLike": {
               "oss:Prefix": [
                  ""
                ],
               "oss:Delimiter": [
                 "/"
               ]
             }
           }
         },
         {
           "Effect": "Deny",
           "Action": [
             "oss:*"
           ],
           "Resource": [
             "acs:oss:*:*:example-company/Private/*"
           ],
           "Condition": {}
         },
         {
           "Effect": "Deny",
           "Action": [
             "oss:ListObjects"
           ],
           "Resource": [
             "acs:oss:*:*:*"
           ],
           "Condition": {
             "StringLike": {
               "oss:Prefix": [
                 "Private/"
               ]
             }
           }
         }
        ]
        }

    清理

    要进行清理,您需要在 RAM 控制台中删除用户 Anne 和 Leo。

    有关详细过程,请参见 RAM 用户指南中用户删除RAM用户部分。

    为了确保您不再因存储而继续被收取费用,您还需要删除为本示例创建的对象和存储空间。


    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章
相似问题