全部產品
Search
文件中心

:為RAM使用者配置許可權

更新時間:Nov 01, 2024

阿里雲許可權管理機制包括存取控制和臨時安全性權杖,可以根據需求使用不同許可權的RAM使用者來訪問Intelligent Media Management服務,也支援為使用者提供訪問的臨時授權。使用RAM和STS能極大地提高管理的靈活性和安全性。

背景資訊

RAM和STS解決的一個核心問題是如何在不暴露阿里雲帳號的AccessKey的情況下安全地授權其他人訪問。因為阿里雲帳號的AccessKey泄露會帶來極大的安全風險,其他人可以隨意操作該帳號下所有的資源、盜取重要訊息等。

  • RAM

    • 存取控制(RAM)是阿里雲提供的系統管理使用者身份與資源存取權限的服務。RAM允許在一個阿里雲帳號下建立並管理多個身份,並允許給單個身份或一組身份分配不同的許可權,從而實現不同使用者擁有不同資源存取權限的目的。更多資訊,請參見什麼是存取控制

    • RAM提供了一種長期有效許可權控制機制,通過分出不同許可權的RAM使用者,將不同的許可權分給不同的使用者,即使RAM使用者的AccessKey泄露也不會造成全域的資訊泄露。RAM使用者一般情況也是長期有效。因此RAM使用者的AccessKey也不能泄露。

  • STS

    • 阿里雲臨時安全性權杖(Security Token Service,STS)是阿里雲提供的一種臨時存取權限管理服務。通過STS服務,您所授權的身份主體(RAM使用者或RAM角色)可以擷取一個自訂時效和存取權限的臨時存取權杖。更多資訊,請參見什麼是STS

    • 相對於RAM提供的長效控制機制,STS提供的是一種臨時訪問授權,通過STS可以擷取臨時的AccessKey和Token,這些資訊可以直接發給臨時使用者用來訪問Intelligent Media Management。一般來說,從STS擷取的許可權會受到更加嚴格的限制,並且擁有時間限制,因此即使這些資訊泄露,對於系統的影響也很小。

配置RAM使用者權限

為了資料安全和更好的許可權控制,建議使用RAM使用者訪問Intelligent Media Management。

  1. 建立RAM使用者。具體操作,請參見建立RAM使用者

  2. 為RAM使用者授權,根據實際配置RAM使用者的許可權。具體操作,請參見為RAM使用者授權

    • 如果需要管理Intelligent Media Management,例如建立專案等,請授予RAM使用者AliyunIMMFullAccess許可權。

    • 如果唯讀訪問Intelligent Media Management,例如查看專案等,請授予RAM使用者AliyunIMMReadOnlyAccess許可權。

  3. 為RAM使用者佈建多因素認證。具體操作,請參見為RAM使用者啟用多因素認證

配置臨時使用者權限

  1. 建立臨時角色及授權。

    1. 建立可信實體為阿里雲帳號的RAM角色。具體操作,請參見建立可信實體為阿里雲帳號的RAM角色

    2. 建立自訂策略。具體操作,請參見建立自訂權限原則

      說明

      如果需要更精細的許可權控制,您可以自訂策略的許可權。更多資訊,請參見Intelligent Media Management自訂權限原則參考

    3. 為臨時角色授權。具體操作,請參見為RAM角色授權

  2. 臨時授權訪問。

    1. 建立自訂策略。具體操作,請參見建立自訂權限原則

    2. 授權RAM使用者臨時角色。具體操作,請參見為RAM使用者授權

  3. 從STS擷取的臨時訪問憑證。具體操作,請參見AssumeRole - 擷取扮演角色的臨時身份憑證

  4. 使用臨時授權讀寫資料。

    您可以使用臨時授權調用不同語言的SDK訪問Intelligent Media Management。Java SDK請參考以下方式建立IAcsClient對象,傳入從STS擷取的AccessKeyId、AccessKeySecret和SecurityToken等參數。

    DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", stsAccessKeyId, stsAccessKeySecret, stsToken);
    IAcsClient client = new DefaultAcsClient(profile);

自訂RAM Policy

通過自訂RAM Policy實現使用者權限控制,主要配置如下表所示。

參數

說明

Effect

是否允許使用者操作。可選值如下:

  • Allow:允許

  • Deny:拒絕

Action

Intelligent Media Management對外提供的API操作。格式為imm:<action>,例如imm:CreateOfficeConversionTask。Action列表的更多資訊,請參見API概覽

Resource

Intelligent Media Management目前只有Project一種資源,格式為acs:imm:<region-id>:<uid>:project/<project>acs:imm:<region-id>:<uid>:project/<project>/dataset/<dataset>,例如acs:imm:cn-shanghai:150910xxxxxxxxxx:project/imm-test-doc-projacs:imm:cn-shanghai:150910xxxxxxxxxx:project/imm-test-photos/dataset/dataset1。相關參數說明如下:

更多關於權限原則的資訊,請參見建立自訂策略

常見授權樣本

完全授權

RAM Policy將允許使用者訪問使用Intelligent Media Management的所有功能,範例程式碼如下。

{
    "Version": "1",
    "Statement": [
        {
            "Action": "imm:*",
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

授權通配

RAM Policy支援萬用字元*,可以實現大量授權。

如下範例程式碼表示允許使用者調用所有地區以imm-test-doc開頭的Project下的可讀操作。

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["imm:List*", "imm:Get*"],
            "Resource": "acs:imm:*:150910xxxxxxxxxx:project/imm-test-doc*"
        }
    ],
    "Version": "1"
}        

授權特定Project的特定操作

如下範例程式碼表示授予使用者以下許可權:

授權特定資料集的特定操作

如下範例程式碼表示授予使用者以下許可權:

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["imm:ListDatasets"],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": ["imm:IndexFileMeta"],
            "Resource": "acs:imm:cn-shanghai:150910xxxxxxxxxx:project/imm-test-doc-proj/dataset/dataset1"
        },
        {
            "Effect": "Allow",
            "Action": ["imm:CreateFigureClusteringTask", "imm:CreateFigureClustersMergingTask"],
            "Resource": "acs:imm:cn-shanghai:150910xxxxxxxxxx:project/imm-test-media-proj/dataset/dataset1"
        }
    ],
    "Version": "1"
}