天天看點

教程示例:控制存儲空間和檔案夾的通路權限

本教程示例詳細示範了如何控制使用者對 OSS 存儲空間和檔案夾的通路。在示例中,我們首先建立一個存儲空間和檔案夾,然後使用阿裡雲主賬号建立通路管理 (RAM) 使用者,并為這些使用者授予對所建立 OSS 存儲空間及檔案夾的增量權限。

https://www.atatech.org/articles/102865#0 存儲空間和檔案夾的基本概念

阿裡雲 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.pdf

、 

Development/ProjectA.docx

Development/ProjectB.docx

控制台通過對象的key推斷邏輯層次結構。當您建立對象的邏輯層次結構時,您可以管理對個别檔案夾的通路,如本教程後面描述的那樣。

在本教程開始之前,您還需要知道“根級”存儲空間内容的概念。假設 example-company 存儲空間包含以下對象:

  • Development/Alibaba Cloud.pdf
  • Development/ProjectA.docx
  • Development/ProjectB.docx
  • 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 沒有字首,是以顯示為根級别項。

教程示例:控制存儲空間和檔案夾的通路權限

https://www.atatech.org/articles/102865#1 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 檔案夾,控制台會将 

  • 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:

教程示例:控制存儲空間和檔案夾的通路權限

https://www.atatech.org/articles/102865#2 教程示例

本教程示例如下所示:

  • 建立一個存儲空間 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 要求存儲空間名全局唯一,是以您需要用自己的存儲空間名稱替換本教程中的存儲空間名。

https://www.atatech.org/articles/102865#3 示例準備

本示例使用阿裡雲主賬号建立 RAM 使用者。最初,這些使用者沒有任何權限。您将逐漸授予這些使用者執行特定 OSS 操作的權限。為了測試這些權限,您需要使用每個使用者的RAM賬号登入到控制台。當您作為主賬号所有者逐漸授予權限并作為 RAM 使用者測試權限時,您需要每次使用不同賬号進行登入和登出。您可以使用一個浏覽器來執行此測試。如果您可以使用兩個不同的浏覽器,則該測試過程用時将會縮短:一個浏覽器用于使用主賬号連接配接到阿裡雲控制台,另一個浏覽器用于使用 RAM 賬号進行連接配接。

要使用您的主賬号登入到阿裡雲控制台,請通路 

https://account.aliyun.com/login/login.htm

。 RAM 使用者不能使用相同的連結登入。他們必須使用 RAM 使用者登入連結。作為主賬号所有者,您可以向RAM使用者提供此連結。

說明:有關 RAM 的詳細資訊,請參見  使用 RAM 使用者賬号登入

https://www.atatech.org/articles/102865#4 為 RAM 使用者提供登入連結

  1. 使用主賬号登入  RAM 控制台
  2. 在左側導航欄中,單擊 概覽。
  3. 在 RAM使用者登入連結 後找到 URL。您将向 RAM 使用者提供此 URL,以便其使用 RAM 使用者名和密碼登入控制台。

https://www.atatech.org/articles/102865#5 步驟 1.建立存儲空間

在此步驟中,您可以使用主賬号登入到 OSS 控制台、建立存儲空間、将檔案夾(Development、Marketing、Private)添加到存儲空間中,并在每個檔案夾中上傳一個或兩個示例文檔。

1. 使用主賬号登入 

OSS 控制台
  1. 建立名為 example-company 的存儲空間。 

    有關詳細過程,請參見 OSS 控制台使用者指南 中的 

    建立存儲空間
  2. 将一個檔案上傳到存儲空間中。

    本示例假設您将檔案 oss-dg.pdf 上傳到存儲空間的根級别。您可以用不同的檔案名上傳自己的檔案。

    上傳檔案
  3. 添加名為 Development、Marketing 和 Private 的三個檔案夾。 建立檔案夾
  4. 将一個或兩個檔案上傳到每個檔案夾中。

    本例假設您将具有以下對象鍵的對象上傳到存儲空間中:

https://www.atatech.org/articles/102865#6 步驟 2.建立 RAM 使用者群組

在此步驟中,您使用 RAM 控制台将兩個 RAM 使用者 Anne 和 Leo 添加到主賬号中。您還将建立一個名為 Staff 的組,然後将這兩個使用者添加到該組中。

說明:在此步驟中,不要配置設定任何授予這些使用者權限的政策。在以下步驟中,您将逐漸為其授予權限。

有關建立 RAM 使用者的詳細過程,請參見 RAM 快速入門 中的 

建立 RAM 使用者

。請為每個 RAM 使用者建立登入密碼。

有關建立組的詳細過程,請參見 RAM 使用者指南 中的 

建立組

https://www.atatech.org/articles/102865#7 步驟 3.确認 RAM 使用者沒有任何權限

