AWS中有沒有辦法限制另一個角色可以建立什麼樣的角色和策略?
在我的設定中,我有兩種管理員角色:AccountAdmin
和InfraAdmin
。AccountAdmin
擁有更多權利的人,同時只InfraAdmin
擁有日常營運所需的一組權利。
現在我遇到一種情況,InfraAdmin
角色需要權限來建立捆綁包,其中我有 EC2 執行個體、RDS 資料庫和 S3 儲存桶(稍微簡化了描述,以便我們可以專注於要點)。這些一起形成了一個邏輯上的單一服務,並且我有多個這樣的捆綁包,它們不應該能夠存取其他人的 RDS 資料庫或 S3 儲存桶。為了允許 EC2 執行個體存取其 RDS 資料庫和 S3 儲存桶,我正在建立執行個體設定檔、角色和策略。目前,這要求我授予InfraAdmin
創建角色和策略的權利,這有點破壞了最小特權原則,AccountAdmin
並且之間的劃分InfraAdmin
變得毫無意義。
有沒有辦法限制角色InfraAdmin
可以創建什麼樣的策略和角色,使其不能用於授予自身額外的權限或創建新的更強大的角色?
答案1
是的,您可以使用 AWS Organizations 設定基於策略的治理框架,該框架可讓您設定適用於組織中所有 AWS 帳戶的規則和原則。這可讓您控制您的 InfraAdmin 角色可以使用哪些服務和操作,以及限制它可以建立的策略和角色。
為此,您首先需要為 InfraAdmin 角色建立組織單位 (OU),然後將服務控制原則 (SCP) 附加到該 OU,指定允許 InfraAdmin 角色使用的服務和操作。然後,您可以使用 AWS Identity and Access Management (IAM) 定義允許 InfraAdmin 角色建立的政策和角色,並將這些原則附加到 InfraAdmin 角色。
例如,您可以建立一個 SCP,允許 InfraAdmin 角色僅使用 EC2、RDS 和 S3 服務,並將其可以對這些服務執行的操作限制為僅建立和管理您的捆綁包所需的操作。然後,您可以使用 IAM 建立策略,允許 InfraAdmin 角色建立和管理這些服務的實例設定檔、角色和策略,並將這些策略附加到 InfraAdmin 角色。這將允許 InfraAdmin 角色為捆綁包創建必要的資源,而無需為其自身授予額外的權限或創建新的更強大的角色。
整體而言,透過這種方式使用 AWS Organizations 和 IAM,您可以為您的 AWS 帳戶和資源設定更細微、更安全的存取控制系統。