全部產品
Search
文件中心

Hologres:Hologres RAM角色授權模式

更新時間:Aug 20, 2024

本文為您介紹如何使用角色SSO的方式訪問Hologres。

背景資訊

阿里雲支援企業使用者通過在阿里雲控制台輸入帳號、密碼後登入阿里雲來管理和使用雲資源。隨著企業安全監管要求的日益嚴格,部分企業更願意通過角色登入(Role Base_SSO)的方式登入阿里雲。詳情請參見SAML角色SSO概覽

適用情境

一般情況下,對於阿里雲企業使用者,需要使用者通過在阿里雲控制台輸入帳號、密碼後登入阿里雲來管理和使用雲資源。但是隨著企業安全監管要求的日益嚴格,希望集中管理登入鑒權資訊,企業往往會選擇單點登入(SSO)的方式登入應用。SSO是指在多個應用系統中,使用者只需要登入一次,就可以訪問所有相互信任的應用系統。現在Hologres支援基於角色的SSO登入模式,詳情請參見SAML角色SSO概覽。基於該功能,您可以使用企業帳號,扮演RAM角色訪問Hologres執行個體。具體的存取權限由RAM角色控制。一個調用的範例如下。適用情境

  1. 使用者使用瀏覽器在Idp的登入頁面中選擇阿里雲作為目標服務。

    例如:如果企業IdP使用AD FS(Microsoft Active Directory Federation Service),則登入URL為:https://ADFSServiceName/adfs/ls/IdpInitiatedSignOn.aspx。

    說明

    有些IdP會要求使用者先登入,再選擇代表阿里雲的SSO應用。

  2. IdP產生一個SAML響應並返回給瀏覽器。

  3. 瀏覽器重新導向到SSO服務頁面,並轉寄SAML響應給SSO服務。

  4. SSO服務使用SAML響應向阿里雲STS服務要求臨時安全憑證,並產生一個可以使用臨時安全憑證登入阿里雲控制台的URL。

    說明

    如果SAML響應中包含映射到多個RAM角色的屬性,系統將會首先提示使用者選擇一個用於訪問阿里雲的角色。

  5. SSO服務將URL返回給瀏覽器。

  6. 瀏覽器重新導向到該URL,以指定RAM角色登入到阿里雲控制台,使用者使用企業賬戶扮演RAM角色登入Hologres執行個體。

Hologres支援的使用者訪問方式

Hologres支援如下兩種訪問方式:

  • 通過雲帳號(阿里雲帳號或RAM使用者)訪問Hologres。

    您可以通過輸入帳號、密碼的方式登入阿里雲管理主控台,並以當前登入帳號的身份使用Hologres。此時,阿里雲帳號將成為Hologres某個執行個體的成員,擁有Hologres產品的使用許可權。

  • 通過RAM角色SSO的方式登入Hologres。

    您也可以通過角色SSO的方式(SAML角色SSO概覽)登入阿里雲,並使用Hologres。此時,阿里雲存取控制角色(RAM Role)將成為Hologres某個執行個體的成員,扮演該RAM Role的使用者將擁有和雲帳號類成員同樣的產品使用許可權。RAM角色的描述,詳情請參見RAM角色概覽

對於Hologres來說,RAM角色(RAM Role)和阿里雲帳號(包括主帳號和RAM使用者)是同等地位的帳號。因此,對於Hologres來說,RAM角色就是一個普通的可登入帳號。Superuser需要對這個RAM角色(而不是背後的雲帳號)進行授權來賦予這個RAM角色許可權(SELECT/INSERT/UPDATE等),這個RAM角色才能在許可權範圍內使用Hologres。

RAM角色SSO(STS)介紹

通過RAM角色SSO的方式登入並訪問Hologres是基於阿里雲STS服務實現的。阿里雲STS(Security Token Service)是為阿里雲帳號(或RAM使用者)提供短期存取權限管理的雲端服務。通過STS,您可以為使用者(您的本地帳號系統所管理的使用者)頒發一個自訂時效和存取權限的訪問憑證。使用者可以使用STS短期訪問憑證直接連接Hologres並訪問被授權的資源。

使用STS Token有以下優勢:

  • 減少了帳號AccessKey ID和AccessKey Secret泄露的風險,只需要產生一個臨時訪問憑證給使用者使用即可。

  • 能使用靈活的許可權控制,STS Token有一定的時間期限,不需要關心許可權撤銷問題,臨時訪問憑證到期後會自動失效。

步驟一:建立RAM角色

登入存取控制,建立RAM角色。當前可信實體類型,可以選擇阿里雲帳號或者身份供應商。

通過RAM使用者扮演角色並添加許可權

