gpt4 book ai didi

amazon-web-services - 当 CF 堆栈更新失败时准确确定缺少哪个 IAM 权限

转载 作者:行者123 更新时间:2023-12-03 07:16:25 26 4
gpt4 key购买 nike

当 CloudFormation 堆栈由于缺少权限而无法部署时,您会收到或多或少有用的错误消息。

就我而言,我的 CI 管道为 Web 应用程序部署了 CloudFormation 模板,包括 S3 存储桶、CloudFront 发行版和一些其他资源。CI 使用 IAM 用户。

大多数时候这工作正常,但是,有时我的 CI 用户会收到如下错误:

The following resource(s) failed to update: [CloudFrontDistribution].
Resource handler returned message: "Access denied for operation 'AWS::CloudFront::Distribution'."
(RequestToken: 1014641b-7590-f7b3-2ea2-1ddcd32e92a3, HandlerErrorCode: AccessDenied)

为了向我的 CI IAM 用户提供尽可能窄的权限集,我想确切地知道需要什么。但是,上面的错误消息并未指定任何 IAM 操作;事实上,该消息非常神秘,表示失败的操作是 AWS::CloudFront::Distribution(这是一种资源类型,而不是操作或 IAM 操作)。我前往 CloudTrail 查看是否可以找到该用户出现 AccessDenied 错误的事件,但没有成功。我只能看到 ExecuteChangeSet 操作,从 CloudTrail 的角度来看,该操作是成功的。

由于我在任何日志中找不到更多详细信息,并且我不想对可能需要或可能不需要的 50 多个操作进行反复试验,最终我放弃并添加了 CloudFront:* 到我的 IAM 用户的权限集。然而,这让我很烦恼;我想了解需要什么,而不是采用通配符路线,因为这样做会创建过于广泛的权限,这反过来又是糟糕的安全实践。

当原因是权限不足时(例如上面的情况),是否可以找到有关 CF 模板部署失败的更多详细信息?

最佳答案

我修复了这个问题,添加了以下权限,即使列表权限是完全开放的,至少也比cloudfront更好:*

"cloudfront:GetDistribution",
"cloudfront:CreateDistribution",
"cloudfront:DeleteDistribution",
"cloudfront:UpdateDistribution",
"cloudfront:List*",

关于amazon-web-services - 当 CF 堆栈更新失败时准确确定缺少哪个 IAM 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73658576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com