適用於 IAM 的商業使用案例 - AWS Identity and Access Management

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

適用於 IAM 的商業使用案例

IAM 的一個簡易商業使用案例可協助您了解實作服務以控制您使用者所擁有 AWS 存取權限的基本方式。使用案例是在一般條款中說明,並不包含您如何使用 IAM API 來達到您想要的結果的機制。

此使用案例示範稱為 Example Corp 的虛構公司可以兩種典型的方式使用 IAM。第一個案例會考慮 Amazon Elastic Compute Cloud (Amazon EC2)。第二個則考慮 Amazon Simple Storage Service (Amazon S3)。

如需有關搭配其他 AWS 服務使用 IAM 的詳細資訊,請參閱 AWS 與 IAM 搭配使用的服務

範例企業的初始設定

Nikki Wolf 和 Mateo Jackson 是 Example Corp 的創辦人。在創辦公司之初,他們建立了 AWS 帳戶 並設定了 AWS IAM Identity Center (IAM Identity Center),以建置可與其 AWS 資源搭配使用的管理帳戶。當您為管理使用者設定帳戶存取權時,IAM Identity Center 會建立對應的 IAM 角色。此角色受 IAM Identity Center 控制並在相關的 AWS 帳戶 中建立,AdministratorAccess 許可集合中指定的政策會被連接至該角色。

因為他們現在有管理員帳戶,Nikki 和 Mateo 不再需要使用其根使用者來存取他們的 AWS 帳戶。他們計劃僅將根使用者用於完成只能由根使用者執行的任務。在檢閱安全最佳實務之後,他們要為根使用者憑證設定多重要素驗證 (MFA),並決定如何保護其根使用者憑證的安全。

隨著公司的發展,他們聘請員工擔任開發人員、管理員、測試人員、經理和系統管理員。Nikki 負責營運,而 Mateo 管理工程團隊。他們要設定 Active Directory Domain Server 來管理員工帳戶並管理對內部公司資源的存取權。

為了向員工提供 AWS 資源的存取權,他們使用 IAM Identity Center 將其公司的 Active Directory 連接到他們的 AWS 帳戶。

因為他們將 Active Directory 連接到 IAM Identity Center,使用者、群組和群組成員資格將會被同步並且得到定義。他們必須指派許可集合與角色到不同的群組,為使用者提供正確的 AWS 資源存取層級。他們在 AWS Management Console 中使用 AWS 受管理的工作職能政策 來建立這些許可集合:

  • 管理員

  • 帳單

  • 開發人員

  • 網路管理員

  • 資料庫管理員

  • 系統管理員

  • 支援使用者

然後,他們要指派這些許可集合到被指派給其 Active Directory 群組的角色。

如需了解描述 IAM Identity Center 初始組態的逐步指南,請參閱《AWS IAM Identity Center 使用者指南》中的入門。如需有關佈建 IAM Identity Center 使用者存取權的詳細資訊,請參閱《AWS IAM Identity Center 使用者指南》中的單一登入存取 AWS 帳戶

搭配 Amazon EC2 的 IAM 使用案例

與 Example Corp 類似的公司通常會使用 IAM 與像是 Amazon EC2 的服務互動。若要了解此部分的使用案例,您需要對 Amazon EC2 有基本的理解。如需有關 Amazon EC2 的詳細資訊,請前往 Amazon EC2 Linux 執行個體使用者指南

使用者群組的 Amazon EC2 權限

為了提供「周邊」控制,Nikki 將政策連接到 AllUsers 使用者群組。此政策拒絕使用者透過 Example Corp 的公司網路以外的來源 IP 地址發出的任何 AWS 請求。

在 Example Corp,不同使用者群組需要不同的許可:

  • System administrators (系統管理員) – 需要許可才能建立及管理受管 AMI、執行個體、快照、磁碟區、安全群組等。Nikki 將 AmazonEC2FullAccess AWS 受管政策連接到 SysAdmins 使用者群組,其提供成員使用所有 Amazon EC2 動作的群組許可。

  • Developers (開發人員) – 僅需要使用執行個體的能力。Nikki 因此建立政策並將其連接到 Developers 使用者群組,讓開發人員能夠呼叫 DescribeInstancesRunInstancesStopInstancesStartInstancesTerminateInstances

    注意

    Amazon EC2 使用 SSH 金鑰、Windows 密碼及安全群組控制擁有特定 Amazon EC2 執行個體作業系統存取權限的對象。IAM 系統中沒有方法,可允許或拒絕存取特定執行個體的作業系統。

  • Support 使用者 – 除了列出目前可用的 Amazon EC2 資源之外,不應擁有執行任何 Amazon EC2 動作的許可。因此,Nikki 建立政策並將其連接到 Support 使用者群組,只讓他們呼叫 Amazon EC2「描述」API 操作。

