日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用RAMPolicy控制OSS的訪問權(quán)限

本教程示例詳細(xì)演示了如何使用RAM Policy控制用戶對OSS存儲空間(Bucket)、文件夾以及文件夾下文件(Object)的訪問權(quán)限。

背景信息

RAM Policy是基于用戶的授權(quán)策略。通過設(shè)置RAM Policy,您可以集中管理您的用戶(例如員工、系統(tǒng)或應(yīng)用程序),以及控制用戶可以訪問您名下哪些資源的權(quán)限,例如限制您的用戶只擁有對某一個Bucket的讀權(quán)限。

RAM Policy為JSON格式。各字段定義如下:

  • Statement:授權(quán)語句,一個權(quán)限策略可以有多條授權(quán)語句。

  • Effect:授權(quán)效力,包括允許(Allow)和拒絕(Deny)兩種。

    說明

    當(dāng)權(quán)限策略中既有Allow又有Deny的授權(quán)語句時,遵循Deny優(yōu)先的原則。

  • Action:對具體資源的操作權(quán)限。

如果您選擇使用RAM Policy,建議您通過官方工具RAM策略編輯器快速生成RAM策略。

相比于RAM Policy,Bucket Policy支持在控制臺直接進(jìn)行圖形化配置操作,并且Bucket擁有者可以直接進(jìn)行授權(quán)訪問。更多信息,請參見使用Bucket Policy授權(quán)其他用戶訪問OSS資源。

存儲空間和文件夾的基本概念

阿里云OSS的數(shù)據(jù)模型為扁平型結(jié)構(gòu),所有文件都直接隸屬于其對應(yīng)的存儲空間。因此,OSS缺少文件系統(tǒng)中類似于目錄與子文件夾的層次結(jié)構(gòu)。但是,您可以在OSS控制臺上模擬文件夾層次結(jié)構(gòu)。在該控制臺中,您可以按文件夾對相關(guān)文件進(jìn)行分組、分類和管理,如下圖所示。ram

OSS提供使用鍵值(key)對格式的分布式對象存儲服務(wù)。您可以根據(jù)其唯一的key(對象名)檢索對象的內(nèi)容。例如,名為examplebucket的存儲空間有三個文件夾,分別為Development、MarketingPrivate,以及一個對象oss-dg.pdf。

  • 在創(chuàng)建Development文件夾時,控制臺會創(chuàng)建一個key為Development/的對象,文件夾的key包括分隔符/。

  • 當(dāng)您將名為ProjectA.docx 的對象上傳到Development 文件夾中時,控制臺會上傳該對象并將其key設(shè)置為Development/ProjectA.docx

    在該key中,Development為前綴,而/為分隔符。您可以從存儲空間中獲取具有特定前綴和分隔符的所有對象的列表。在控制臺中,單擊Development 文件夾時,控制臺會列出文件夾中的對象,如下圖所示。

    development

    說明

    當(dāng)控制臺列舉examplebucket存儲空間中的 Development文件夾時,它會向OSS發(fā)送一個用于指定前綴 Development和分隔符/的請求。因此,存儲空間examplebucket有三個對象,其key分別為Development/Alibaba Cloud.pdf、Development/ProjectA.docxDevelopment/ProjectB.docx。

在本教程開始之前,您還需要了解根級存儲空間內(nèi)容的概念。假設(shè)examplebucket存儲空間包含以下對象:

  • Development/Alibaba Cloud.pdf

  • Development/ProjectA.docx

  • Development/ProjectB.docx

  • Marketing/data2020.xlsx

  • Marketing/data2021.xlsx

  • Private/2017/images.zip

  • Private/2017/promote.pptx

  • oss-dg.pdf

這些對象的key構(gòu)建了一個以Development、MarketingPrivate作為根級文件夾并以oss-dg.pdf作為根級對象的邏輯層次結(jié)構(gòu)。當(dāng)您單擊OSS控制臺中的存儲空間名時,控制臺會將一級前綴和一個分隔符,例如Development/、Marketing/Private/顯示為根級文件夾。對象oss-dg.pdf沒有前綴,因此顯示為根級別項。

ram

OSS的請求和響應(yīng)邏輯

