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