如果您使用兩個浏覽器,現在可以在另一個浏覽器中使用其中一個 RAM 使用者賬号登入到控制台。

  1. 打開 RAM 使用者登入連結,并用 Anne 或 Leo 的賬号登入到 RAM 控制台。
  2. 打開 OSS 控制台。 

    您發現控制台中沒有任何存儲空間,這意味着 Anne 不具有對存儲空間 example-company 的任何權限。 

    教程示例:控制存儲空間和檔案夾的通路權限

https://www.atatech.org/articles/102865#8 步驟 4.授予組級别權限

我們希望 Anne 和 Leo 都能執行以下操作:

  • 列出主賬号所擁有的所有存儲空間。

    為此,Anne 和 Leo 必須具有執行 oss:ListBuckets 操作的權限。

  • 列出 example-company 存儲空間中的根級别項、檔案夾和對象。

    為此,Anne 和 Leo 必須具有對 example-company 存儲空間執行 oss:ListObjects 操作的權限。

https://www.atatech.org/articles/102865#9 步驟 4.1.授予列出所有存儲空間的權限

在此步驟中,建立一個授予使用者最低權限的政策。憑借最低權限,使用者可列出主賬号所擁有的所有存儲空間。您還将此政策配置設定給 Staff 組,以便授予獲得主賬号擁有的存儲空間清單的組權限。

  1. 使用主賬号登入
  2. 建立政策 AllowGroupToSeeBucketListInConsole。
    1. 在左側導航窗格中,單擊 政策管理,然後單擊 建立授權政策。
    2. 單擊 空白模闆。
    3. 在 授權政策名稱 字段中,輸入 AllowGroupToSeeBucketListInConsole。
    4. 在 政策内容 字段中,複制并粘貼以下政策。

      json { "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. 控制台列出所有存儲空間。
    2. 單擊 example-company 存儲空間,然後單擊檔案頁籤。 

      此時将顯示一個消息框,表明您沒有相應的通路權限。

    教程示例:控制存儲空間和檔案夾的通路權限

https://www.atatech.org/articles/102865#10 步驟 4.2.授予列出存儲空間根級内容的權限

在此步驟中,您授予權限,允許所有使用者列出存儲空間 example-company 中的所有項目。當使用者在 OSS 控制台中單擊 example-company 時,能夠看到存儲空間中的根級别項。

教程示例:控制存儲空間和檔案夾的通路權限
  1. 用以下政策取代配置設定給 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 操作。
  2. 測試更新的權限。
    1. 控制台列出所有根級别項。 
      教程示例:控制存儲空間和檔案夾的通路權限
    2. 單擊任何檔案夾或對象 oss-dg.pdf。 

https://www.atatech.org/articles/102865#11 組政策摘要

添加組政策的最終結果是授予 RAM 使用者 Anne 和 Leo 以下最低權限:

  • 檢視 example-company 存儲空間中的根級别項。

然而,他們可以進行的操作仍然有限。在以下部分中,我們将授予使用者以下特定權限:

  • 允許 Anne 在 Development 檔案夾中擷取和放入對象。
  • 允許 Bob 在 Finance 檔案夾中擷取和放入對象。

對于使用者特定的權限,您需要将政策配置設定給特定使用者,而非配置設定給組。以下部分授予 Anne 在 Development 檔案夾中操作的權限。您可以重複這些步驟,授予 Leo 在 Finance 檔案夾中進行類似操作的權限。

https://www.atatech.org/articles/102865#12 步驟 5.授予 RAM 使用者 Anne 特定權限

在此步驟中,我們向 Anne 授予額外的權限,使她可以看到 Development 檔案夾的内容,并将對象放入檔案夾中。

https://www.atatech.org/articles/102865#13 步驟 5.1.授予 RAM 使用者 Anne 權限以列出 Development 檔案夾内容

若要 Anne 能夠列出 Development 檔案夾内容,您必須為其配置設定政策。該政策必須能夠授予其對 example-company 存儲空間執行 oss:ListObjects 操作的權限,還必須包括要求使用者在請求中指定字首 

Development/

 的條件。

1. 建立政策 AllowListBucketsIfSpecificPrefixIsIncluded,授予 RAM 使用者 Anne 權限以列出 Development 檔案夾内容。

1. 在左側導航窗格中,單擊 政策管理,然後單擊 建立授權政策。

2. 單擊 <strong>空白模闆</strong>。

3. 在 <strong>授權政策名稱</strong> 字段中,輸入 <strong>AllowListBucketsIfSpecificPrefixIsIncluded</strong>。

4. 在 <strong>政策内容</strong> 字段中,複制并粘貼以下政策。

```json
{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:ListObjects"
      ],
      "Resource": [
        "acs:oss:*:*:example-company"
      ],
      "Condition": {
        "StringLike": {
          "oss:Prefix": [
            "Development/*"
          ]
        }
      }
    }
  ]
}
```
           
  1. 将政策配置設定給 RAM 使用者 Anne。

    有關配置設定政策的詳細過程,請參見 RAM 快速入門 中的 

  2. 測試 Anne 的權限。
    1. 打開 RAM 使用者登入連結,并用 Anne 的賬号登入到 RAM 控制台。
    2. 教程示例:控制存儲空間和檔案夾的通路權限
    3. 單擊 Development/ 檔案夾。 

      控制台列出檔案夾中的對象。 

      教程示例:控制存儲空間和檔案夾的通路權限

https://www.atatech.org/articles/102865#14 步驟 5.2 授予 RAM 使用者 Anne 在 Development 檔案夾中擷取和放入對象的權限。

若要 Anne 能夠在 Development 檔案夾中擷取和放入對象,您必須授予她調用 oss:GetObject 和 oss:PutObject 操作的權限,包括使用者必須在請求中指定字首 Development/ 的條件。

  1. 用以下政策取代您在之前步驟中建立的政策 AllowListBucketsIfSpecificPrefixIsIncluded。  的 修改自定義授權政策 部分。注意,您最多可對 RAM 政策進行五次修改。如果超過五次,您需要删除該政策并建立一個新的政策,然後再次将新政策配置設定給使用者。
    {
      "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 操作。
  2. 測試更新的政策。
    1. 在 OSS 控制台中,确認 Anne 現在可以在 Development 檔案夾中添加對象并下載下傳對象。

https://www.atatech.org/articles/102865#15 步驟 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/*",
            ""
          ]
        }
      }
    }
  ]
}
           

