本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
根據具有ABAC授權的屬性定義許可
屬性型存取控制 (ABAC) 是一種授權策略,可根據 屬性定義許可。 AWS 呼叫這些屬性標籤 。您可以將標籤連接到IAM資源,包括IAM實體 (IAM使用者或IAM角色) 和 AWS 資源。您可以為IAM委託人建立單一ABAC政策或小型政策集。您可以設計允許主體標籤與資源標籤相符時執行操作ABAC的政策。ABAC的屬性系統,可提供高使用者內容和精細存取控制。由於 ABAC 是以屬性為基礎,因此可以對即時授予或撤銷存取權的資料或應用程式執行動態授權。ABAC 在擴展環境以及身分或資源政策管理變得複雜的情況下很有幫助。
例如,您可以使用access-project
標籤金鑰建立三個IAM角色。將第一個IAM角色的標籤值設定為 Heart
,將第二個設定為 Star
,將第三個設定為 Lightning
。然後,您可以使用單一政策,當IAM角色和資源 AWS 具有標籤值 時,允許存取 access-project
。如需示範如何在 ABAC中使用 的詳細教學課程 AWS,請參閱 IAM 教學課程:定義根據標籤存取 AWS 資源的許可。若要了解支援 的服務ABAC,請參閱 AWS 使用 的 服務 IAM。
ABAC 與傳統RBAC模型的比較
在 中使用的傳統授權模型IAM是角色型存取控制 (RBAC)。RBAC 根據人員的任務函數或角色 定義許可,這與IAM角色不同。IAM 確實包含任務函數的受管政策,這些政策會將許可與RBAC模型中的任務函數保持一致。
在 中IAM,您可以為不同的任務函數建立不同的政策RBAC來實作 。然後,將政策連接到身分 (IAM使用者、IAM群組或IAM角色)。根據最佳實務,您應授與任務角色所需要的最低許可。這會導致最低權限存取。每個任務函數政策都會列出該政策所指派身分可以存取的特定資源。使用傳統RBAC模型的缺點是,當您或使用者將新資源新增至您的環境時,您必須更新政策,以允許存取這些資源。
例如,假設您有三個員工正在進行的專案,分別名為 Heart
、Star
和 Lightning
。您可以為每個專案建立IAM角色。然後,您將政策連接到每個IAM角色,以定義任何允許擔任該IAM角色的人員都可以存取的資源。如果員工變更公司內的任務,您可以將他們指派給不同的IAM角色。您可以將人員或程式指派給多個IAM角色。不過,Star
專案可能需要其他資源,例如新的 Amazon EC2容器。在這種情況下,您必須更新連接至Star
IAM角色的政策,以指定新的容器資源。否則,Star
專案的成員便無法存取新的容器。
ABAC 相較於傳統RBAC模型, 提供下列優點:
-
ABAC 使用創新擴展許可。管理員不再需要更新現有政策來允許存取新的資源。例如,假設您使用
access-project
標籤設計ABAC策略。開發人員使用 IAM角色搭配access-project
=Heart
標籤。當Heart
專案上的人員需要額外的 Amazon EC2 資源時,開發人員可以使用access-project
=Heart
標籤建立新的 Amazon EC2執行個體。接著,Heart
專案的任何人員便可以開始和停止這些執行個體,因為他們的標籤值相符。 -
ABAC 需要更少的政策。由於您不需要為不同的任務功能建立不同政策,您建立的政策也會較少。這些政策較易於管理。
-
使用 ABAC,團隊可以動態回應變革和成長。由於新資源的許可會根據屬性自動授予,因此您不需要手動將政策指派給身分。例如,如果您的公司已經支援使用 的
Heart
和Star
專案ABAC,新增Lightning
專案很容易。IAM 管理員會使用access-project
=Lightning
標籤建立新的IAM角色。不需要變更政策來支援新的專案。具有擔任IAM角色許可的任何人都可以建立和檢視標記為access-project
= 的執行個體Lightning
。另一個案例是當團隊成員從Heart
專案移至Lightning
專案時。若要提供Lightning
專案 的團隊成員存取權,IAM管理員會將他們指派給不同的IAM角色。而不需要變更許可政策。 -
您可以使用 取得精細許可ABAC。在您建立政策時,最佳實務是授與最低權限。使用傳統 RBAC,您會撰寫允許存取特定資源的政策。不過,當您使用 時ABAC,如果資源的標籤與主體的標籤相符,您可以允許對所有資源執行動作。
-
將公司目錄中的員工屬性與 搭配使用ABAC。您可以設定 SAML或 OIDC 提供者將工作階段標籤傳遞至 IAM。當您的員工聯合到 時 AWS, 會將其屬性IAM套用至其產生的主體。然後,您可以使用 ABAC 來允許或拒絕基於這些屬性的許可。
如需示範如何在 ABAC中使用 的詳細教學課程 AWS,請參閱 IAM 教學課程:定義根據標籤存取 AWS 資源的許可。