Использовать границу разрешений.Это позволит вам создать роль / пользователя, который может создавать другие политики и предоставлять других пользователей / ролей, только если они применяют вашу границу разрешений (границы разрешений - это просто политики AWS IAM под другим именем).Граница разрешений будет иметь ограничения, которые вам необходимо иметь.
Например, политика, которую вы прикрепляете к нашему недобросовестному пользователю, может быть
{
"Sid": "CreateRoleIffPermInPlace",
"Effect": "Allow",
"Action": [
"iam:CreateRole",
"iam:CreateUser"
.......
],
"Resource": *,
"Condition": {
"StringLike": {
"iam:PermissionsBoundary": "arn:aws:iam::123456789012:policy/myBillingPermissionBoundary"
}
}
},
{
"Sid": "DenyThisUserBilling",
"Effect": "Deny",
"Action": [
"aws-portal:ViewBilling",
"aws-portal:ViewUsage"
],
"Resource": "*"
}
Граница разрешений (другая отдельная политика), запрещающая выставление счетов, может тогда быть myBillingPermissionBoundary
{
"Sid": "DenyAnyOtherCreatedUserBilling",
"Effect": "Deny",
"Action": [
"aws-portal:ViewBilling",
"aws-portal:ViewUsage"
],
"Resource": "*"
},
Теперь каждый раз, когда плохой раздражающий пользователь создает новую роль или пользователя, ему необходимо присоединить границу разрешений myBillingPermissionBoundary , а поскольку myBillingPermissionBoundary запрещает выставление счетов новому пользователю, он не может иметь представление для выставления счетов.