AWS IAM Policy Generater with iamlive
Posted on May 27, 2021 • 1 minutes • 211 words
前言
踏入 IT界 也快2年了,時代快速發展,為了因應快速發展,許多企業都開始擁抱雲端計算,當然目前小弟在的公司也不例外,而我比較常接觸的雲端計算平台為AWS,在使用了AWS 這麼久,身為 IT 最重要的就是如何為 application
配予適當的 iam 權限(policy),以達到 zero trust
,給 application
越是剛剛好的權限越是好,而不是每個 application
要調用 s3 時,你就給他 arn:aws:iam::aws:policy/AmazonS3FullAccess
,application
要調用 sqs 時,你就給他 arn:aws:iam::aws:policy/AmazonSQSFullAccess
。
iamlive
source github: https://github.com/iann0036/iamlive
有一天我在逛 github 的時候,突然發現一位AWS Hore 寫了一個 相當令我感興趣的 open source,那就是 iamlive ,我們來看看他的說明簡介
Generate an IAM policy from AWS calls using client-side monitoring (CSM) or embedded proxy。 透過監控 用戶端對 AWS 調用資源的 api 來持續幫你,產生 iam policay,來幫助您知道您調用的api 是需要多少權限。
到 release page 下載與執行環境可運行的binary
https://github.com/iann0036/iamlive/releases
像我就選擇 iamlive-v0.36.0-darwin-amd64.dmg
並將 binary 放入您的 $PATH
路徑中。
打開兩個視窗
- 第一個視窗輸入
iamlive --set-ini --profile [aws_profile]
指定 aws profile. - 第二個視窗先 一個檔案
touch a.txt
file
嘗試 list s3 bucket
- 第一個視窗 已經被 iamlive process 吃住
- 第二個視窗先 嘗試
aws s3 ls --profile [aws_profile]
你會發現第一個視窗會發現你下了 list bucket 的指令,並立即產生s3:ListAllMyBuckets
iam policy 給你。
嘗試 put object to s3 bucket
- 第一個視窗 已經被 iamlive process 吃住
- 第二個視窗先 嘗試
aws s3 cp a.txt s3://[your_bucket_name]/ --profile [aws_profile]
你會發現第一個視窗會發現你下了 s3 cp 的指令,並立即產生s3:PutObject
iam policy 給你。
嘗試 rm object on s3 bucket
- 第一個視窗 已經被 iamlive process 吃住
- 第二個視窗先 嘗試
aws s3 rm s3://[your_bucket_name]/a.txt --profile [aws_profile]
你會發現第一個視窗會發現你下了 s3 rm 的指令,並立即產生s3:DeleteObject
iam policy 給你。
雖然目前只能偵測到 Action
沒辦法細微的偵測到什麼樣的 resource
(目前為 “*”) 但我認為已經相當實用了,
推薦給大家。
發現 support SDK ,所以就手癢來試試看。
有興趣的歡迎參考一下 我的 demo repo for python boto3 sdk.
demo github repo : https://github.com/neilkuan/iamlive-for-python-boto3
以及 大家如果有興趣 可以多多 follow 這位來自 澳洲 雪梨的 AWS Hero. 他的 github 裡面真的有很多令人驚豔的 open source like AWSConsoleRecorder 、former2 etc…