今天想要來統整前面提到的: IAM 身份與權限管理
1.Root 跟 IAM User 有什麼差別?
先想像你開了一間公司。
Root User = 公司老闆/最高權限帳號
當你第一次用 Email 建立 AWS Account 時,那個身分就是 Root User。
AWS Account
│
└── Root User
│
├── IAM
├── EC2
├── S3
├── RDS
├── Billing
└── 幾乎所有 AWS 資源
Root User 擁有帳號層級的最高權限,而且有些帳號管理工作只有 Root 能執行。
因此實務上:Root 不應該拿來做每天的 AWS 操作。
通常會把 Root 保護好、開啟 MFA,需要執行 Root-only 工作時才使用。
IAM User = AWS 帳號底下建立的使用者
例如公司 AWS Account 裡面建立:
AWS Account
│
├── Root User
│
└── IAM
├── User: SS C
├── User: jack
└── User: amy
其中 SS C 可以被設定成:
IAM → 可以看
EC2 → 不可以看
S3 → 可以看
RDS → 不可以看
也就是說 IAM User 本身不代表擁有所有 AWS 權限。
它能做什麼,取決於最後套用到這個身分的權限政策。
做一下 Root VS IAM User 比較
| Root | IAM User | |
|---|---|---|
| 怎麼產生 | 建立 AWS Account 時產生 | 在 AWS Account 裡建立 |
| 數量 | 每個帳號一個 Root 身分 | 可以建立多個 |
| 權限 | 帳號最高權限 | 依授權決定 |
| 日常使用 | ❌ 不建議 | 可用,但現代 AWS 組織的人員存取常優先採 IAM Identity Center |
| MFA | 強烈建議 | 視登入方式與組織政策設定 |
2.Policy、Group、User 怎麼連在一起?
假設公司有三個工程師:
Amy
Bob
SS C
他們都是 IAM User,但三個人都需要相同權限。
如果分別設定:
Amy
└── IAMReadOnly
Bob
└── IAMReadOnly
SS C
└── IAMReadOnly
人一多會很難管理。
可以用 IAM Group
建立
Group
Developers
像是:
Developers
│
┌───────┼───────┐
↓ ↓ ↓
Amy Bob SSC
接下來把 Policy 掛到 Group:
Policy
IAMReadOnlyAccess
│
↓
Developers Group
│
┌─────┼─────┐
↓ ↓ ↓
Amy Bob SS C
因此這三個 User 都能繼承 Group 所帶來的權限。