https://www.atatech.org/articles/102865#16 步驟 6.授予 RAM 使用者 Leo 特定權限

現在,您希望授予 Leo 通路 Marketing 檔案夾的權限。請遵循之前用于向 Anne 授予權限的步驟,但應将 Development 檔案夾替換為 Marketing 檔案夾。有關詳細過程,請參見步驟 5:授予 RAM 使用者 Anne 特定權限。

https://www.atatech.org/articles/102865#17 步驟 7.確定 Private 檔案夾安全

在本例中,您僅擁有兩個使用者。您在組級别授予兩個使用者所有所需的最小權限,隻有當您真正需要單個使用者級别上的權限時,才授予使用者級别權限。此方法有助于最大限度地減少管理權限的工作量。随着使用者數量的增加,我們希望確定不意外地授予使用者對 Private 檔案夾的權限。是以,我們需要添加一個顯式拒絕通路 Private 檔案夾的政策。顯式拒絕政策會取代任何其他權限。若要確定 Private 檔案夾保持私有,可以向組政策添加以下兩個拒絕語句:

  • 添加以下語句以顯式拒絕對 Private 檔案夾 (example-company/Private/*) 中的資源執行任何操作。

    json { "Effect": "Deny", "Action": [ "oss:*" ], "Resource": [ "acs:oss:*:*:example-company/Private/*" ], "Condition": {} } 

  • 您還要在請求指定了 Private/ prefix 時拒絕執行 ListObjects 操作的權限。在控制台中,如果 Anne 或 Leo 單擊 Private 檔案夾,則此政策将導緻 OSS 傳回錯誤響應。

    json { "Effect": "Deny", "Action": [ "oss:ListObjects" ], "Resource": [ "acs:oss:*:*:*" ], "Condition": { "StringLike": { "oss:Prefix": [ "Private/" ] } } } 

用包含前述拒絕語句的更新政策取代 Staff 組政策 AllowGroupToSeeBucketListInConsole。在應用更新政策後,組中的任何使用者都不能通路您的存儲空間中的 Private 檔案夾。

  1. 用以下政策取代配置設定給 Staff 組的現有政策 AllowGroupToSeeBucketListInConsole。請用您的存儲空間名替換政策資源中的 example-company。  的 修改自定義授權政策 部分。注意,您最多可對 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": [
            "/"
          ]
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "oss:*"
      ],
      "Resource": [
        "acs:oss:*:*:example-company/Private/*"
      ],
      "Condition": {}
    },
    {
      "Effect": "Deny",
      "Action": [
        "oss:ListObjects"
      ],
      "Resource": [
        "acs:oss:*:*:*"
      ],
      "Condition": {
        "StringLike": {
          "oss:Prefix": [
            "Private/"
          ]
        }
      }
    }
    ]
    }
               

https://www.atatech.org/articles/102865#18 清理

要進行清理,您需要在 RAM 控制台中删除使用者 Anne 和 Leo。有關詳細過程,請參見 RAM 使用者指南中

使用者

的删除 RAM 使用者部分。

為了確定您不再因存儲而繼續被收取費用,您還需要删除為本示例建立的對象和存儲空間。