1
我们有多个共享AWS生产帐户的团队。我们希望每个团队都能获得自己的IAM角色,使他们能够创建接近所有类型的资源(AdministratorAccess)。 但是为了分开团队而不是修改彼此的堆栈,我们需要一种机制来防止这种情况发生。将IAM角色限制为CRUD使用特定标签的CloudFormation堆栈
有什么选择来实现这一目标?
我们有多个共享AWS生产帐户的团队。我们希望每个团队都能获得自己的IAM角色,使他们能够创建接近所有类型的资源(AdministratorAccess)。 但是为了分开团队而不是修改彼此的堆栈,我们需要一种机制来防止这种情况发生。将IAM角色限制为CRUD使用特定标签的CloudFormation堆栈
有什么选择来实现这一目标?
您可以在政策文件中使用Condition
字段。
例如,下面的政策将确保您只能删除/重新启动/修改DBInstance,只有当您的用户名被标记为所有者。
{
"Action": [
"rds:DeleteDBInstance",
"rds:RebootDBInstance",
"rds:ModifyDBInstance"
],
"Effect": "Allow",
"Resource": "*",
"Condition": {
"StringEqualsIgnoreCase": {
"rds:db-tag/Owner": "${aws:username}"
}
}
}
请访问Example Policies获取其他示例。
希望这有助于!
如果这需要管理员执行堆栈创建,那么它仍然适合您的用例吗?例如,我还没有尝试过,但应该很容易将teamA角色的ARN注入堆栈并应用更新策略,只删除该堆栈的策略。但为了防止团队A在其他堆栈上运行更新,他们在创建角色时必须固定到特定的资源或堆栈,这样他们就不会被允许创建新的东西。这会限制太多吗? –
该团队应该是从创建堆栈的一开始就是管理员。因此,例如,我喜欢为角色创建策略,该策略只启用在具有特定标签值的堆栈上创建/更新/删除。 –