1. 身分型政策 (Identity-based Policies)
這是最常見的類型。這些政策是綁定在 IAM 身分(User 使用者、Group 群組、Role 角色)身上的。
- 核心概念: 告訴 AWS 「這個人/角色可以做什麼」。
- 綁定對象: IAM User, IAM Group, IAM Role。
- 特性:政策中不需要指定 Principal (因為綁定在誰身上,就是誰)。又細分為:AWS 受管 (AWS Managed): AWS 寫好的罐頭權限 (如 AdministratorAccess)。客戶受管 (Customer Managed): 您自己寫的客製化權限 (最佳實踐)。內嵌 (Inline): 直接寫死在使用者身上,無法共用的權限。
- 範例: 您給予工程師 John 一個政策,允許他 ec2:StartInstances。
2. 資源型政策 (Resource-based Policies)
這類政策是直接綁定在 AWS 資源 本身上的。並非所有 AWS 服務都支援此功能,但在 S3、SQS、SNS、Lambda、KMS 中非常常見。
- 核心概念: 告訴 AWS 「誰可以來存取這個資源」。
- 綁定對象: S3 Bucket, SQS Queue, SNS Topic, Lambda Function 等。
- 特性:必須在政策中指定 Principal (誰),例如:「允許 User A 來存取」。這是實現 跨帳戶存取 (Cross-account access) 最簡單且主要的方式(例如讓 A 公司的帳號存取 B 公司的 S3)。
- 範例: S3 Bucket Policy。您在 Bucket 上設定政策,允許特定的 IP 地址或特定的 AWS 帳號來下載檔案。
快速比較表












