本文為您介紹如何使用角色SSO的方式訪問Hologres。
背景資訊
阿里雲支援企業使用者通過在阿里雲控制台輸入帳號、密碼後登入阿里雲來管理和使用雲資源。隨著企業安全監管要求的日益嚴格,部分企業更願意通過角色登入(Role Base_SSO)的方式登入阿里雲。詳情請參見SAML角色SSO概覽。
適用情境
一般情況下,對於阿里雲企業使用者,需要使用者通過在阿里雲控制台輸入帳號、密碼後登入阿里雲來管理和使用雲資源。但是隨著企業安全監管要求的日益嚴格,希望集中管理登入鑒權資訊,企業往往會選擇單點登入(SSO)的方式登入應用。SSO是指在多個應用系統中,使用者只需要登入一次,就可以訪問所有相互信任的應用系統。現在Hologres支援基於角色的SSO登入模式,詳情請參見SAML角色SSO概覽。基於該功能,您可以使用企業帳號,扮演RAM角色訪問Hologres執行個體。具體的存取權限由RAM角色控制。一個調用的範例如下。
使用者使用瀏覽器在Idp的登入頁面中選擇阿里雲作為目標服務。
例如:如果企業IdP使用AD FS(Microsoft Active Directory Federation Service),則登入URL為:https://ADFSServiceName/adfs/ls/IdpInitiatedSignOn.aspx。
說明有些IdP會要求使用者先登入,再選擇代表阿里雲的SSO應用。
IdP產生一個SAML響應並返回給瀏覽器。
瀏覽器重新導向到SSO服務頁面,並轉寄SAML響應給SSO服務。
SSO服務使用SAML響應向阿里雲STS服務要求臨時安全憑證,並產生一個可以使用臨時安全憑證登入阿里雲控制台的URL。
說明如果SAML響應中包含映射到多個RAM角色的屬性,系統將會首先提示使用者選擇一個用於訪問阿里雲的角色。
SSO服務將URL返回給瀏覽器。
瀏覽器重新導向到該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角色並授權訪問Hologres。
步驟一:建立RAM角色
登入存取控制,建立RAM角色。當前可信實體類型,可以選擇阿里雲帳號或者身份供應商。
如果需要通過阿里雲管理主控台切換身份方式扮演該角色,選擇阿里雲帳號類型的角色。具體操作請參見通過RAM使用者扮演角色並添加許可權。
如果需要通過本地IDP身份供應商帳號登入至阿里雲扮演該角色,選擇身份供應商類型的角色。具體操作請參見通過IDP身份供應商帳號來扮演角色並添加許可權。
通過RAM使用者扮演角色並添加許可權
如果需要通過RAM使用者來扮演RAM角色並基於阿里雲控制台切換身份方式扮演該角色,請登入存取控制,建立RAM角色。當前可信實體類型,可以選擇阿里雲帳號。
建立可信實體類型為阿里雲帳號的RAM角色。
登入存取控制,在左側導覽列,單擊身份管理>角色。
在角色頁面,單擊建立角色,當前可信實體類型選擇阿里雲帳號。
單擊下一步,配置角色名稱,並選擇當前雲帳號。
單擊完成,頁面提示角色建立成功完成建立。
建立並添加權限原則。
在RAM角色管理列表頁,單擊目標角色名稱,進入角色資訊詳情頁。
選擇信任策略頁簽,單擊編輯信任策略修改信任策略為如下指令碼內容。
參數說明
在策略配置時,您需要將如下指令碼中的
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" }
單擊儲存信任策略,完成權限原則配置。
建立RAM使用者並授予角色許可權。
通過IDP身份供應商帳號來扮演角色並添加許可權
如果需要通過本地IDP身份供應商帳號登入至阿里雲扮演RAM角色,請登入存取控制,建立RAM角色。當前可信實體類型,可以選擇身份供應商。
建立可信實體類型為身份供應商的RAM角色。
登入存取控制在左側導覽列,單擊身份管理 > 角色。
在角色頁面,單擊建立角色,當前可信實體類型選擇身份供應商。
單擊下一步,配置角色名稱和備忘。
選擇身份供應商類型、選擇身份供應商並查看限制條件後,單擊完成,頁面提示角色建立成功完成建立。
建立並添加權限原則。
在角色列表頁,單擊目標角色名稱,進入角色資訊詳情頁。
選擇信任策略頁簽,單擊編輯信任策略,修改新任策略為如下指令碼內容。
參數說明
在策略配置時,您需要將如下指令碼中的
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" } }
單擊儲存信任策略,完成權限原則配置。
步驟二:添加RAM角色至Hologres執行個體並授權
RAM角色需要有Hologres執行個體的開發許可權,才能在許可權範圍內使用Hologres。由於RAM角色預設沒有Hologres管控台的查看和操作執行個體的許可權,因此需要主帳號完成RAM相關許可權授予才能進行後續操作。具體操作,請參見授予RAM使用者權限。添加RAM角色至Hologres執行個體,您可以通過如下方式進行授權。
登入Hologres管理主控台進行授權。
在左側導覽列選擇進入執行個體列表頁面,單擊需要授權的執行個體,在使用者管理頁簽找到RAM角色並新增使用者至執行個體。
在DB管理頁簽,為該RAM使用者授予具體的執行個體開發許可權。
通過SQL方式授權。
您可以通過SQL方式進行授權,具體請參見許可權管理概述。
若是通過RAM使用者扮演RAM角色,RAM角色預設沒有Hologres管理主控台的許可權,需要主帳號給RAM使用者在存取控制頁面授予AliyunRAMReadOnlyAccess許可權,否則RAM角色無法在Hologres管理主控台進行任何操作。詳情請參見文檔授予RAM使用者權限。
步驟三:登入阿里雲並使用Hologres
當您完成授權之後,使用者就可以扮演user-role角色登入並使用Hologres。
登入阿里雲。使用者可以扮演RAM角色user-role,登入至阿里雲控制台。
登入Hologres管理主控台,進行執行個體管理和監控。
在Hologres管理主控台單擊登入Hologres資料庫,進入HoloWeb,進行Hologres結構設計和資料開發。具體操作請參見串連HoloWeb並執行查詢。