如需這些政策所呈現樣子的範例,請參閱 以身分為基礎的 IAM 政策範例 和《Amazon EC2 Linux 執行個體使用者指南》中的使用 AWS Identity and Access Management

使用者的任務職能變更

在某個時間點,其中一名開發人員 Paulo Santos 變更了工作職能成為經理。身為經理,Paulo 成為 Support 使用者群組的一員,因此他可以為其開發人員開啟支援案例。Mateo 將 Paulo 從 Developers 使用者群組移到 Support 使用者群組。其結果是,他與 Amazon EC2 執行個體互動的能力受到限制。他無法啟動或開始執行個體。他也無法停止或終止現有的執行個體,即使他是啟動或開始執行個體的使用者。他只能列出 Example Corp 使用者啟動的執行個體。

搭配 Amazon S3 的 IAM 使用案例

與 Example Corp 相似的公司通常也會搭配 Amazon S3 使用 IAM。John 已為公司建立名為 aws-s3-bucket 的 Amazon S3 儲存貯體。

建立其他使用者和使用者群組

員工 Zhang Wei 和 Mary Major 每個都需要能夠在公司的儲存貯體中建立自己的資料。他們也需要讀取和寫入所有開發人員共用的資料。為啟用此功能,Mateo 依據邏輯使用 Amazon S3 金鑰字首 (key prefix) 機制在 aws-s3-bucket 中安排資料,如下圖所示。

/aws-s3-bucket /home /zhang /major /share /developers /managers

Mateo 為每個員工將 /aws-s3-bucket 區分為一組主目錄,以及為開發人員和管理員的群組一個共用的區域。

現在 Mateo 建立一組政策以指派許可給使用者和使用者群組:

  • Zhang 的主目錄存取權 – Mateo 將政策連接到 Wei,讓他可以讀取、寫入及列出具有 Amazon S3 金鑰字首 (key prefix) /aws-s3-bucket/home/zhang/ 的任何物件

  • Major 的主目錄存取權 – Mateo 將政策連接到 Mary,讓她可以讀取、寫入及列出具有 Amazon S3 金鑰字首 (key prefix) /aws-s3-bucket/home/major/ 的任何物件

  • 開發人員使用者群組的共享目錄存取權 – Mateo 將政策連接到使用者群組,讓開發人員可以讀取、寫入及列出 /aws-s3-bucket/share/developers/ 中的任何物件

  • 管理員群組的共享目錄存取權 – Mateo 將政策連接到使用者群組,可讓管理員讀取、寫入及列出 /aws-s3-bucket/share/managers/ 中的物件

注意

Amazon S3 不會自動授予建立儲存貯體或物件的使用者,在該儲存貯體或物件上執行其他動作的許可。因此,在您的 IAM 政策中,您必須明確地提供使用者許可,以使用他們建立的 Amazon S3 資源。

如需這些政策的範例,請參閱 Amazon Simple Storage Service 使用者指南中的存取控制。如需執行時間期間評估政策方式的資訊,請參閱政策評估邏輯

使用者的任務職能變更

在某個時間點,其中一名開發人員 Zhang Wei 變更了工作職能成為經理。我們假設他不再需要存取 share/developers 目錄中的文件。Mateo 身為管理員,將 Wei 移到 Managers 使用者群組並移出 Developers 使用者群組。只需簡單的重新指派,Wei 就會自動取得授予到 Managers 使用者群組的所有許可,但不再存取 share/developers 目錄中的資料。

與第三方企業整合

組織通常會與合作夥伴公司、顧問和承包商合作。Example Corp 有合作夥伴稱為 Widget Company 的公司,而 Widget Company 雇用名為 Shirley Rodriguez 的員工,其需要將資料放入儲存貯體中供 Example Corp 使用。Nikki 建立一個名為 WidgetCo 的使用者群組和名為 Shirley 的使用者,然後將 Shirley 新增到 WidgetCo 使用者群組。Nikki 也建立名為 aws-s3-bucket1 的特殊儲存貯體,供 Shirley 使用。

Nikki 更新現有政策或新增新的政策,以包含合作夥伴公司 Widget Company。例如,Nikki 可以建立新的政策,拒絕 WidgetCo 使用者群組的成員能夠使用寫入以外的任何動作。此政策只在有廣泛的政策可讓所有使用者存取多種 Amazon S3 動作時才必要。