本文介紹服務關聯角色的概念,以及如何建立、刪除和監控服務關聯角色。
什麼是服務關聯角色
服務關聯角色(Service Linked Role,簡稱SLR)是阿里雲為實現跨服務訪問而預設的一種RAM角色,具有以下特點:
與特定雲端服務綁定:SLR是一種特殊的RAM角色,與特定的阿里雲服務綁定。
僅限綁定服務扮演:SLR只能由其綁定的阿里雲服務扮演,其他身份無法使用。
阿里雲預定義:角色本身、所包含的許可權、角色信任策略(規定了可扮演該角色的雲端服務),均由阿里雲產品預定義。
免維護:使用者無需手動設定和維護SLR。
為什麼需要服務關聯角色
如果沒有服務關聯角色,當某個雲端服務需要訪問其他雲端服務時,使用者需要手動建立RAM角色、配置複雜的權限原則和信任策略,不僅操作繁瑣,還容易因配置不當導致服務異常或安全風險。服務關聯角色有效解決了這些問題:
解決阿里雲上的跨服務授權訪問問題。例如:配置審計(Config)服務要讀取您的雲資源資訊(如資源清單和資源配置)以產生合規性報表,就需要擷取ECS、RDS等其他雲端服務的存取權限。通過建立和扮演服務關聯角色,配置審計服務可以獲得完成自身功能所需的許可權。
降低了配置複雜度和誤操作風險。服務關聯角色的權限原則由阿里雲服務預先定義,確保各雲端服務僅獲得完成任務所需的最小許可權,使用者無需手動設定許可權。這有助於提升賬戶安全性,保障雲端服務穩定運行。
工作原理
下面以配置審計(Config)服務為例,為您解釋服務關聯角色的工作原理:
阿里雲預定義服務關聯角色:阿里雲為配置審計服務預定義了服務關聯角色(如
AliyunServiceRoleForConfig),該角色包含:信任策略:僅允許
config.aliyuncs.com扮演該角色,確保只有配置審計服務可以使用。權限原則:授予讀取 ECS、RDS等雲端服務資源資訊的許可權。
配置審計服務扮演角色:當配置審計服務需要讀取您的雲資源資訊以產生合規性報表時,它會扮演其服務關聯角色,擷取臨時安全憑證。
以角色身份訪問其他雲端服務:配置審計服務使用服務關聯角色的身份和許可權,安全地訪問 ECS、RDS等其他雲端服務,讀取資源清單和資源配置等資訊。
完成業務功能:配置審計服務擷取到所需的雲資源資訊後,產生合規性報表,完成其核心業務功能。
通過這種方式,配置審計服務無需您手動設定複雜的權限原則,即可安全、便捷地實現跨服務訪問。
SLR與普通服務角色的區別
服務關聯角色與普通服務角色類似,都是由雲端服務所扮演,並賦予雲端服務完成自身功能所需要的許可權。但兩者在具體使用方式上有本質區別:
對比維度 | 服務關聯角色(SLR) | 普通服務角色 |
建立方式 | 一般由阿里雲服務自動建立。 | 一般由管理員手動建立。 |
維護方式 | 一般由阿里雲服務自動維護,使用者無法修改SLR。 | 一般由管理員手動維護,使用者可以修改服務角色。 |
刪除條件 | 必須確保SLR未被雲端服務使用才能刪除。 | 管理員可以隨時刪除角色。 |
權限原則 | 預定義,不可修改,也不可添加或移除權限原則 | 管理員自訂,可添加或移除許可權。 |
信任策略 | 預定義,不可修改,僅信任其關聯的特定阿里雲服務 | 管理員自訂,可修改角色信任策略。 |
支援服務關聯角色的雲端服務
支援服務關聯角色的雲端服務列表,請參見支援服務關聯角色的雲端服務。您可點擊相關文檔欄的連結具體查看對應雲端服務SLR的文檔。
管理服務關聯角色所需的許可權
對服務關聯角色的管理,僅限於建立或刪除SLR。無法修改SLR及其關聯的權限原則和信任策略。
RAM 使用者建立或刪除服務關聯角色時,必須具備相應許可權。這些許可權通常已包含在SLR對應雲端服務的管理員權限策略(例如AliyunResourceDirectoryFullAccess)中。RAM使用者如果具有該雲端服務的管理員權限,通常也可以為該雲端服務建立SLR。
您也可以配置自訂策略來為RAM使用者授予僅針對特定服務的SLR系統管理權限。如以下自訂權限原則樣本,允許RAM使用者為資源管理(Resource Management)服務建立和刪除服務關聯角色。其中,ram:ServiceName的取值可以從支援服務關聯角色的雲端服務的雲端服務標識列擷取。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateServiceLinkedRole",
"ram:DeleteServiceLinkedRole"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ram:ServiceName": "resourcemanager.aliyuncs.com"
}
}
}
]
}建立服務關聯角色
雲端服務建立:多數情況下,雲端服務將在您執行某些特定操作(例如:建立一個雲資源或開啟一個功能)時自動建立服務關聯角色,或在提示管理員並獲得授權後以管理員身份建立。關於自動建立服務關聯角色的詳情,請參見對應雲端服務的文檔說明:支援服務關聯角色的雲端服務。
手動建立:您也可以手動建立服務關聯角色,具體操作,請參見建立服務關聯角色。
服務關聯角色會佔用您的RAM角色配額。當RAM角色數量超限時,您仍然可以成功建立服務關聯角色,但無法建立其他類型的角色。具體配額請參見使用限制。
刪除服務關聯角色
雲端服務刪除:雲端服務將在您執行某些特定操作(例如:刪除所有資源或關閉一個功能)時自動刪除已建立的服務關聯角色。
手動刪除:您也可以手動刪除服務關聯角色,具體操作,請參見刪除RAM角色。手動刪除前RAM會先檢查這個角色是否仍被雲資源使用:
如果該角色未被使用,刪除操作將成功完成。
如果該角色仍在使用中,刪除操作將失敗。您可以根據提示資訊查看哪些雲資源正在使用該角色,手動清理這些資源後再執行刪除操作。不同雲端服務對服務關聯角色的刪除條件有所差異,具體請參見支援服務關聯角色的雲端服務中對應雲端服務的文檔說明。
錯誤地刪除服務關聯角色可能導致依賴該角色的阿里雲服務功能異常,刪除前請確認相關功能已不再使用,或已完成資源清理。
扮演服務關聯角色
服務關聯角色僅可被關聯的雲端服務扮演,其他身份(例如:RAM使用者、其他RAM角色)都無法扮演該角色。
查看可扮演服務關聯角色的雲端服務
您可以在已建立的服務關聯角色的信任策略頁簽中,通過Service欄位查看可以扮演該角色的雲端服務。例如,配置審計的服務關聯角色AliyunServiceRoleForConfig信任策略僅允許被雲端服務config.aliyuncs.com扮演:

