--- 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 服務 ![](https://i.imgur.com/E87uuxr.png) <center> 圖三、IAM 計價方式 </center> ### IAM 架構概念 > 對應章節: > 2.3 IAM 服務的設計思維與核心名詞 ![](https://i.imgur.com/N7mwwOX.png) <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> | #### 視覺化編寫工具 ![](https://i.imgur.com/oNcT9ES.png) <center> 圖五、Visual Editor 畫面 </center> #### Policy 模擬工具 https://policysim.aws.amazon.com/ ![](https://i.imgur.com/gZA1ooF.png) <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。 ## 補充 ![](https://i.imgur.com/Qo2HLAH.png) ![](https://i.imgur.com/MMOhxfl.png) <center> 圖七、IAM 架構圖[2] </center> ### Policy 補充 Policy 又分為 - Identity-based (以身分為基礎) - 針對某個人的概念 - Resource-based (以資源為基礎) - 在各 Service 內設定 - 誰能進我家門,誰不能進我家門 ![](https://i.imgur.com/fnn5CfE.png) <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)