在授予RAM用戶相關(guān)權(quán)限之前,您需要了解單擊某個存儲空間的名字時控制臺向OSS發(fā)送請求、OSS返回響應(yīng),以及控制臺如何解析該響應(yīng)的邏輯。

  • 請求某個存儲空間

    單擊examplebucket存儲空間時,控制臺會將GetBucket (ListObjects)請求發(fā)送至OSS。

    • 請求示例

      GET /?prefix=&delimiter=/ HTTP/1.1
      Host: examplebucket.oss-cn-hangzhou.aliyuncs.com
      Date: Fri, 24 Feb 2012 08:43:27 GMT
      Authorization: OSS qn6q*******************:DNrn******************

      此請求包括prefix和delimiter參數(shù),其中prefix的值為空字符串,delimiter的值為正斜線(/)。

    • 響應(yīng)示例

      HTTP/1.1 200 OK
      x-oss-request-id: 534B371674E88A4D8906****
      Date: Fri, 7 Aug 2020 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>examplebucket</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>
    • 控制臺解析

      控制臺會解析此結(jié)果并顯示如下的根級別項:

      ram

  • 請求存儲空間下的某個文件夾

    單擊Development/文件夾,控制臺會將GetBucket (ListObjects)請求發(fā)送至OSS。此請求包括以下參數(shù):

    • 請求示例

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

      此請求包括prefix和delimiter參數(shù),其中prefix的值為Development/,delimiter的值為正斜線(/)。

    • 響應(yīng)示例

      作為響應(yīng),OSS返回以指定前綴開頭的key:

      HTTP/1.1 200 OK
      x-oss-request-id: 534B371674E88A4D8906****
      Date: Fri, 7 Aug 2020 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>examplebucket</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>
          <Contents>
              <Key>Alibaba Cloud.pdf</Key>
              ...
          </Contents>
      </ListBucketResult>
    • 控制臺解析

      控制臺會解析此結(jié)果并顯示如下的key:

      development

場景示例

假設(shè)您是目標(biāo)存儲空間examplebucket的Owner,且該Bucket下所有的文件或目錄讀寫權(quán)限ACL默認(rèn)為私有?,F(xiàn)在,您希望授予RAM用戶Anne訪問該Bucket下文件夾Development及其子文件夾和文件的讀寫權(quán)限,RAM用戶Leo訪問文件夾Marketing及其子文件夾和文件的只讀權(quán)限,以及當(dāng)前阿里云賬號下的所有RAM用戶均無權(quán)訪問文件夾Private的權(quán)限。

步驟一:創(chuàng)建存儲空間并上傳文件

  1. 創(chuàng)建存儲空間examplebucket。

    1. 使用阿里云賬號登錄OSS控制臺。

    2. 創(chuàng)建名為examplebucket的存儲空間。具體操作,請參見創(chuàng)建存儲空間。

  2. 創(chuàng)建目錄Development、MarketingPrivate。具體操作,請參見創(chuàng)建目錄

  3. 按如下要求將文件上傳至指定路徑。

    • 將oss-dg.pdf文件上傳至examplebucket的根目錄。

    • 將文件Alibaba Cloud.pdf、ProjectA.docx以及ProjectB.docx上傳至Development目錄。

    • 將文件data2020.xlsx和data2021.xlsx上傳至Marketing目錄。

    • 將文件images.zip和promote.pptx上傳至Private目錄。

    具體操作,請參見上傳文件。

步驟二:創(chuàng)建RAM用戶Anne和Leo

通過RAM控制臺創(chuàng)建RAM用戶Anne和Leo為例。關(guān)于創(chuàng)建RAM用戶的具體操作,請參見創(chuàng)建RAM用戶

