第一天就該做對的事:帳號、Region、IAM
你的 AWS 帳號有幾個人在用?每個人都用 Root 登入嗎?Region 選對了嗎?如果這三題有一題答不出來,這篇你得認真看。
先講結論
AWS 入門的前三件事:鎖好 Root 帳戶、選對 Region、用 IAM 管人管權限。這三件事做不好,後面學再多服務都是在沙灘上蓋城堡。帳號被盜或權限失控造成的損失,比技術債貴十倍。
Root 帳戶:用完就鎖起來
登入 AWS 的第一步,你會用 Root 帳戶。這個帳戶擁有所有權限,就像 Linux 的 root 一樣——什麼都能做,也什麼都能搞砸。
我見過最慘的案例:某個團隊所有人共用 Root 帳號,結果有人不小心把 production 的 S3 bucket 砍了。因為大家都用同一個帳號,連是誰幹的都查不出來。
Root 帳戶拿到之後,做完這三件事就不要再碰它:
# 1. 開 MFA(Console 操作)
# IAM → Security credentials → Assign MFA device
# 2. 建立一個 IAM admin user 給自己用
aws iam create-user --user-name admin-terry
aws iam create-login-profile --user-name admin-terry \
--password 'YourSecurePassword!' --password-reset-required
# 3. 把 admin user 加入 Admins group
aws iam create-group --group-name Admins
aws iam attach-group-policy --group-name Admins \
--policy-arn arn:aws:iam::aws:policy/AdministratorAccess
aws iam add-user-to-group --user-name admin-terry --group-name Admins從此以後,日常操作全用 IAM user,Root 只在帳務管理和緊急時使用。
Region 選擇:一開始選錯,後面搬家超痛苦
Region 就是 AWS 機房的地理位置。選擇原則很簡單:離你的使用者越近越好。
| 你的使用者在哪 | 建議 Region | 延遲 |
|---|---|---|
| 台灣/日本 | ap-northeast-1(東京) | ~30ms |
| 東南亞 | ap-southeast-1(新加坡) | ~50ms |
| 美國 | us-east-1(維吉尼亞) | ~150ms |
我一開始沒注意 Region,在 us-east-1 開了一堆東西,後來才發現延遲高到不行。搬家超痛苦——EC2 snapshot 跨 Region 複製要等很久、RDS 要重建、Security Group 不能搬——別重蹈覆轍。
注意:不是所有 Region 都有所有服務,新服務通常先在 us-east-1 上線。如果你需要最新功能,可能得犧牲一點延遲。
# 查看所有可用 Region
aws ec2 describe-regions --output table
# 設定預設 Region
aws configure set region ap-northeast-1IAM:不是選配,是必配
IAM 的核心觀念就一句話:給每個人剛好夠用的權限,不多不少。
User Group:批次管理權限
一個一個使用者去設權限?等團隊超過 5 個人你就會崩潰。用 Group 管理才是正解。
| Group | Policy | 誰該加進去 |
|---|---|---|
| Admins | AdministratorAccess | 管理員(但也要三思) |
| Developers | PowerUserAccess | 工程師 |
| ReadOnly | ReadOnlyAccess | PM、監控人員 |
| Billing | Billing | 財務、老闆 |
| DatabaseAdmins | 自定義 RDS/DynamoDB 權限 | DBA |
# 建立 Group 並附加 Policy
aws iam create-group --group-name Developers
aws iam attach-group-policy --group-name Developers \
--policy-arn arn:aws:iam::aws:policy/PowerUserAccess
# 建立使用者並加入 Group
aws iam create-user --user-name dev-alice
aws iam add-user-to-group --user-name dev-alice --group-name Developers
# 建立 Console 登入
aws iam create-login-profile --user-name dev-alice \
--password 'TempPassword123!' --password-reset-required自定義 Policy:精準控制
內建的 policy 太粗了?你可以自己寫 JSON policy,精確到「只能讀某個 S3 bucket」:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::example-bucket"
},
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example-bucket/*"
}
]
}# 建立自定義 Policy
aws iam create-policy --policy-name S3ReadOnlyExampleBucket \
--policy-document file://s3-readonly-policy.json
# 附加到 Group
aws iam attach-group-policy --group-name ReadOnly \
--policy-arn arn:aws:iam::123456789012:policy/S3ReadOnlyExampleBucketPermissions Boundary:防手滑的保險
Permissions Boundary 設定使用者「最多能有」的權限上限。就算你不小心附加了 AdministratorAccess,boundary 還是會擋住。
# 設定 Permissions Boundary
aws iam put-user-permissions-boundary --user-name dev-alice \
--permissions-boundary arn:aws:iam::123456789012:policy/DeveloperBoundary權限管理的四個鐵則
- 最小權限原則:只給完成工作需要的權限,不確定就先不給,需要再開
- MFA 一定要開:Root 帳號和所有有 Console 權限的 IAM user 都要
- 用 Tag 管理資源:幫每個資源打上
team,environment,project標籤,帳單追蹤和權限管理都會輕鬆很多 - 定期檢查:每季看一次,離職的人帳號還在嗎?不用的權限還掛著嗎?
# 產生 Credential Report,看誰的密碼該換了、誰的 MFA 沒開
aws iam generate-credential-report
aws iam get-credential-report --output text --query Content | base64 -d自架 vs AWS
| 面向 | 自架(LDAP/Keycloak) | AWS IAM |
|---|---|---|
| 使用者管理 | 自己維護 LDAP/AD | AWS Console + CLI |
| SSO | 自建 Keycloak + OIDC | AWS SSO (Identity Center) |
| 權限模型 | RBAC 自己定義 | Managed Policy + Custom Policy |
| 審計 | 自建 audit log | CloudTrail 自動記錄所有 API call |
| MFA | 自己整合 TOTP | 內建支援 |
| 維護成本 | 高(要自己 patch、備份) | 零(AWS 託管) |
如果你在 Infra 系列讀過 Identity & Access,IAM 就是那些概念的 AWS 版本——一樣是 RBAC,只是 AWS 幫你管好了底層。
K8s 映射
| AWS IAM | K8s 對應 |
|---|---|
| IAM User | ServiceAccount |
| IAM Group | ClusterRole/Role |
| IAM Policy | RBAC Policy (Role + RoleBinding) |
| Permissions Boundary | Namespace 隔離 + ResourceQuota |
| CloudTrail | Audit Log |
| AWS SSO | OIDC Provider |
詳細的 K8s RBAC 設定,看 K8s 配置管理。EKS 上的 IAM 整合(IRSA),會在 本系列第 08 篇 展開。
系列導覽
權限管理不性感,但它是你和天價帳單之間唯一的防線。