AWS Ошибка CodeBuild из-за ошибки UNAUTHORIZED_OPERATION_DELETE_NETWORK_INTERFACE - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть служба 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 голосов
/ 04 апреля 2020

И это желаемое поведение, поскольку оно не должно удалять сетевые интерфейсы.

Это неверное предположение. Если ваш проект сборки использует конфигурацию VP C, CodeBuild создаст сетевой интерфейс в вашей учетной записи и присоединит его к контейнеру сборки, чтобы контейнер сборки мог обращаться к ресурсам VP C, например, к базе данных. CodeBuild удалит этот сетевой интерфейс после завершения сборки. Требование "ec2: DeleteNetworkInterface" четко задокументировано в документации CodeBuild:

Я согласен, что поведение при запуске dry могло измениться, но это не меняет того факта, что вам необходимо разрешение «DeleteNetworkInterface» каждый раз, когда ваш проект использует конфигурацию VP C.

...