2017-02-20 2 views
1

이 문제를 해결하기 위해 노력한 사람이 몇 명 있었지만 약간 관련성이 높은 게시물 herehere 만 찾았지만 해결하지 못했습니다.Kubernetes ABAC 모드가 작동하지 않습니다.

문제 : ABAC 정책을 사용하여 클러스터에 대한 읽기 전용 사용자를 만들고 싶습니다. 클러스터에 AWS에 호스트 된 3 명의 마스터와 3 명의 작업자 버전 1.4.7이 있습니다.

  • 을 - : - (.. 물론 파일의 맨 아래에 내가 관련 경로 등을 장착 추가이 3 개 라인)

    나는 그렇게 3 개 마스터에서처럼 내 명단/apiserver.yml 편집 토큰 인증 파일 =/기타 /는 Kubernetes/정책/사용자 tokens.csv

  • --authorization 모드 = ABAC
  • --authorization 정책 파일 =/기타 /는 Kubernetes/정책/apiusers.yml

내 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

나는 스스로에게 대답했다 .. 내가 위에서 쓴 것은 정확하다. 정책 객체의 출현에 중요성이있다. 즉, 관리자는 첫 번째 줄이어야한다. –

관련 문제