AWS實戰 - IAM角色的簡單使用

介紹

簡單來說,IAM角色是一組權限的集合,IAM用戶或者AWS服務可以臨時性代入這個角色,獲得角色所擁有的權限;AWS官方定義如下:

IAM角色類似於用戶,因爲它是一個AWS實體,該實體具有確定其在AWS中可執行和不可執行的操作的權限策略。但是,角色旨在讓需要它的任何人代入,而不是唯一地與某個人員關聯。此外,角色沒有關聯的標準長期憑證(密碼或訪問密鑰)。相反,如果用戶擔任某個角色,則會動態創建臨時安全憑證併爲用戶提供該憑證。

實戰

AWS實戰 - 利用IAM對S3做訪問控制中,我們的實戰案例裏有一個存儲桶derek-public2,除了Harp-Admin,其餘IAM用戶都只有只讀權限,現在我們來建立一個擁有寫入該存儲桶權限的角色,以便在某些特殊情況下,普通IAM用戶可以臨時代入這個角色來修改存儲桶。

  • 使用Harp-Admin登錄IAM控制檯,點擊角色,創建角色;
  • 在選擇受信任實體的類型裏,選擇其他AWS賬戶,在賬戶ID中輸入本AWS賬號的ID

clipboard.png

  • 需要外部ID一般在授權其他AWS賬戶代入此角色的時候使用,需要MFA驗證看情況選擇;

clipboard.png

  • 點擊下一步,到了權限策略頁面,直接選擇創建策略即可,權限策略如下,命名爲edit_public2
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::derek-public2"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::derek-public2/*"
            ]
        }
    ]
}
  • 策略創建完成,回到創建角色頁面,勾選edit_public2,需要注意的是,一個IAM用戶切換角色後,它只會擁有角色賦予的權限,不會擁有IAM用戶原先自帶的權限,因此爲了正常訪問S3,我們再勾選s3_common_policy
  • 下一步創建tag,再下一步,角色名稱填寫爲Public2_Manager,點擊創建,角色創建完成;
  • 爲了讓賬戶下的普通IAM用戶可以正常訪問IAM控制面板,我們直接給之前創建的s3_common_group組添加一條AWS託管策略IAMReadOnlyAccess
  • 爲了給IAM用戶賦予切換角色的權限,我們需要再創建一條策略,附加給s3_common_group,策略json如下:
{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::712538533226:role/Public2_Manager"
    }
}
  • 使用user1登錄,進入S3,在derek-public2中創建文件夾,提示失敗;
  • 點擊右上角用戶處,點擊切換角色,跳轉到切換角色頁面,賬戶文本框中輸入賬戶ID,角色輸入Public2_Manager,然後點擊切換角色;

clipboard.png

  • 此時在derek-public2存儲桶下,已經可以正常建立文件夾了;

clipboard.png

  • 通過控制檯的角色切換在一個小時後自動失效,需要重新切換,也可以手動退出角色;
  • 也可以使用cli的方式切換角色,詳見切換到IAM角色(AWS CLI)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章