使用企業A的阿里雲帳號建立RAM角色並為該角色授權,並將該角色賦予企業B,即可實現使用企業B的阿里雲帳號或其RAM使用者訪問企業A的阿里雲資源的目的。
背景資訊
假設企業A購買了多種雲資源來開展業務,並需要授權企業B代為開展部分業務,則可以利用RAM角色來實現此目的。RAM角色是一種虛擬使用者,沒有確定的身份認證密鑰,需要被一個受信的實體使用者扮演才能正常使用。為了滿足企業A的需求,可以按照以下流程操作:
- 企業A建立RAM角色
- 企業A為該RAM角色添加許可權
- 企業B建立RAM使用者
- 企業B為RAM使用者添加AliyunSTSAssumeRoleAccess許可權
- 企業B的RAM使用者通過控制台或API訪問企業A的資源
ARMS提供的系統權限原則包括完整許可權和唯讀許可權,您可以根據需求選擇為RAM使用者添加對應的許可權:
AliyunARMSFullAccess:ARMS的完整許可權,添加該許可權後,RAM使用者擁有對各子產品執行個體的查看、編輯、刪除等所有操作許可權。
說明添加AliyunARMSFullAccess許可權後無需再添加AliyunARMSReadOnlyAccess許可權。
AliyunARMSReadOnlyAccess:ARMS的唯讀許可權,添加該許可權後,RAM使用者只支援查看各子產品的執行個體資訊,不支援修改、刪除等操作。
重要為了實現對ARMS所有功能的唯讀許可權,除了添加AliyunARMSReadOnlyAccess權限原則外,還需要再為特定的資源群組配置ReadTraceApp許可權,否則ARMS將無法展示資源群組鑒權下的應用列表。
步驟一:企業A建立RAM角色
首先需要使用企業A的阿里雲帳號登入RAM控制台並建立RAM角色。
操作步驟
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇 。
在角色頁面,單擊建立角色。
在建立角色頁面,選擇可信實體類型為阿里雲帳號,然後單擊下一步。
設定角色資訊。
輸入角色名稱。
輸入備忘。
選擇信任的雲帳號。
當前雲帳號:當您允許當前阿里雲帳號下的所有RAM使用者扮演該RAM角色時,您可以選擇當前雲帳號。
其他雲帳號:當您允許其他阿里雲帳號下的所有RAM使用者扮演該RAM角色時,您可以選擇其他雲帳號,然後輸入其他阿里雲帳號(主帳號)ID。該項主要針對跨阿里雲帳號的資源授權訪問情境,相關教程,請參見跨阿里雲帳號的資源授權。
您可以在安全設定頁面查看阿里雲帳號(主帳號)ID。
重要如果您僅允許指定的RAM使用者扮演該RAM角色,而不是阿里雲帳號(主帳號)下的所有RAM使用者,您可以採取以下兩種方式:
修改RAM角色的信任策略。具體操作,請參見樣本一:修改RAM角色的可信實體為阿里雲帳號。
修改RAM使用者的角色扮演權限原則。具體操作,請參見能否指定RAM使用者具體可以扮演哪個RAM角色?。
單擊完成。
單擊關閉。
步驟二:企業A為該RAM角色添加許可權
新建立的角色沒有任何許可權,因此企業A必須為該角色添加許可權。
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇 。
在角色頁面,單擊目標RAM角色操作列的新增授權。
您也可以選中多個RAM角色,單擊角色列表下方的新增授權,為RAM角色大量授權。
在新增授權面板,為RAM角色授權。
選擇資源範圍。
帳號層級:許可權在當前阿里雲帳號內生效。
資源群組層級:許可權在指定的資源群組內生效。
說明指定資源群組授權生效的前提是該雲端服務及資源類型已支援資源群組,詳情請參見支援資源群組的雲端服務。
選擇授權主體。
授權主體即需要添加許可權的RAM角色。系統會自動選擇當前的RAM角色。
選擇權限原則。
權限原則是一組存取權限的集合。支援批量選中多條權限原則。
系統策略:由阿里雲建立,策略的版本更新由阿里雲維護,使用者只能使用不能修改。更多資訊,請參見支援RAM的雲端服務。
說明系統會自動標識出高風險系統策略(例如:AdministratorAccess、AliyunRAMFullAccess等),授權時,盡量避免授予不必要的高風險權限原則。
自訂策略:由使用者管理,策略的版本更新由使用者維護。使用者可以自主建立、更新和刪除自訂策略。更多資訊,請參見建立自訂權限原則。
單擊確認新增授權。
單擊關閉。
步驟三:企業B建立RAM使用者
接下來要使用企業B的阿里雲帳號登入RAM控制台並建立RAM使用者。
操作步驟
使用阿里雲帳號(主帳號)或Resource Access Management員登入RAM控制台。
在左側導覽列,選擇 。
在使用者頁面,單擊建立使用者。
在建立使用者頁面的使用者帳號資訊地區,設定使用者基本資料。
登入名稱稱:可包含英文字母、數字、半形句號(.)、短劃線(-)和底線(_),最多64個字元。
顯示名稱:最多包含128個字元或漢字。
標籤:單擊,然後輸入標籤鍵和標籤值。為RAM使用者綁定標籤,便於後續基於標籤的使用者管理。
說明單擊添加使用者,可以大量建立多個RAM使用者。
在訪問方式地區,選擇訪問方式,然後設定對應參數。
為了帳號安全,建議您只選擇以下訪問方式中的一種,將人員使用者和應用程式使用者分離,避免混用。
控制台訪問
如果RAM使用者代表人員,建議啟用控制台訪問,使用使用者名稱和登入密碼訪問阿里雲。您需要設定以下參數:
控制台登入密碼:選擇自動產生密碼或者自訂密碼。自訂登入密碼時,密碼必須滿足密碼複雜度規則。更多資訊,請參見設定RAM使用者密碼強度。
密碼重設策略:選擇RAM使用者在下次登入時是否需要重設密碼。
多因素認證(MFA)策略:選擇是否為當前RAM使用者啟用MFA。啟用MFA後,主帳號還需要為RAM使用者綁定MFA裝置或RAM使用者自行綁定MFA裝置。更多資訊,請參見為RAM使用者綁定MFA裝置。
OpenAPI調用訪問
如果RAM使用者代表應用程式,建議啟用OpenAPI調用訪問,使用存取金鑰(AccessKey)訪問阿里雲。啟用後,系統會自動為RAM使用者產生一個AccessKey ID和AccessKey Secret。更多資訊,請參見建立AccessKey。
重要RAM使用者的AccessKey Secret只在建立時顯示,不支援查看,請妥善保管。
單擊確定。
根據介面提示,完成安全驗證。
步驟四:企業B為RAM使用者添加許可權
企業B必須為其阿里雲帳號下的RAM使用者添加AliyunSTSAssumeRoleAccess許可權,RAM使用者才能扮演企業A建立的RAM角色。
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇 。
在使用者頁面,單擊目標RAM使用者操作列的添加許可權。
您也可以選中多個RAM使用者,單擊使用者列表下方的添加許可權,為RAM使用者大量授權。
在新增授權面板,為RAM使用者添加許可權。
選擇資源範圍。
帳號層級:許可權在當前阿里雲帳號內生效。
資源群組層級:許可權在指定的資源群組內生效。
重要指定資源群組授權生效的前提是該雲端服務及資源類型已支援資源群組,詳情請參見支援資源群組的雲端服務。資源群組授權樣本,請參見使用資源群組限制RAM使用者管理指定的ECS執行個體。
選擇授權主體。
授權主體即需要添加許可權的RAM使用者。系統會自動選擇當前的RAM使用者。
選擇權限原則。
權限原則是一組存取權限的集合,分為以下兩種。支援批量選中多條權限原則。
系統策略:由阿里雲建立,策略的版本更新由阿里雲維護,使用者只能使用不能修改。更多資訊,請參見支援RAM的雲端服務。
說明系統會自動標識出高風險系統策略(例如:AdministratorAccess、AliyunRAMFullAccess等),授權時,盡量避免授予不必要的高風險權限原則。
自訂策略:由使用者管理,策略的版本更新由使用者維護。使用者可以自主建立、更新和刪除自訂策略。更多資訊,請參見建立自訂權限原則。
單擊確認新增授權。
單擊關閉。
後續步驟
完成上述操作後,企業B的RAM使用者即可按照以下步驟登入控制台訪問企業A的雲資源或調用API。
登入控制台訪問企業A的雲資源
RAM使用者登入阿里雲控制台。
在RAM使用者登入頁面,輸入RAM使用者名稱,單擊下一步。
方式一:使用預設網域名稱登入。RAM使用者的登入格式為
<UserName>@<AccountAlias>.onaliyun.com
,例如:username@company-alias.onaliyun.com。說明<UserName>
為RAM使用者名稱稱,<AccountAlias>.onaliyun.com
為預設網域名稱。關於預設網域名稱的更多資訊,請參見基本概念和查看和修改預設網域名稱。方式二:使用帳號別名登入。RAM使用者的登入格式為
<UserName>@<AccountAlias>
,例如:username@company-alias。說明<UserName>
為RAM使用者名稱稱,<AccountAlias>
為帳號別名。關於帳號別名的更多資訊,請參見基本概念和查看和修改預設網域名稱。方式三:如果建立了域別名,也可以使用域別名登入。RAM使用者的登入格式為
<UserName>@<DomainAlias>
,例如:username@example.com。
輸入RAM使用者的登入密碼,然後單擊登入。
(可選)如果您開啟了多因素認證(MFA),則需要輸入虛擬MFA裝置產生的驗證碼,或通過U2F安全密鑰認證。
更多資訊,請參見多因素認證(MFA)和為RAM使用者綁定MFA裝置。
使用企業B的RAM使用者通過API訪問企業A的雲資源
要使用企業B的RAM使用者通過API訪問企業A的雲資源,必須在代碼中提供RAM使用者的AccessKeyId、AccessKeySecret和SecurityToken(臨時安全性權杖)。使用STS擷取臨時安全性權杖的方法,請參見AssumeRole - 擷取扮演角色的臨時身份憑證。