Kubernetes api
Материал из InformationSecurity WIKI
Версия от 12:11, 13 марта 2022; Drakylar (обсуждение | вклад) (Новая страница: «Категория:Pentest Страница посвящена командам kubectl и curl, которые позволяют работать с Kubern…»)
Страница посвящена командам kubectl и curl, которые позволяют работать с Kubernetes API.
Похожую информацию можно найти тут https://kubernetes.io/ru/docs/reference/kubectl/cheatsheet/
Содержание
Настройка утилит
kubectl
Для общения с API можно воспользоваться стандартным ПО kubectl.
Пример запроса:
1 kubectl get secrets
Запросы можно делать inline с токеном:
1 kubectl --token=$TOKEN --server=$APISERVER --insecure-skip-tls-verify=true
curl
Для curl кроме стандартных параметров (токен, неймспейс) потребуется адрес API-сервера.
1 export APISERVER=${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT_HTTPS}
2 export SERVICEACCOUNT=/var/run/secrets/kubernetes.io/serviceaccount
3 export NAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)
4 export TOKEN=$(cat ${SERVICEACCOUNT}/token)
5 # Лишняя строка, но можно использовать с curl --cacert ${CACERT}
6 # export CACERT=${SERVICEACCOUNT}/ca.crt
7
8 curl -k --header "Authorization: Bearer ${TOKEN}"
Запросы
Запросы будут разделены на ресурсы, к которым их отправляют.
Текущая конфигурация
Конфиг
Общая информация
1 kubectl config view
Пользователи
Список пользователей
1 kubectl config get-users
2 kubectl config view -o jsonpath='{.users[*].name}'
Удалить пользователя
1 kubectl config unset users.foo
Контексты
Список контекстов
1 kubectl config get-contexts
Текущий контекст
1 kubectl config current-context
Установить контекст
1 kubectl config use-context my-cluster-name
Namespace
Установить namespace по-умолчанию
1 kubectl config set-context --current --namespace=ggckad-s2