---
# System prepended metadata

title: '探索AWS：從菜鳥到熟練的完全指南(二):IAM 創建使用者'

---

# 探索AWS：從菜鳥到熟練的完全指南(二):IAM 創建使用者 
IAM (Identity and Access Management) 是 AWS（Amazon Web Services）的一項服務，用於管理和控制對 AWS 資源的身份驗證和授權。

# IAM介紹

IAM 提供了一個安全的方式來管理使用者、群組和角色，並控制它們對 AWS 資源的訪問權限。它允許根據需要創建和管理多個用戶帳號，並分配權限以限制用戶的操作範圍。

IAM 可新增以下幾種身分

1. Root: 是在創建 AWS 帳號時自動生成的特殊帳號，具有完全的權限和控制權。Root 帳號擁有對所有 AWS 資源進行任意操作的最高權限，因此建議不要將 Root 帳號與他人分享，以確保安全性。
2. Users: 使用者是通過 IAM 服務創建的單獨身分。您可以創建多個使用者，並為每個使用者分配特定的身份驗證憑證（如用戶名和密碼或訪問金鑰）。每個使用者可以獨立地管理和設定其權限。
3. Groups：群組是一個容器，可將多個使用者組織在一起。您可以將不同的使用者添加到同一個群組中，並在群組層級上管理和分配權限。這樣可以更有效地管理多個使用者的權限，確保一致的訪問控制。重要的是要記住，群組本身不能包含其他群組

每個身分類型（Root、使用者、群組）都可以根據需求設定不同的權限和訪問策略。Root 帳號擁有最高權限，可以訪問和控制所有 AWS 資源，而使用者和群組則可以透過權限策略來限制其訪問範圍和操作權限。

需要注意的是，為了確保安全性，建議盡量避免直接使用 Root 帳號進行日常操作，而是創建並使用特定的使用者帳號，並為其分配適當的權限。這樣可以實現更細粒度的訪問控制和風險管理。

![](https://hackmd.io/_uploads/rJSujMJP3.png)


# IAM功能

以下是 IAM 的主要功能：

1. 身份驗證和授權：IAM 允許您管理 AWS 資源的身份驗證和授權。您可以創建和管理使用者，並為每個使用者分配一組安全憑證（如用戶名和密碼或訪問金鑰）。通過 IAM，您可以確保只有授權的用戶可以訪問您的 AWS 資源。
2. 用戶和群組管理：IAM 允許您創建和管理用戶帳號，並將用戶分組為群組。這使得您可以更好地組織和管理您的用戶，並為整個群組分配和管理權限。這樣，您可以通過將用戶添加到特定的群組中來方便地管理其權限。
3. 角色管理：IAM 允許您創建和管理角色。角色是一種用於向 AWS 資源授予臨時訪問權限的安全機制。您可以為不同的身份（如 EC2 實例、AWS Lambda 函數等）創建角色，並將角色與所需的權限策略關聯。這樣，這些身份可以在需要時獲得所需的權限，而無需獲得自己的安全憑證。
4. 權限管理：IAM 具有細粒度的權限管理功能，允許您根據需要控制和限制用戶對 AWS 資源的訪問權限。您可以通過為每個用戶或群組分配特定的權限策略來實現這一點。這使您能夠根據不同的角色和責任，精確控制和管理用戶的權限。

<br></br>  

# 新增使用者

## 1.進入IAM使用者頁面


![](https://hackmd.io/_uploads/r1xF46MJP2.png)



於搜尋欄搜尋IAM 並點擊 

側邊可選擇點擊 使用者 在點擊新增使用者<br></br>  

## 2.創建使用者

![](https://hackmd.io/_uploads/B1_L2GJD3.png)




當使用者為自己(但不希望使用root權限) 可以勾選紅色的部分

但若是開給其他人 推薦使用另外一個選項，讓使用者有一個預設密碼 在登入後自行修改<br></br>  

## 3.創建群組

![](https://hackmd.io/_uploads/BktahGJw2.png)



按下一步 可以決定是否要將使用者加入群組

但首先要建立群組

按下建立群組

![](https://hackmd.io/_uploads/BJXyaGJP3.png)

新增名稱為 admin的群組 並選擇 administratorAccess的權限

- AdministratorAccess提供了完整的管理權限，使持有這個權限的使用者或角色能夠對 AWS 資源進行任何操作

按下建立使用者群組及創建完成<br></br>  

## 4.設定許可

![](https://hackmd.io/_uploads/By2UaG1w3.png)



選擇剛創建的群組

就會套用群組的權限<br></br>  

## 5.設定標籤

![](https://hackmd.io/_uploads/BkpDpMkD2.png)


自行設定使用者標籤 可以辨別不同的使用者

是一個方便理解目前使用者定位的方式<br></br>  

## 6.完成使用者創建

![](https://hackmd.io/_uploads/H1idaGyPn.png)


創建完畢後 可以選擇寄送信件詳細資訊給這個使用者 或是下載csv檔案

記錄下來後就可以返回清單
<br></br>


7.切換使用者

![](https://hackmd.io/_uploads/r1hKTfJD2.png)


回到儀錶板

AWS帳戶區有此帳戶的資訊

帳戶別名可自行更改，方便辨識就好

開啟不同的瀏覽器 複製URL再分頁貼上(若用相同瀏覽器會被登出)

![](https://hackmd.io/_uploads/SyO6aMJwh.png)


會自動帶入帳戶資訊 

輸入剛才設定的帳號密碼即可登入
<br></br>

# Policies 結構

IAM policies 的結構事由json格式構成，以下舉例並說明

```json
{
  "Version": "2012-10-17",
  "Id": "PolicyID123",
  "Statement": [
    {
      "Sid": "StatementID123",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::1234567890:user/username"
      },
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::example-bucket/*"
      ],
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "192.168.0.0/24"
        }
      }
    }
  ]
}
```

IAM Policies 的結構包含以下內容：

1. Version（版本）：指定 IAM 策略語言的版本，通常應設定為 "2012-10-17"。
2. Id（識別符）：策略的識別符，是可選的欄位，用於識別該策略。
3. Statement（語句）：一個或多個獨立的語句，它們組成策略的主要內容，是必填的欄位。

每個 Statement 包含以下內容：

- Sid（語句識別符）：該語句的識別符，是可選的欄位，用於識別該語句。
- Effect（效果）：指定該語句是允許還是拒絕訪問。可以是 "Allow"（允許）或 "Deny"（拒絕）。
- Principal（主體）：指定該策略應用於的帳號、使用者或角色。
- Action（操作）：列出該策略允許或拒絕的操作。操作可以是 AWS 服務的 API 操作或其他特定的操作。
- Resource（資源）：列出該策略操作所涉及的資源。資源可以是 AWS 資源的 ARN（Amazon Resource Name）或其他特定的資源標識符。
- Condition（條件）：指定在哪些條件下該策略生效。這是可選的欄位，用於進一步細化策略的應用範圍。

在這個範例中，這個策略允許特定使用者（ARN 為 **`arn:aws:iam::1234567890:user/username`**）對指定 S3 存儲桶（ARN 為 **`arn:aws:s3:::example-bucket/*`**）進行 **`GetObject`** 和 **`PutObject`** 的操作。同時，設定了一個條件，只有當請求的來源 IP 為 **`192.168.0.0/24`** 時，該策略才生效。

###### 標籤: `AWS` `IAM` `新手教學`