天天看點

賦予RAM子使用者通路OSS的某個檔案夾的權限政策

要給某個子使用者通路某個目錄的檔案的權限怎麼設計呢?

比如:bucket名稱是loveos,loveos下面有目錄user,這user目錄下面又有子目錄ava

那我要讓子使用者隻能通路這個ava檔案夾,可以在這個ava檔案夾裡面上傳、下載下傳,删除等各種操作,這個要怎麼實作呢?

思路:首先建立一個子使用者賬号,然後再設計一個權限政策,再把設計好的權限授權給該使用者。

實施步驟:

首先我們要打開RAM通路控制

https://ram.console.aliyun.com/overview 可以在裡面根據提示先建立子使用者,使用者建好後建立一個權限政策,方法如下圖:
賦予RAM子使用者通路OSS的某個檔案夾的權限政策
起一個政策的名稱,名稱和描述都可随意寫,配置模式選“腳本配置”,如下圖:
賦予RAM子使用者通路OSS的某個檔案夾的權限政策
腳本代碼我也貼出來,供參考:

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "oss:*",
            "Resource": "acs:oss:*:*:loveos/user/ava/*"
        },
        {
            "Effect": "Allow",
            "Action": "oss:ListObjects",
            "Resource": "acs:oss:*:*:loveos",
            "Condition": {
                "StringLike": {
                    "oss:Prefix": [
                        "",
                        "user/",
                        "user/ava/",
                        "user/ava/*"
                    ]
                },
                "StringEquals": {
                    "oss:Delimiter": "/"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "oss:ListBuckets"
            ],
            "Resource": "acs:oss:*:*:*"
        }
    ],
    "Version": "1"
}           

這個政策已在“OSS控制台用戶端”上登陸測試通過,被授權的子使用者,可以在ava檔案夾内進行上傳、下載下傳、删除檔案等操作,但不允許删除檔案夾,如果讓删除,可把下面的代碼去掉就可以了。

"StringEquals": {
                    "oss:Delimiter": "/"
                }           

溫馨提示:删除了這段代碼,前面那個“逗号”也就不需要了,跟着删除即可,要不文法會報錯的。

很簡單的代碼,抛磚引玉,寫出來友善自己以後查閱,也供有需要的朋友做個參考。

繼續閱讀