步驟三:授予RAM用戶Anne擁有文件夾Development的讀寫權(quán)限

  1. 創(chuàng)建自定義權(quán)限策略AllowAnneToReadAndWriteFolderDevelopment

    1. 在左側(cè)導(dǎo)航欄,選擇權(quán)限管理 > 權(quán)限策略。

    2. 權(quán)限策略頁面,單擊創(chuàng)建權(quán)限策略

    3. 創(chuàng)建權(quán)限策略頁面,單擊腳本編輯頁簽。

    4. 輸入以下權(quán)限策略內(nèi)容,然后單擊繼續(xù)編輯基本信息。

      以下策略用于授予RAM用戶Anne擁有文件夾Development及文件夾下所有文件的讀寫權(quán)限。

      {
          "Version":"1",
          "Statement":[
              {
                  "Effect":"Allow",
                  "Action":[
                      "oss:ListObjects"
                  ],
                  "Resource":[
                      "acs:oss:*:*:examplebucket"
                  ],
                  "Condition":{
                      "StringLike":{
                          "oss:Prefix":[
                              "Development",
                              "Development/*"
                          ]
                      }
                  }
              },
              {
                  "Effect":"Allow",
                  "Action":[
                      "oss:GetObject",
                      "oss:PutObject",
                      "oss:GetObjectAcl"
                  ],
                  "Resource":[
                      "acs:oss:*:*:examplebucket/Development/*"
                  ]
              }
          ]
      }
    5. 輸入權(quán)限策略名稱備注。

    6. 單擊確定。

  2. 為RAM用戶Anne添加自定義權(quán)限策略AllowAnneToReadAndWriteFolderDevelopment。具體操作,請參見為RAM用戶授權(quán)。

步驟四:授予RAM用戶Leo擁有文件夾Marketing的只讀權(quán)限

參見步驟三創(chuàng)建自定義權(quán)限策略AllowLeoToReadAndWriteFolderMarketing,并授予RAM用戶Leo只讀訪問文件夾Marketing及文件夾下所有文件的權(quán)限。其策略內(nèi)容配置如下:

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "oss:ListObjects"
            ],
            "Resource":[
                "acs:oss:*:*:examplebucket"
            ],
            "Condition":{
                "StringLike":{
                    "oss:Prefix":[
                        "Marketing",
                        "Marketing/*"
                    ]
                }
            }
        },
        {
            "Effect":"Allow",
            "Action":[
                "oss:GetObject",
                "oss:GetObjectAcl"
            ],
            "Resource":[
                "acs:oss:*:*:examplebucket/Marketing/*"
            ]
        }
    ]
}

步驟5:拒絕當(dāng)前阿里云賬號下的所有RAM用戶訪問Private文件夾

  1. 創(chuàng)建用戶組并添加用戶組成員。

    創(chuàng)建用戶組的具體操作,請參見創(chuàng)建RAM用戶組。用戶組創(chuàng)建完成后,將當(dāng)前阿里云賬號下的所有RAM用戶添加到該用戶組。具體操作,請參見為RAM用戶組添加RAM用戶。

  2. 創(chuàng)建自定義權(quán)限策略DenyAllRamToAccessFolderPrivate。

    1. 在左側(cè)導(dǎo)航欄,選擇權(quán)限管理 > 權(quán)限策略。

    2. 權(quán)限策略頁面,單擊創(chuàng)建權(quán)限策略。

    3. 輸入以下權(quán)限策略內(nèi)容,然后單擊繼續(xù)編輯基本信息。

      以下策略用于授予當(dāng)前阿里云賬號下的所有RAM用戶拒絕訪問Private文件夾的權(quán)限。

      {
          "Version":"1",
          "Statement":[
              {
                  "Effect":"Deny",
                  "Action":[
                      "oss:*"
                  ],
                  "Resource":[
                      "acs:oss:*:*:examplebucket/Private/*"
                  ],
                  "Condition":{
      
                  }
              },
              {
                  "Effect":"Deny",
                  "Action":[
                      "oss:ListObjects"
                  ],
                  "Resource":[
                      "acs:oss:*:*:*"
                  ],
                  "Condition":{
                      "StringLike":{
                          "oss:Prefix":[
                              "Private/",
                              "Private/*"
                          ]
                      }
                  }
              }
          ]
      }
    4. 輸入權(quán)限策略名稱備注

    5. 單擊確定。

  3. 為用戶組添加自定義權(quán)限策略DenyAllRamToAccessFolderPrivate。具體操作,請參見為RAM用戶組授權(quán)。

    添加權(quán)限策略后,用戶組中的任何RAM用戶都不能訪問您存儲空間examplebucket中的文件夾Private,且當(dāng)RAM用戶請求列舉Private文件夾下的Private/2017/images.zip、Private/2017/promote.pptx文件時,OSS也將返回錯誤響應(yīng)。