Использование: В нашем приложении нам необходимо предоставить разрешения 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"]}
}
]
}