監控服務關聯角色的建立與使用
您可以通過Action Trail(ActionTrail)對服務關聯角色的生命週期和使用方式進行審計。
使用事件名稱進行查詢:
CreateServiceLinkedRole:查詢建立服務關聯角色相關事件。DeleteServiceLinkedRole:查詢刪除服務關聯角色相關事件。AssumeRole:查詢雲端服務扮演服務關聯角色相關事件。事件詳情中的userIdentity部分將包含雲端服務名稱,requestParameters部分將包含所扮演的服務關聯角色Arn。例如:{ ... "requestParameters": { ... "RoleArn": "acs:ram::ACCOUNT_ID:role/aliyunservicerolefortag", "RoleSessionName": "tag_operate", }, ... "userIdentity": { ... "principalId": "tag.aliyuncs.com", "userName": "tag.aliyuncs.com" }, "eventName": "AssumeRole" }
使用事件類型進行查詢:
將事件類型設定為雲端服務事件(AliyunServiceEvent),並篩選操作者名稱為具體的服務關聯角色名稱,可查詢該服務關聯角色所執行的操作。
常見問題
服務關聯角色的權限原則看起來許可權很大,有安全風險嗎?
服務關聯角色的權限原則由阿里雲官方預定義並遵循最小許可權原則,旨在確保關聯服務能夠完整、穩定地運行。
服務關聯角色的信任策略嚴格限制了只有對應的阿里雲服務才能扮演該角色,其他任何身份都無法使用,從而保證了安全性。
如果您對某個服務關聯角色的許可權有疑慮,可以通過以下方式進一步瞭解:
查閱對應雲端服務的服務關聯角色文檔說明。
聯絡對應雲產品服務支援。
為什麼我無法刪除某個服務關聯角色?
因為該角色仍被一個或多個雲資源使用。您必須先清理這些依賴資源,才能成功刪除角色。具體請參見本文的刪除服務關聯角色章節。