Это невозможно из-за конструктивных ограничений Google IAM.
В Google IAM разрешения соответствуют 1: 1 с методами REST . Для вызова метода вызывающей стороне требуется это разрешение. Другими словами, разрешения предоставляются для методов, которые вызывают их, а не для объектов , чтобы изменять / переименовывать / удалять их, как это было бы необходимо в вашем случае. Вы ведь хотите удалить определенный объект?
Чтобы получить более детальный доступ, вам необходимо явно назначить политику с настраиваемой ролью для объекта подписки, но вряд ли вы сможете назначить настраиваемую роль Pub / Sub ниже уровня проекта.
Создатель подписки не становится «администратором» созданного объекта, как это может быть в службе управления доступом с разрешениями, назначенными для объектов. Если явное назначение политики с настраиваемой ролью для только что созданной подписки было возможно, это должно быть сделано учетной записью с ролью, которая может управлять разрешениями: например, pubsub.admin
. Это означает, что вам придется предоставить эту роль своей учетной записи службы в дополнение к существующей настраиваемой роли с разрешениями pubsub.subscriptions.create
и *.delete
. Как только вы это сделаете, принцип наименьших привилегий станет бессмысленным.
Общие сведения о пользовательских ролях IAM
Документация Cloud IAM> Общие сведения о ролях> Роли Pub / Sub
Контроль доступа > Необходимые разрешения
Контроль доступа> Роли