關於AWS IAM Role如何配置臨時token訪問S3 小結

1. 這篇文章主要是想記錄一下如何通過token本地訪問、測試S3而不是直接使用IAM User的Access keys。簡而言之就是通過StsClient assumeRole獲取臨時的credentials然後生成S3Client。

詳細的IAM, STS相關的官網文檔可以參考這裏

2. 第一步先在這裏創建一個IAM User

 1) 輸入UserName,並且編程接口,然後下一步直接Next不賦予權限,Tag可以忽略。

2) Review界面如圖:

3. 然後創建IAM Role。

1) 輸入你的AccountID,並且爲了安全,可以輸入external ID,這裏假設輸入的是“Required”,如圖:

 

 2) Attach權限,選擇“AmazonS3FullAccess”,如圖:

3) 輸入IAM Role名稱,假設這裏輸入的是“TestUserRoleForS3”,如圖:

4) 創建Role之後,就能得到Role ARN,如圖:

 4. 現在已經給TestUser添加了Role了,那麼接下來就是配置TesUser的policy來assume role了。

1) TestUser的Permissions配置的右下角“Add inline policy”,如圖:

2)  然後,輸入以下的policy並假設命名爲“TestUserRoleSTS”,如圖:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::123456789101:role/TestUserRoleForS3"
        }
    ]
}

5. 以上配置IAM role使得我們可以通過Sts Client來獲取Credentials並且訪問S3,具體的代碼可以參考:

關於應用程序中使用STS切換IAM角色

 

注:

1. 如果遇見User is not authorized to perform: iam:PassRole on resource,可能是生成Credentials的時候缺少了external id配置;

2. 如果需要通過cli方式驗證結果,可以參考:關於 AWS IAM Role 的最佳實踐

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章