IAM权限边界无法防止CDK权限逃逸?

0

【以下的问题经过翻译处理】 我创建了一个IAM用户,并附加了一个“权限界限策略”(Permission Boundary Policy) 然而,当我部署CDK堆栈时,权限界限无法生效。我的终端设置有IAM用户的access_key_id和secrete_access_key(已附加权限界限)。

以下是堆栈代码:

cdk deploy iamUserWitthAdminAccess

new aws_iam.User( this, "IamUserWithAdminAccess", { managedPolicies: [ aws_iam.ManagedPolicy.fromAwsManagePolicyName("AdmininstratorAccess")] } )

然后我能够创建一个具有AdminAccess的IAM用户。有人能够解释一下吗?如何最好地预防CDK创建Admin用户?

1 回答
0

【以下的回答经过翻译处理】 将用于“cdk deploy”的IAM用户的权限边界附加到用户身上并不能限制您想要的部署方式。事实上,“cdk deploy”本质上只是创建一个CloudFormation堆栈并调用CloudFormation服务执行实际的资源创建。CDK向CloudFormation服务传递了一个角色,该角色范围限制了部署权限。默认情况下,这是一个不受限制的“AdministratorAccess”角色,因此您需要应用权限边界到这个角色。

最佳实践是customize your CDK bootstrapping

您可以编辑模板本身并将权限边界应用于引导模板中定义的角色。然后,您使用自定义模板引导CDK环境:

cdk bootstrap --show-template > custom-template.yaml
cdk bootstrap --template custom-template.yaml

或者,仅在引导时指定部署角色的受限策略:

cdk bootstrap --cloudformation-execution-policies <list-of-policy-arn>

您可以在GitHub上的AWS BootstrapKit示例存储库中找到customize your CDK bootstrapping模板的示例。此外,请查看CDK存储库中的此GitHub问题

profile picture
专家
已回答 3 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则