在我们的AWS账户下,我们有多种产品,每种产品都是自己的Cloudformation Stacks。整个产品堆栈是Dynamo / Serverless / Cognito。
最近,我们的一位客户吸引了外部承包商来开发特定产品。
有没有办法限制他们在我们帐户内对以Cloudformation部署的所有资源的访问权限?
我已经尝试过以下操作,并在cloudformation下使用环境(产品/主产品)和产品标签来标记资源:
{
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*",
"Condition": {
"ForAllValues:StringEquals": {
"aws:ResourceTag/Product": "productName",
"aws:ResourceTag/Environment": "productEnviroment"
}
}
}
]
}
这不起作用,似乎可以访问所有内容。扭转这种状况并拒绝所有已加标签的内容,然后直接应用特定操作似乎也不起作用。
答案 0 :(得分:1)
您可以创建组织单位并向其添加帐户,这些帐户只能访问这些 OU 内的资源。它是分层的,因此您的根帐户可以访问所有内容,依此类推。
组织 -> OU1 -> OU2 -> OU3
不幸的是,没有 CloudFormation for Organizations,而是 CLI is pretty straightforward。
如果你想自动化这个,我会做一些类似的事情: