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

介紹

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

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

實戰

AWS實戰 - 利用IAM對S3作訪問控制中,咱們的實戰案例裏有一個存儲桶derek-public2,除了Harp-Admin,其他IAM用戶都只有只讀權限,如今咱們來創建一個擁有寫入該存儲桶權限的角色,以便在某些特殊狀況下,普通IAM用戶能夠臨時代入這個角色來修改存儲桶。json

  • 使用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)
相關文章
相關標籤/搜索