2017-02-20 12 views
1

Я нашел несколько человек, которые пытались справиться с этим, только слегка релевантные сообщения here и here, но не решают его для меня.Kubernetes Режим ABAC не работает

Проблема: Я хочу создать пользователя только для чтения для своего кластера с использованием политики ABAC. В моем кластере есть 3 мастера и 3 работника, версия 1.4.7, размещенная на AWS.

Я редактировал мои манифестов/apiserver.yml как и на всех 3-х мастеров (добавлены эти 3 линии - в нижней части файла, конечно, я смонтировал соответствующие пути и т.д ..):

  • - маркер-аутентификации-файл =/и т.д./kubernetes/Политика/пользователя tokens.csv
  • --authorization режим = ДКС
  • --authorization-политика-файл =/и т.д./kubernetes/Политика/apiusers.yml

my apiuser.yml выглядит следующим образом:

{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"group": "system:authenticated", "readonly": true, "nonResourcePath": "*", "namespace": "*", "resource": "*", "apiGroup": "*"}} 

Мои пользователи-token.csv выглядит следующим образом:

tdU0ynyO3wG6UAzwWP0DO7wvF2tH8pbH,bob,bob 

Мой файл kubeconfig имеет это в нем:

users: 
- name: bob 
    user: 
    token: tdU0ynyO3wG6UAzwWP0DO7wvF2tH8pbH 

Когда я пытаюсь kubectl get nodes это упущение, я могу напечатать выход с --v = 8, если он имеет значение, но в основном говорит Forbidden(403). Мне кажется, что у меня отсутствует что-то принципиальное, политика на месте и блокирование всех и каждого, хотя это должно позволить аутентифицированным пользователям читать только права.

Любая помощь или предложения были бы наиболее ценными.

ответ

1

system:authenticated группа была добавлена ​​в 1,5

до 1.5, вы можете использовать "user":"*"

+0

Ах Джордан Я просто читала ваши другие сообщения .. Удивительно, что это то, что мне не хватало. У меня недостаточно кредитов, чтобы проголосовать за вас, но это точно то, что я считаю правильным. –

+0

еще один вопрос, если я хочу, чтобы другой пользователь был администратором, это было бы: «spec»: {«user»: «core-admin», «nonResourcePath»: «*», «namespace»: «*», "resource": "*", "apiGroup": "*"}}? а затем в моем kubeconfig я бы установил другой контекст для того же кластера (и добавил имя пользователя и т. д.)? или есть лучший способ сделать это? –

+0

Я ответил сам себе. То, что я написал выше, правильно, важно появление объекта политики, т. Е. Администратор должен быть первой строкой. –