2015-02-06 90 views
3

用例:在我們的應用程序中,我們需要給IAM實體授予iam : putUserPolicy權限。這是微不足道的。我們可以在下面提及的策略分配給IAM實體,這是我們想給iam : putUserPolicy許可如何只給AWS AWS「iam:putUserPolicy」權限?

{ 
    "Version":"2012-10-17", 
    "Statement":[ 
     { 
     "Effect":"Allow", 
     "Action":[ 
      "iam : putUserPolicy" 
     ], 
     "Resource":"*" 
     } 
    ] 
} 

比方說,我們有另外一個要求,並分配給putUserPolicy IAM用戶U1。這意味着現在U1可以將任何策略分配給任何IAM用戶。第二個「ANY」可以通過將"Resource":"*"更改爲"Resource":"user-arn"來避免,但我們如何處理第一個ANY? 有沒有辦法給"iam : putUserPolicy"權限,從而只把「iam : CreateUser"權限允許的?或許只有"iam : CreateUser"被阻止,並把其餘所有政策允許?

我通過AWS文檔去了,我發現conditions種有幫助然而,儘管我的確發現了一些用於EC2SNS我找不到任何IAM服務特定的鍵和值

我們可以分配以下策略的示例:

{ 
    "Version":"2012-10-17", 
    "Statement":[{ 
     "Effect":"Allow", 
     "Action":["s3:ListBucket"], 
     "Resource":"*", 
     "Condition":{"StringNotEquals":["s3:prefix":"arn:aws:s3:::BUCKET-NAME/home/"]} 
     } 
    ] 
} 

,它爲除特定存儲桶中的主文件夾以外的所有其他S3文件夾和存儲桶授予權限。

我們可以這樣做嗎?

{ 
    "Version":"2012-10-17", 
    "Statement":[{ 
     "Effect":"Allow", 
     "Action":["iam:PutUserPolicy"], 
     "Resource":"*", 
     "Condition":{"StringNotEquals":["iam:policy-contains":"iam:CreateUser"]} 
     } 
    ] 
} 

回答

1

AWS剛剛推出Managed Policies for AWS Identity & Access Management,它提供了一種新方法來共享和維護整個IAM實體IAM政策,特別是還包括委派權限管理,看到Controlling Access to Managed Policies

管理的策略,給你精確控制用戶如何管理策略和管理其他人的權限。 您可以單獨控制誰可以創建,更新和刪除策略,以及誰可以將策略附加到主體實體(用戶,組和角色)以及從主體實體分離。 您還可以控制用戶可以附加或脫離哪些策略,以及來自哪些實體和來自哪些實體。 [重點礦]

一個典型的情況是,您授予帳戶管理員創建,更新和刪除策略的權限。然後,您授予團隊負責人或其他有限管理員的權限,以附加和分離這些政策[...]。

Controlling Permissions for Attaching and Detaching Managed Policies提供實例策略,允許連接只有特定的管理政策,只有特定的組或角色,這在概念上讓你實現你在找什麼:

{ 
    "Version": "2012-10-17", 
    "Statement": { 
    "Effect": "Allow", 
    "Action": [ 
     "iam:AttachGroupPolicy", 
     "iam:AttachRolePolicy" 
    ], 
    "Resource": [ 
     "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:group/TEAM-A/*", 
     "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/TEAM-A/*" 
    ], 
    "Condition": {"ArnLike": 
     {"iam:PolicyArn": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:policy/TEAM-A/*"} 
    } 
    } 
}