IAM 是提供使用者用來管理用戶對 AWS 資源的存取權限及其身份驗證的服務。基本上的特性有:
IAM user是由root user或是被授權的IAM user所創建,所以前幾天所介紹創建AWS帳戶的方法中,申請免費套餐其實就是申請root user,而AWS Educate/Academy都只是IAM user帳戶。所以原AWS使用者也可以透過root user幫一般使用者創建IAM user帳戶,這是最簡單也是最便利的方式,不過先決條件就是你的IAM user要懂得使用AWS資源,因為AWS的帳單是看root user,並不會針對IAM user來收費。
一般初學者通常都是透過 AWS 管理控制台(Console management)進行登入後使用AWS資源,而登入時會有兩種身分可以選擇,根使用者與一般使用者,所需要提供的登入訊息不同,根使用者需要email與密碼,通常還會開啟Multi-Factor Authentication,用來加強帳戶的保護;IAM User則是需要提供account ID,username,password三個訊息,而IAM user是由root user所創建的,所以同一個root user所創建的IAM user中的Account ID都是一樣的,圖一的左手邊就是選擇透過root user登入,右手邊則是選擇用IAM user登入。
圖一、AWS 管理控制台登入選項
圖二、IAM user登入畫面
圖三、root user登入畫面二
圖四、root user登入畫面-須提供認證碼
以下演示如何創建一個IAM user,不過在創建之前要先了解一些基礎概念
第一點是比較容易理解,第二點的話,目前我們所有的操作就是屬於AWS管理控制台的操作,至於SDK和CLI的操作,會在後面展示。第三點則是在創建IAM user之前要規劃好,比方說我們有研發團隊跟測試團隊,而研發團隊只能使用EC2,測試團隊允許完整操作EC2,那我們只要把這兩個權限設定好,在授權給這兩個群組,那只要是這兩個群組下的使用者,就擁有這個權限。
原則上免費專案、AWS Educate/Academy都可以使用這個功能,只是在授權方面的權限不同,所以不影響以下的操作。登入相關帳號後,右上角顯示的是你目前所在地區,因為IAM是全域的,所以可以不用理會,接著請選擇左上角的_服務_下拉式選單,接著輸入IAM後,方塊下方會出現IAM管理AWS資源存取權,點選這個選項後就會進入IAM的控制台畫面,可參考圖五
圖五、AWS管理控制台首頁
接著在畫面左邊工具列中選擇群組,並按下建立新群組RDteam(注意右上方的地區從新加坡變成全球)
圖六、建立新群組
圖七、設定群組名稱
先輸入ec2,則底下會自動篩選政策,請選擇AmazonEC2ReadOnlyAccess
圖八、指定群組政策
圖九、檢閱群組設定
在依照上述方式建立Testteam,在政策部分則是選擇AmazonEC2FullAccess。
接下來就是將使用者指定到特定群組去,假設Jame是在RDteam,Joe是在Testteam,那我們就可以建立這兩個使用者,分別指定到RDteam與Testteam。選擇左邊功能選單的_使用者_,並按下右邊的_新增使用者_,而新增使用者會有五個步驟,畫面十中我們先輸入使用者帳號,可以發現他是允許我們一次輸入多個使用者,接著是選擇這些使用者的AWS 存取類型,這在上面有提過,不同的存取類型需要不同的認證機制,針對初學者,建議選擇_AWS Management Console 存取_,接著會出現主控台密碼與需要密碼重設選項,可以使用預設值
圖十、新增使用者
接下來就是設定使用者的權限,可以是_新增使用者至群組、從現有的使用者複製許可、直接連接現有政策_這三種方式,我們選擇第一種,這三種方式是互斥的,不能並存,只能選其中一個。
圖十一、設定使用者許可權限
下一個步驟是標籤,可以使用標籤來組織、追蹤或控制存取此使用者,這是選擇性輸入,可以不用輸入;最後是檢閱,確認沒問題後,就可以新增使用者,而因為前述是自動產生密碼,所以我們必須把帳號/密碼(1)與登入網址(2)通知新使用者,下圖中可以得到這些資訊,可以選擇用email方式通知對方,或是其它通訊軟體。
圖十二、新使用者相關資訊
Testteam的Joe可以按照此步驟進行新增。新增完畢後可以就上述的登入網址進行登入,並測試權限。