Список секретов, используемых определенным модулем в K8s

#kubernetes #kubectl #kubernetes-secrets

Вопрос:

Я хотел бы знать, kubectl предлагает ли простой способ перечислить все секреты, которые использует определенный pod / deployment / statefulset, или есть какой-то способ чистого извлечения этой информации. Когда я делаю kubectl describe для модуля, я вижу, что могу получить список смонтированных томов, которые включают в себя те, которые исходят из секретов, которые я мог бы извлечь, используя jq и тому подобное, но этот способ кажется немного неуклюжим. Я немного поискал, но безрезультатно. Вы не знаете, есть ли что-нибудь подобное поблизости? Возможно, используя API напрямую?

Ответ №1:

Чтобы перечислить все секреты, используемые в настоящее время модулем, используйте:

 kubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name' | grep -v null | sort | uniq
 

С другой стороны, если вы хотите получить доступ к сохраненным секретам в API:

Секреты Kubernetes по умолчанию хранятся в незашифрованном виде в базовом хранилище данных сервера API (etcd). Любой, у кого есть доступ к API, может получить или изменить секрет, так же как и любой, у кого есть доступ к etcd. Кроме того, любой, кто имеет право создавать Pod в пространстве имен, может использовать это, чтобы безопасно использовать секреты, выполните по крайней мере следующие шаги:

  • Включите шифрование в состоянии покоя для секретов.
  • Включить или настроить правила RBAC, которые ограничивают чтение данных в секретах (в том числе с помощью косвенных средств).
  • При необходимости также используйте такие механизмы, как RBAC, чтобы ограничить, каким участникам разрешено создавать новые секреты или заменять существующие
    . доступ для чтения любого секрета в этом пространстве имен; это включает
    косвенный доступ, такой как возможность создания развертывания.

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

Комментарии:

1. Извините, что так долго отмечали ваш ответ как принятый! Ошибка с моей стороны. Большое вам спасибо!