大家好,今天我們來解決一個非常具體的實戰問題:如何讓 IAM Identity Center 中創建的用戶真正獲得 AWS 賬戶的操作權限,從而取代老舊的 IAM 用戶管理模式?
如果我們盯著用戶詳情頁,想找一個“附加角色”的按鈕,那我們可能會失望。因為 IAM Identity Center 的魔法發生在更高一個層級。
核心理念:解耦“人”與“權限”
傳統 IAM 用戶模式下,“人”(用戶)和“權限”(策略)是緊密綁定的。而在 IAM Identity Center 中,這個綁定被優雅地解開了,中間引入了兩個關鍵概念:權限集 (Permission Sets) 和 分配 (Assignments)。
正確的流程是這樣的:
- 用戶和組 (Users & Groups):定義“誰是這個人”。我們已經完成了這一步,
dave
是一個人,他屬于dev
這個組。 - 權限集 (Permission Sets):定義“可以做什么”。這就是 IAM Identity Center 里的“角色藍圖”。我們可以在這里創建一系列權限模板,比如 “數據庫管理員權限”、“開發者只讀權限”或“EC2完全訪問權限”。
- 分配 (Assignments):將“誰”和“可以做什么”在具體的“哪個地方”(AWS 賬戶)連接起來。
實戰步驟:三步完成授權
現在,讓我們來完成從 dave
到實際權限的最后幾步。
第 1 步:創建權限集 (Permission Set) - 我們的“權限模板”
這是最關鍵的一步。權限集定義了一套具體的權限,它在被分配到某個 AWS 賬戶時,IAM Identity Center 會自動在該賬戶中為我們創建一個對應的 IAM 角色。
- 在 IAM Identity Center 控制臺的左側導航欄中,找到并點擊 “權限集” (Permission sets)。
- 點擊 “創建權限集” (Create permission set) 按鈕。
- 我們有三個選擇:
- 使用 AWS 托管策略:最簡單的方式。比如,我們可以選擇
AdministratorAccess
或PowerUserAccess
策略來創建一個“管理員權限集”。 - 復制現有權限集:如果我們已經有一個模板,可以復制并微調。
- 自定義權限集:最靈活的方式。我們可以像創建普通 IAM 角色一樣,內聯編寫 JSON 策略,或者附加多個 AWS 托管策略和自定義策略。
- 使用 AWS 托管策略:最簡單的方式。比如,我們可以選擇
實用建議: 為我們的 dev
組創建一個名為 DeveloperAccess
的權限集。在自定義權限時,我們可以附加 AmazonEC2FullAccess
和 AmazonS3ReadOnlyAccess
策略,以滿足開發者的常見需求。
第 2 步:分配對 AWS 賬戶的訪問權限 - 連接一切
現在,我們有了用戶組 (dev
) 和權限模板 (DeveloperAccess
),是時候把它們應用到具體的 AWS 賬戶上了。
- 在 IAM Identity Center 控制臺的左側導航欄中,點擊 “AWS 賬戶” (AWS accounts)。這里會列出我們 AWS Organization 中的所有賬戶。
- 勾選我們希望
dev
組能夠訪問的一個或多個 AWS 賬戶(例如,dev-account
)。 - 點擊 “分配用戶或組” (Assign users or groups) 按鈕。
- 在“用戶和組”頁簽下,選擇
dev
組,然后點擊“下一步”。 - 在“權限集”頁簽下,勾選我們剛剛創建的
DeveloperAccess
權限集,然后點擊“下一步”。 - 檢查我們的分配(將
dev
組以DeveloperAccess
權限分配到dev-account
),然后點擊 “提交”。
幕后發生了什么? 當我們點擊提交后,IAM Identity Center 會自動在 dev-account
這個 AWS 賬戶中,創建一個名為 AWSReservedSSO_DeveloperAccess_xxxxxxxx
的 IAM 角色。這個角色的權限策略就是我們在權限集中定義的,并且其信任策略被精確地設置為信任我們的 IAM Identity Center 實例。
第 3 步:用戶登錄并使用權限
現在,用戶 dave
的授權之旅已經完成!他可以:
- 訪問我們公司的專屬 AWS 訪問門戶 URL(形如
d-xxxxxxxxxx.awsapps.com/start
)。 - 使用他的用戶名
dave
和密碼登錄。 - 登錄后,他會看到一個清晰的卡片,上面寫著
dev-account
。 - 點擊這個賬戶,如果他被分配了多個權限集(角色),他可以選擇以
DeveloperAccess
的身份登錄。 - 點擊后,他就可以選擇是通過“管理控制臺”還是“命令行/API”獲取訪問憑證。選擇控制臺會直接將他無縫重定向到
dev-account
的 AWS 控制臺,并已承擔好對應的角色,無需再次輸入密碼。
結論:擁抱新范式
總結一下,我們不需要在用戶 dave
的頁面上尋找關聯角色的地方。正確的做法是:
- 定義“權限藍圖” -> 創建
Permission Set
。 - 連接“人、權限、地點” -> 在
AWS Accounts
頁面,將Group
和Permission Set
分配給目標賬戶。
這種方式極大地簡化了多賬戶環境下的權限管理。當我們有新的開發者加入時,只需將他加入 dev
組,他就自動獲得了所有已分配給該組的賬戶和權限,安全、高效且易于審計。這正是 IAM Identity Center 取代傳統 IAM 用戶的核心優勢所在。