我是 AWS 的新手,发现它不必要地杂乱无章和复杂。
我想授予开发人员在 AdministratorAccess 级别访问该帐户的权限,但通过不允许他创建其他用户或组来限制该访问权限。在不限制这一点的情况下,他可以创建一个有权访问计费的用户。我想确保没有人可以访问计费或创建可以访问计费的用户。
我怎么做?
我是 AWS 的新手,发现它不必要地杂乱无章和复杂。
我想授予开发人员在 AdministratorAccess 级别访问该帐户的权限,但通过不允许他创建其他用户或组来限制该访问权限。在不限制这一点的情况下,他可以创建一个有权访问计费的用户。我想确保没有人可以访问计费或创建可以访问计费的用户。
我怎么做?
您可以根据管理员访问权限创建客户托管的 IAM 策略并添加Deny
类似于以下内容的显式语句:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"iam:CreateGroup",
"iam:CreateUser",
...
],
"Resource": "*"
}
]
}
注意:上述限制是不够的,它们只是说明一般原则。要有效地限制用户,您还必须拒绝将托管策略附加到用户或组的操作或将内联策略以及更改已附加策略的操作。
一般来说,建议遵循最小权限原则,只给用户他们实际需要的权限。只有在极少数情况下,您应该从 AdministratorAccess 开始,然后逐步限制权限。最佳实践是从无权限开始,然后逐步添加所需内容。
PS:您还可以实施一种机制,自动将以下策略附加到所有用户,以有效拒绝所有成本浏览器和计费相关操作:
{
"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": "*"
}
]
}