2015-02-06 6 views
3

Использование: В нашем приложении нам необходимо предоставить разрешения iam : putUserPolicy для объектов IAM. Это тривиально. Мы можем назначить политику, упомянутую ниже в IAM объекта, к которому мы хотим дать iam : putUserPolicy разрешенийКак я могу предоставить только определенные разрешения AWS «iam: putUserPolicy»?

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

Допустим, у нас есть еще одно требования и назначить putUserPolicy для IAM пользователя U1. Это означает, что теперь U1 может назначить ЛЮБУЮ политику любому пользователю IAM. Второе «ЛЮБОЕ» можно избежать, изменив "Resource":"*" на "Resource":"user-arn", но как мы имеем дело с первым ЛЮБОЙ? Есть ли способ, чтобы дать "iam : putUserPolicy" разрешения таким образом, чтобы положить только "iam : CreateUser" разрешения разрешено? Или, возможно, только "iam : CreateUser" блокируется, и положить остальные все политики дают?

Я прошел через документацию AWS, и я нашел conditions вид полезные но я не мог найти ключи IAM обслуживания конкретных и ценности, хотя я нашел некоторые для EC2 и SNS

в качестве примера можно сопоставить следующую политику:.

{ 
    "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:

Управляемые политики дают вам точный контроль над тем, как ваши пользователи могут управлять политиками и управлять разрешениями для других. Вы можете отдельно управлять тем, кто может создавать, обновлять и удалять политики, и кто может прикреплять и отделять политики от основных лиц (пользователей, групп и ролей). Вы также можете контролировать, какие политики пользователь может подключить или отключить, а также от каких объектов и от каких объектов. [emphasis mine]

Типичным сценарием является предоставление разрешения администратору учетной записи для создания, обновления и удаления политик. Затем вы даете разрешения руководителю группы или другому ограниченному администратору прикреплять и отделять эти политики [...].

Раздел 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/*"} 
    } 
    } 
} 
Смежные вопросы