適用於 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 的詳細資訊,請參閱 可搭配 IAM 運作的 AWS 服務

範例企業的初始設定

John 是 Example Corp 的創辦人,設立公司時他自行建立自己的 AWS 帳戶,並使用 AWS 產品。然後,他聘請員工擔任開發人員、管理員、測試人員、經理和系統管理員。

John 搭配 AWS 帳戶 根使用者憑證使用 AWS Management Console,以建立自己名為 John 的使用者,以及名為 Admins 的使用者群組。他使用 AWS 受管政策 AdministratorAccess 給予 Admins 使用者群組在所有 AWS 帳戶資源上執行所有動作的許可。然後,他新增 John 使用者到 Admins 使用者群組。如需建立 Administrators 使用者群組及您自己的 IAM 使用者,然後再將您的使用者新增到 Administrator 使用者群組的逐步指南,請參閱 建立您的第一個 IAM 管理員使用者和群組

此時,John 可停止使用根使用者的憑證與 AWS 互動,改為開始只使用他自己的使用者憑證。

John 也建立了名為 AllUsers 的使用者群組,讓他可以將任何涉及所有帳戶的許可輕鬆套用到 AWS 帳戶中的所有使用者。他將自己新增到使用者群組。然後,他建立一個名為 Developers 的使用者群組、一個名為 Testers 的使用者群組、一個名為 Managers 的使用者群組,以及一個名為 SysAdmins 的使用者群組。他為他的每一位員工建立使用者,並將使用者放到其個別的使用者群組中。他還將他們全部新增到 AllUsers 使用者群組。如需有關建立使用者群組的詳細資訊,請參閱 建立 IAM 使用者群組。如需有關建立使用者的資訊,請參閱在您的 AWS 帳戶中建立 IAM 使用者。如需有關新增使用者到使用者群組的資訊,請參閱 管理 IAM 使用者群組

搭配 Amazon EC2 的 IAM 使用案例

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

使用者群組的 Amazon EC2 權限

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

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

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

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

    注意

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

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

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

使用者的任務職能變更

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

搭配 Amazon S3 的 IAM 使用案例

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

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

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

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

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

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

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

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

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

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

注意

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

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

使用者的任務職能變更

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

與第三方企業整合

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

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