如何使用无法创建新用户或组的AdministratorAccess访问权限创建管理员组

问题描述

我是AWS的新手,发现它不必要地变得混乱和复杂。

我想给开发人员一个在AdministratorAccess级别的帐户访问权限,但是通过不允许他创建其他用户或组来限制该访问权限。在不限制于此的情况下,他可以创建有权访问计费的用户。我想确保没有人可以访问帐单,也不能创建可以访问帐单的用户

我该怎么做?

解决方法

您可以基于管理员访问权限创建客户管理的IAM策略,并添加类似于以下内容的显式Deny语句:

{
    "Version": "2012-10-17","Statement": [
        {
            "Effect": "Allow","Action": "*","Resource": "*"
        },{
            "Effect": "Deny","Action": [
                "iam:CreateGroup","iam:CreateUser",...
            ],"Resource": "*"
        }
    ]
}

注意:上述限制是不够的,它们仅说明了一般原则。为了有效地限制用户,您还必须拒绝附加托管策略的操作或将内联策略放置到用户或组以及更改已附加策略的操作。

通常,建议遵循最低特权原则,并仅向用户提供他们实际需要的权限。仅在极少数情况下,您应该从AdministratorAccess开始,然后逐步限制权限。最好的做法是从没有权限开始,然后逐步添加所需的内容。


P.S .:您还可以实施一种机制,将以下策略自动附加到所有用户,以有效地拒绝所有与费用管理工具和结算相关的操作:

{
    "Version": "2012-10-17","Statement": [
        {
            "Effect": "Deny","Action": [
                "aws-portal:*Billing","aws-portal:*Usage","aws-portal:*PaymentMethods","ce:UpdatePreferences","ce:CreateReport","ce:UpdateReport","ce:DeleteReport","ce:CreateNotificationSubscription","ce:UpdateNotificationSubscription","ce:DeleteNotificationSubscription","cur:DescribeReportDefinitions","cur:PutReportDefinition","cur:ModifyReportDefinition","cur:DeleteReportDefinition","purchase-orders:*PurchaseOrders"
            ],"Resource": "*"
        }
    ]
}