AWS 以console 及 aws-cli 新增IAM使用者小記
有些專案, 同事需要有 AWS console 登入檢視相關資訊的需求
寫一篇小記紀錄如何建立使用者然後給予相關權限
======== Console 方式 ========
登入 AWS Console -- > 點選 IAM 服務 -- > 點選 使用者
點選 新增使用者
輸入 使用者名稱 , 勾選 AWS Management Console 存取, 設定密碼
確認 使用者必須在下次登入時建立新的密碼已經勾選
點選 下一個:許可
這次要建立的是只有 EC2 檢視的使用者, 官方建議使用群組的方式來管理
在 設定許可畫面中 , 點選建立群組
輸入群組名稱, 以這邊為例 EC2ReadOnlyAccess
搜尋 EC2Re 可以找到 AmazonEC2ReadOnlyAccess 政策
勾選 AmazonEC2ReadOnlyAccess 政策 -- > 建立群組
確認 EC2ReadOnlyAccess 群組已經勾選 -- > 點選 下一個:標籤
標籤的部份, 因為在Console 沒有辦法輸入中文, 實物上可能有相關需求, 所以我是之後使用指令來完成, 點選 下一個:檢閱
再次瀏覽相關資訊
點選 建立使用者
點選關閉 完成設定
接下來進行驗證
另外開啟新的瀏覽器到 AWS 登入Console
以剛剛建立好的使用者登入,
可以嘗試進行相關動作, 但是因為沒有相關權限, 所以應該會得到相關錯誤訊息
另外一種方式是使用指令的方式
======== Console 方式 ========
一樣使用之前建立的 Container with 雲平台工具
OS: Container with openSUSE Leap 15
==== 在主機上面 ====
啟動 container
> docker run -v ~/.aws:/root/.aws -v ~/.azure:/root/.azure -v ~/.config/gcloud:/root/.config/gcloud -v ~/.ssh:/root/.ssh -it sakana/ansible_opensuse15 /bin/bash
==== 在 container 內 ====
參考官方文件
建立使用者
# aws iam create-user --user-name max
{
"User": {
"UserName": "max",
"Path": "/",
"CreateDate": "2019-07-20T03:41:17Z",
"UserId": "AIDA2MGTTTNPHXG2DWTKL",
"Arn": "arn:aws:iam::781126831704:user/max"
}
}
給予 console login 權限
# aws iam create-login-profile --user-name max --password YOURPW --password-reset-required
{
"LoginProfile": {
"UserName": "max",
"CreateDate": "2019-07-20T03:47:35Z",
"PasswordResetRequired": true
}
}
接下來就是建立群組, 讓使用者加入還有設定政策
# aws iam create-group --group-name EC2ReadOnlyAccess
{
"Group": {
"Path": "/",
"CreateDate": "2019-07-20T03:54:14Z",
"GroupId": "AGPA2MGTWTNTKQRGBFF7U",
"Arn": "arn:aws:iam::781126831704:group/EC2ReadOnlyAccess",
"GroupName": "EC2ReadOnlyAccess"
}
}
將政策( Policy ) 加入到群組
在加入政策之前要先先找到相關 政策還有他的 ARN
先觀察相關資訊, 先列出兩個
#aws iam list-policies --max-items 2
{
"Policies": [
{
"PolicyName": "AdministratorAccess",
"CreateDate": "2015-02-06T18:39:46Z",
"AttachmentCount": 5,
"IsAttachable": true,
"PolicyId": "ANPAIWMBCKSKIEE64ZLYK",
"DefaultVersionId": "v1",
"Path": "/",
"Arn": "arn:aws:iam::aws:policy/AdministratorAccess",
"UpdateDate": "2015-02-06T18:39:46Z"
},
{
"PolicyName": "ASamplePolicy",
"CreateDate": "2015-06-17T19:23;32Z",
"AttachmentCount": "0",
"IsAttachable": "true",
"PolicyId": "Z27SI6FQMGNQ2EXAMPLE1",
"DefaultVersionId": "v1",
"Path": "/",
"Arn": "arn:aws:iam::781126831704:policy/ASamplePolicy",
"UpdateDate": "2015-06-17T19:23:32Z"
}
]
}
- 這邊可以觀察到有 2 種 ARN, 官方ARN以及有帶 使用者帳號ID 的 ARN
實務上我會使用 list-policies 加上 egrep 方式來找出我想要的
例如 # aws iam list-policies | egrep '*EC2*'
這次的作法是要找出 EC2 然後 ReadOnly
所以我會這樣搭配
# aws iam list-policies | egrep -i '*EC2*ReadOnly*'
"PolicyName": "AmazonEC2ReadOnlyAccess",
"Arn": "arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess",
- 這邊一定要用 egrep 而不是 grep
接下來把 找到的 AmazonEC2ReadOnlyAccess 政策套用到群組
# aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess --group-name EC2ReadOnlyAccess
最後就是把使用者加到群組
# aws iam add-user-to-group --user-name max --group-name EC2ReadOnlyAccess
先記下來
~ enjoy it
有關於 IAM 使用者 加上標籤可以參考之前的 Blog
- 實做上發現在 Linux 與 Mac 都可以用指令上 中文 tag, 但是在 container 內還不行, 改天來找一下原因
Reference:
沒有留言:
張貼留言