用例:在我們的應用程序中,我們需要給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種有幫助然而,儘管我的確發現了一些用於EC2和SNS我找不到任何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"]}
}
]
}