AWS CodeBuild 由于 UNAUTHORIZED_OPERATION_DELETE_NETWORK_INTERFACE 错误而失败

Do *_*Kim 3 amazon-web-services amazon-iam aws-codebuild

我有一个出现此错误的 CodeBuild 服务

UNAUTHORIZED_OPERATION_DELETE_NETWORK_INTERFACE:服务角色无权执行 ec2:DeleteNetworkInterface

我正在使用的服务角色具有 的必要权限ec2:DeleteNetworkInterface,但它被全局拒绝策略阻止 - 直到最近这一切都很好,因为之前 CodeBuild 一直使用DeleteNetworkInterface--dry-run标志运行。它只是检查我是否拥有权限而不是实际执行它。这是期望的行为,因为它不应该删除任何网络接口。这已经工作了几个月了。

但是,现在它失败了,因为--dry-run不再设置标志。我真的很困惑为什么,因为管道尚未更新并且到目前为止运行良好。

我们还发现了工作命令序列与失败命令序列之间的这些差异:

** Working sequence: "DescribeVpcs" is presented
DescribeSubnets
DescribeVpcs
DescribeNetworkInterfaces
DeleteNetworkInterface (Client.DryRunOperation)

** Failed sequence: DescribeVpcs is missed
DescribeSubnets
DescribeNetworkInterfaces
DeleteNetworkInterface (Client.UnauthorizedOperation)
Run Code Online (Sandbox Code Playgroud)

我已检查我的服务角色是否具有上述所有权限。

有人能指出我可能的原因吗?我真的很感激。谢谢。

sha*_*aws 7

这是期望的行为,因为它不应该删除任何网络接口。

这是一个错误的假设。如果您的 Build 项目使用 VPC 配置,CodeBuild 将在您的帐户中创建一个网络接口并将其附加到 Build 容器,以便构建容器可以访问 VPC 资源,例如数据库。构建完成后,CodeBuild 将删除此网络接口。CodeBuild 文档中清楚地记录了“ec2:DeleteNetworkInterface”的要求:

我同意试运行行为可能已发生变化,但它不会改变每次项目使用 VPC 配置时都​​需要“DeleteNetworkInterface”权限的事实。