FMC — удалить все правила в категории ACP
-
Здравствуйте, Я пытаюсь удалить все правила ACP в данной категории (через REST API). Есть ли какой-нибудь способ получить ID правил доступа в этой категории? Я нашел только следующее: Когда я пытаюсь получить объект категории, я вижу следующие параметры: "metadata": { ....... "startIndex": 1, "endIndex": 4, .... } Однако это всего лишь индекс правила в категории... А не ID. Я не уверен, можно ли удалить правило по индексу Спасибо за любую помощь Роман
-
Я вижу здесь два возможных подхода К сожалению, я не нашел встроенного фильтра. Используя извлечение категории, вы получите результат, похожий на следующий: { "metadata": { "section": "Mandatory", "startIndex": 2, "endIndex": 3, "accessPolicy": { "type": "AccessPolicy", "name": "test_policy1", "id": "00000000-0000-0ed3-0000-004294969708" } }, "links": { "self": "https://fmc.cisco.com/api/fmc_config/v1/domain/e276abec-e0f2-11e3-8169-6d9ed49b625f/policy/accesspolicies/00000000-0000-0ed3-0000-004294969708/categories/00000000-0000-0ed3-0000-000268434436" }, "type": "Category", "id": "00000000-0000-0ed3-0000-000268434436", "name": "my_cat"
} Как вы указали, у вас есть индексы, поэтому вы можете воспользоваться ими и выполнить запрос к таблице правил, который будет выглядеть следующим образом: https://fmc.cisco.com/api/fmc_config/v1/domain/e276abec-e0f2-11e3-8169-6d9ed49b625f/policy/accesspolicies/00000000-0000-0ed3-0000-004294969708/accessrules?offset=1&limit=2&expanded=true Ключевые элементы здесь: offset=1&limit=2 Похоже, что индекс в объекте категории основан на 1, а индекс в смещении страницы основан на нуле. Итак, если мы посмотрим на исходный ответ, который мы получили: "startIndex": 2, "endIndex": 3, So your index covers 2 numbers (index 2 and index 3) so that is how we get the limit = 2 Чтобы преобразовать startIndex в нулевой, вычтите 1, и мы получим offset = 1 Вы также можете выполнить необработанный запрос по правилам доступа и вручную (в коде) отфильтровать поле метаданных category. Вы увидите блок, подобный следующему, в каждом возвращенном правиле, если запустите его в режиме expanded=true: "metadata": {
"ruleIndex": 2,
"section": "Mandatory",
"category": "my_cat",
"accessPolicy": {
«тип»: «AccessPolicy»,
«name»: «test_policy1»,
«id»: «00000000-0000-0ed3-0000-004294969708»
},
"timestamp": 1625611085506,
«domain»: {
«name»: «Global»,
"id": "e276abec-e0f2-11e3-8169-6d9ed49b625f",
«type»: «Domain»
}
}
После получения содержимого правила с помощью одного из этих подходов вам необходимо будет удалить его по значению ID, возвращенному в запросе правила, а не по индексу. Мне не известно о каком-либо API для удаления по индексу. -
Большое спасибо за быстрый ответ! Оба варианта интересны. Я попробую их. Я использую пакет «fmcapi» из github в качестве «обертки» для вызовов REST API. С REST API работать гораздо проще, но у него есть некоторые ограничения. Например, нет поддержки offset & limit
![:disappointed_face:] Вероятно, второй вариант будет проще реализовать: получить все правила в ACP
отфильтровать правила, где item.metadata.category == cat
удалить найденные ID
Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.
Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост может стать ещё лучше 💗
Зарегистрироваться Войти