主要是接續著前一篇,多說明一些AWS在人員及角色上的控管。
AWS Identity and Access Management (IAM) 讓使用者輕鬆有效管理AWS使用者、群組及資源權限,並快速設定允許及拒絕哪些資源存取。
By the way, 聽說IAM是AWS中最難懂的東西惹
可以直接從左上角搜尋列搜尋「IAM」
進去後可以發現左邊有User, Group, Role、Policies,而這四個東西也是IAM的核心
視為一個終端的使用者,可以登入管理系統介面、可以使用sdk、cli、api進行AWS操作。
可以建立一個特定的群組並設定權限後,可以將使用者加入該群組,就不用再各別設定使用者的權限了。
跟User是非常類似的,不過User是設定使用者權限,而Role是設定AWS資源的權限(EX:設定EC2有讀寫S3的權限)。
可以設定一個定義檔(定義檔中可以設定一至多個權限設定),而有效做到權限套用。
假設我們想新增一位User,讓這位User只有存取DynamoDB中其中一個table的權限應該要怎麼做?
首先進入AWS Console後,搜尋IAM並進入該服務
點選左邊的User
選擇「Add user」
給予User name,並給予存取的種類,這邊先給予Programmatic access
先不給予權限
給一個tag方便管理
AWS會提醒這位User沒有任何權限,請繼續下一步
使用者建立完成,記得下載csv
接著回到IAM首頁,點選左邊的Policies
點選左上方的「Create policy」
先使用visual editor選擇,方便大家快速了解
點選「Choice a service」
這邊搜尋「DynamoDB」,選並選它
選擇要給予的權限,這邊我們設定Read中的GetItem
接著選擇Resources, 並選擇「Add ARN」
Amazon Resource Name (ARN) 唯一識別 AWS 資源。當您需要在所有 AWS 之間明確指定某個資源,例如 IAM 政策、Amazon Relational Database Service (Amazon RDS) 標籤和 API 呼叫,我們會要求 ARN。
假設我們的DynamoDB放在US East (N. Virginia), 並且只給予Transactions這個Table的權限,並按下「Add」
最後可以選擇認証方式或指定來源ip,這邊練習用就不設定了
點下「Review Policy」
給予Policy name「DynamoDBReadTransactionsTablePolicy」,並點下「Create Policy」
回到條列頁後可以搜尋剛剛新增的Policy是已有新增成功
回到User條列頁
選擇剛剛新增的那位User
給予剛剛新增的Policy,請選擇中間的「Add permissions」
選擇「Attach existing policies directtly」
並輸入搜尋新增的policy name,並選擇它
最後檢視一下是否有問題,若沒問題就可以直接「Add permissions」
成功後就可以在User Detail面面看到該權限了
IAM是免費的,請安心使用。
https://aws.amazon.com/tw/iam/
https://akuma1.pixnet.net/blog/post/292118068-%EF%BC%88%E5%9B%9B%EF%BC%89iam%EF%BC%88identity-and-access-management%EF%BC%89%EF%BC%8D%EF%BC%8Daws%E7%B6%93
https://docs.aws.amazon.com/zh_tw/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html
https://www.youtube.com/watch?v=dMPDZHVIZBs
https://docs.aws.amazon.com/zh_tw/general/latest/gr/aws-arns-and-namespaces.html