根據具有ABAC授權的屬性定義許可 - AWS Identity and Access Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

根據具有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

此圖表說明套用至主體的標籤必須與套用至資源的標籤相符,以便將許可授予資源的使用者。標籤會套用至IAM群組、資源群組、個別使用者和個別資源。

ABAC 與傳統RBAC模型的比較

在 中使用的傳統授權模型IAM是角色型存取控制 (RBAC)。RBAC 根據人員的任務函數或角色 定義許可,這與IAM角色不同。IAM 確實包含任務函數的受管政策,這些政策會將許可與RBAC模型中的任務函數保持一致。

在 中IAM,您可以為不同的任務函數建立不同的政策RBAC來實作 。然後,將政策連接到身分 (IAM使用者、IAM群組或IAM角色)。根據最佳實務,您應授與任務角色所需要的最低許可。這會導致最低權限存取。每個任務函數政策都會列出該政策所指派身分可以存取的特定資源。使用傳統RBAC模型的缺點是,當您或使用者將新資源新增至您的環境時,您必須更新政策,以允許存取這些資源。

例如,假設您有三個員工正在進行的專案,分別名為 HeartStarLightning。您可以為每個專案建立IAM角色。然後,您將政策連接到每個IAM角色,以定義任何允許擔任該IAM角色的人員都可以存取的資源。如果員工變更公司內的任務,您可以將他們指派給不同的IAM角色。您可以將人員或程式指派給多個IAM角色。不過,Star專案可能需要其他資源,例如新的 Amazon EC2容器。在這種情況下,您必須更新連接至StarIAM角色的政策,以指定新的容器資源。否則,Star 專案的成員便無法存取新的容器。

此圖表說明角色型存取控制需要為每個身分指派特定任務職能型政策,才能存取不同的資源。
ABAC 相較於傳統RBAC模型, 提供下列優點:
  • ABAC 使用創新擴展許可。管理員不再需要更新現有政策來允許存取新的資源。例如,假設您使用 access-project標籤設計ABAC策略。開發人員使用 IAM角色搭配 access-project = Heart標籤。當Heart專案上的人員需要額外的 Amazon EC2 資源時,開發人員可以使用 access-project = Heart標籤建立新的 Amazon EC2執行個體。接著,Heart 專案的任何人員便可以開始和停止這些執行個體,因為他們的標籤值相符。

  • ABAC 需要更少的政策。由於您不需要為不同的任務功能建立不同政策,您建立的政策也會較少。這些政策較易於管理。

  • 使用 ABAC,團隊可以動態回應變革和成長。由於新資源的許可會根據屬性自動授予,因此您不需要手動將政策指派給身分。例如,如果您的公司已經支援使用 的 HeartStar專案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 資源的許可