我有一个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)
我已检查我的服务角色是否具有上述所有权限。
有人可以指出我的可能原因吗?我真的很感激。谢谢。
答案 0 :(得分:2)
这是所需的行为,因为它不应删除任何网络接口。
这是一个错误的假设。如果您的构建项目使用VPC配置,则CodeBuild将在您的帐户中创建一个网络接口并将其附加到构建容器,以便该构建容器可以访问VPC资源(例如数据库)。构建完成后,CodeBuild将删除此网络接口。代码构建文档中明确记录了对“ ec2:DeleteNetworkInterface”的要求:
我同意试运行的行为可能已经改变,但是并不能改变每次项目使用VPC配置时都需要'DeleteNetworkInterface'权限的事实。