---
title: 02-IAM
tags: note
lang: zh-tw
---
# 02 - IAM
全名:AWS Identity and Access Management
更新時間:2021-01-15
頁碼:p.009 - p.026
## 目錄
[Toc]
## AWS 用戶登入方式
> 對應章節:
> 2.1 AWS 的 root 權限
> 2.2 root 權限太大,必須實踐多用戶權限管理
1. Root 帳號 / Root user / AWS account
- 需要 Email 及信用卡註冊
2. IAM 帳號 / IAM user
- 由 Root 帳號設定 IAM 帳號並管理
- 登入時會有專屬 12 位數字的 ID 搭配帳號密碼
<center class="half">
<img src="https://i.imgur.com/YuBiafc.png" width="250"/>
<img src="https://i.imgur.com/rsO12UV.png" width="250"/>
</center>
<center>
Root 帳號 / IAM 帳號<br>
圖一、登入介面
</center>
<center >
<img src="https://i.imgur.com/C4BVE2O.png" width="500"/>
</center>
<center>
圖二、Linux 用戶關係與 AWS 用戶關係對應
</center>
:::info
:bulb: 透過 Email 申辦的是 AWS 的 root 帳號,需要用 **IAM 服務**切割成多個用戶與群組權限。
:bulb: 任何有人用的系統都需要做權限管理。
:bulb: [AWS account root user](https://docs.aws.amazon.com/zh_tw/IAM/latest/UserGuide/id_root-user.html) 使用觀念
:::
## IAM 服務

<center>
圖三、IAM 計價方式
</center>
### IAM 架構概念
> 對應章節:
> 2.3 IAM 服務的設計思維與核心名詞

<center>
圖四、法治國家 V.S. IAM 設計思維
</center>
#### 『 法治國家 』設計思維
1. 「**憲法**」 中有很多則 「**法條**」
2. 而 「**人民團體**」 會去遵守 「**憲法**」 的內容
3. 「**人民團體** 由 「**人民**」 組成
4. 「**人民**」 擁有 「**身分證**」 跟 「**駕照**」 等證件
5. 「**憲法**」 除了規範 「**人民團體**」,也會根據 「**職業角色**」 進行規範
#### 『 IAM 』設計思維
1. 「**Permission(許可)**」 由 「**Policy(政策/策略)**」 組成
2. 「**IAM Group(群組)**」 則會遵守 「**Permission**」 內的 「**Policy**」 內容
3. 「**IAM Group**」 由 「**User(使用者)**」 組成
4. 「**User**」 擁有 「**Password**」 跟 「**Credential(登入資料/存取憑證)**」 等認證方式
5. 「**Permission**」 除了規範 「**IAM Group**」,也會根據 「**Role(角色)**」 進行規範
### Policy 設置
> 對應章節:
> 2.4 Policy 的組成要件
> 2.5 Policy 的組織流程
#### Policy 參數 (EPCAR)
| 參數 | 說明 | 範例 |
| -------- | ------ | -------- |
| Effect | 影響 | <pre>"Effect": "Allow"</br>"Effect": "Deny"</pre>|
| Principal| 委託人 | <pre>"Principal": "\*"</pre> |
| Condition| 條件 | <pre>"Condition": {</br> "IpAddress": {</br> "aws:SourceIp": "0.0.0.0/16"</br> },</br> "BoolIfExists": {</br> "aws:MultiFactorAuthPresent": "true"</br> }</br>}</pre> |
| Action | 動作 | <pre>"Action": ["s3:GetObject"]</pre> |
| Resource | 資源 | <pre>"Resource": "\*"</br>"Resource": "arn:aws:s3:::\*"</pre> |
#### 視覺化編寫工具

<center>
圖五、Visual Editor 畫面
</center>
#### Policy 模擬工具
https://policysim.aws.amazon.com/

<center>
圖六、Policy Simulator 畫面
</center>
#### Policy 設定流程
```sequence
Visual Editor->Policy: 編寫
Policy->Policy Simulator: 測試
Policy Simulator->Policy: 確認
Policy->Group Role: 附加
```
最小權限管理 (Least Privilege):只提供所需服務的權限
```sequence
用戶需求->Least Privilege: 需求
Least Privilege->Visual Editor: 管理
Visual Editor->Policy: 編寫
Policy->Policy Simulator: 測試
Policy Simulator->Policy: 確認
Policy->Group Role: 附加
```
### 應用與延伸
> 對應章節:
> 2.6 常見的應用情境
> 2.7 考題解析與思路延伸
> 2.8 IAM 帳號管理歸納圖
[提供存取給外部驗證使用者 (聯合身份)](https://docs.aws.amazon.com/zh_tw/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)
Policy 的使用不限制於同 IAM User 跟 Group,也應用在外部資源串接 --- Federating Exist User
[使用服務連結角色](https://docs.aws.amazon.com/zh_tw/IAM/latest/UserGuide/using-service-linked-roles.html)
AWS 服務之間互相溝通,過程必須透過 Role。
## 補充


<center>
圖七、IAM 架構圖[2]
</center>
### Policy 補充
Policy 又分為
- Identity-based (以身分為基礎)
- 針對某個人的概念
- Resource-based (以資源為基礎)
- 在各 Service 內設定
- 誰能進我家門,誰不能進我家門

<center>
圖八、Policy 種類[1]
</center>
## Reference
[1] [『AWS 官方』AWS Identity and Access Management 使用者指南](https://docs.aws.amazon.com/zh_tw/IAM/latest/UserGuide/introduction.html)
[2] [『YouTube』圖解AWS教學 - IAM - 整體架構 入門介紹](https://www.youtube.com/watch?v=NBi66VNHW18&ab_channel=%E5%9C%96%E8%A7%A3%E7%A8%8B%E5%BC%8F%E6%95%99%E5%AD%B8SamTsai)