由于UNAUTHORIZED_OPERATION_DELETE_NETWORK_INTERFACE错误,AWS CodeBuild失败

时间:2020-04-02 15:19:20

标签: 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)

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

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

1 个答案:

答案 0 :(得分:2)

这是所需的行为,因为它不应删除任何网络接口。

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

我同意试运行的行为可能已经改变,但是并不能改变每次项目使用VPC配置时都需要'DeleteNetworkInterface'权限的事实。