用例:在我们的应用程序中,我们需要向IAM实体授予iam : putUserPolicy
权限。这是微不足道的。我们可以将下面提到的策略分配给我们要向其提供{1}}权限的IAM实体
iam : putUserPolicy
我们说我们有另一项要求,并将{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"iam : putUserPolicy"
],
"Resource":"*"
}
]
}
分配给IAM用户U1。这意味着现在U1可以为任何IAM用户分配任何策略。第二个" ANY"可以通过将putUserPolicy
更改为"Resource":"*"
来避免,但我们如何处理第一个问题?
有没有办法授予"Resource":"user-arn"
权限,以便只允许使用" "iam : putUserPolicy"
权限?或者可能只有iam : CreateUser"
被阻止,并且允许所有策略休息?
我浏览了AWS文档,发现conditions有点帮助,但我找不到任何特定于IAM服务的密钥和值,尽管我找到了一些EC2和SNS
作为示例,我们可以分配以下政策:
"iam : CreateUser"
,它授予除特定存储桶中的主文件夹以外的所有其他S3文件夹和存储桶的权限。
我们可以这样做吗?
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":["s3:ListBucket"],
"Resource":"*",
"Condition":{"StringNotEquals":["s3:prefix":"arn:aws:s3:::BUCKET-NAME/home/"]}
}
]
}
答案 0 :(得分:1)
AWS刚刚推出了Managed Policies for AWS Identity & Access Management,它提供了一种在IAM实体之间共享和维护IAM策略的全新方法,特别是还包括委派权限管理,请参阅Controlling Access to Managed Policies:< / p>
托管策略可让您精确控制用户管理策略的方式以及管理其他人的权限。 您可以单独控制谁可以创建,更新和删除策略,以及谁可以在主体实体之间附加和分离策略(用户,组和角色)。 您还可以控制用户可以附加或分离的政策,以及与哪些实体相关联。 [强调我的]
典型情况是您授予帐户管理员创建,更新和删除策略的权限。然后,您向团队领导或其他有限管理员授予附加和分离这些策略的权限[...]。
部分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/*"}
}
}
}