如果需要通過RAM使用者來扮演RAM角色並基於阿里雲控制台切換身份方式扮演該角色,請登入存取控制,建立RAM角色。當前可信實體類型,可以選擇阿里雲帳號

  1. 建立可信實體類型為阿里雲帳號的RAM角色。

    1. 登入存取控制,在左側導覽列,單擊身份管理>角色

    2. 角色頁面,單擊建立角色,當前可信實體類型選擇阿里雲帳號

    3. 單擊下一步,配置角色名稱,並選擇當前雲帳號

    4. 單擊完成,頁面提示角色建立成功完成建立。

  2. 建立並添加權限原則。

    1. 在RAM角色管理列表頁,單擊目標角色名稱,進入角色資訊詳情頁。

    2. 選擇信任策略頁簽,單擊編輯信任策略修改信任策略為如下指令碼內容。

      • 參數說明

        在策略配置時,您需要將如下指令碼中的acs:ram::主帳號ID:root資訊中的主帳號ID,替換為需要授權的帳號資訊。請前往使用者資訊頁面,擷取帳號ID。

      • 指令碼配置

        {
            "Statement": [
                {
                    "Action": "sts:AssumeRole",
                    "Effect": "Allow",
                    "Principal": {
                        "RAM": [
                            "acs:ram::主帳號ID:root"
                        ]
                    }
                },
                {
                    "Action": "sts:AssumeRole",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": [
                            "dataworks.aliyuncs.com"
                        ]
                    }
                }
            ],
            "Version": "1"
        }
    3. 單擊儲存信任策略,完成權限原則配置。

  3. 建立RAM使用者並授予角色許可權。

    通過RAM使用者來扮演RAM角色,需要建立一個RAM使用者並授予扮演角色的許可權。

    1. 登入存取控制,在左側導覽列選擇身份管理 > 使用者

    2. (可選,如果您已經存在RAM使用者,可跳過該步驟。)單擊建立使用者,可一次性建立多個RAM使用者。建立RAM使用者詳情請參見建立RAM使用者

    3. 單擊目標RAM使用者操作列的添加許可權

    4. 添加許可權頁面,為已建立的RAM使用者添加AliyunSTSAssumeRoleAccess許可權,擷取調用STS服務AssumeRole介面的許可權。設定STS許可權

    5. 單擊確定,完成角色設定。

通過IDP身份供應商帳號來扮演角色並添加許可權

如果需要通過本地IDP身份供應商帳號登入至阿里雲扮演RAM角色,請登入存取控制,建立RAM角色。當前可信實體類型,可以選擇身份供應商

  1. 建立可信實體類型為身份供應商的RAM角色。

    1. 登入存取控制在左側導覽列,單擊身份管理 > 角色

    2. 角色頁面,單擊建立角色,當前可信實體類型選擇身份供應商

    3. 單擊下一步,配置角色名稱備忘

    4. 選擇身份供應商類型選擇身份供應商並查看限制條件後,單擊完成,頁面提示角色建立成功完成建立。

  2. 建立並添加權限原則。

    1. 在角色列表頁,單擊目標角色名稱,進入角色資訊詳情頁。

    2. 選擇信任策略頁簽,單擊編輯信任策略,修改新任策略為如下指令碼內容。

      • 參數說明

        在策略配置時,您需要將如下指令碼中的acs:ram::主帳號ID:saml-provider/IDP資訊中的主帳號ID,替換為需要授權的帳號資訊。請前往使用者資訊頁面,擷取帳號ID。

      • 指令碼配置

        "Statement": [
                {
                    "Action": "sts:AssumeRole",
                    "Condition": {
                        "StringEquals": {
                            "saml:recipient": "https://signin.aliyun.com/saml-role/sso"
                        }
                    },
                    "Effect": "Allow",
                    "Principal": {
                        "Federated": [
                            "acs:ram::主帳號ID:saml-provider/IDP"
                        ]
                    }
                },
                {
                    "Action": "sts:AssumeRole",
                    "Effect": "Allow",
                    "Principal": {
                        "Service": [
                            "dataworks.aliyuncs.com"
                        ]
                    }
                }
            ],
            "Version": "1"
        }
        }
    3. 單擊儲存信任策略,完成權限原則配置。

步驟二:添加RAM角色至Hologres執行個體並授權

RAM角色需要有Hologres執行個體的開發許可權,才能在許可權範圍內使用Hologres。由於RAM角色預設沒有Hologres管控台的查看和操作執行個體的許可權,因此需要主帳號完成RAM相關許可權授予才能進行後續操作。具體操作,請參見授予RAM使用者權限。添加RAM角色至Hologres執行個體,您可以通過如下方式進行授權。

  1. 登入Hologres管理主控台進行授權。

    1. 在左側導覽列選擇進入執行個體列表頁面,單擊需要授權的執行個體,在使用者管理頁簽找到RAM角色並新增使用者至執行個體。

    2. DB管理頁簽,為該RAM使用者授予具體的執行個體開發許可權。

  2. 通過SQL方式授權。

    您可以通過SQL方式進行授權,具體請參見許可權管理概述

  3. 若是通過RAM使用者扮演RAM角色,RAM角色預設沒有Hologres管理主控台的許可權,需要主帳號給RAM使用者在存取控制頁面授予AliyunRAMReadOnlyAccess許可權,否則RAM角色無法在Hologres管理主控台進行任何操作。詳情請參見文檔授予RAM使用者權限

步驟三:登入阿里雲並使用Hologres

當您完成授權之後,使用者就可以扮演user-role角色登入並使用Hologres。

  1. 登入阿里雲。使用者可以扮演RAM角色user-role,登入至阿里雲控制台。

  2. 登入Hologres管理主控台,進行執行個體管理和監控。

  3. Hologres管理主控台單擊登入Hologres資料庫,進入HoloWeb,進行Hologres結構設計和資料開發。具體操作請參見串連HoloWeb並執行查詢