2017-12-29 4 views
0

질문

How to Add Users to Kubernetes (kubectl)?과 같이 서비스 계정을 만들고 토큰을 얻는 방법이 있지만 일반 사용자의 토큰을 얻거나 만들 수있는 방법이 있습니까? Kubernetes에서 일반 사용자를위한 토큰을 만드는 방법이 있습니까?

이어 Configure RBAC In Your Kubernetes Cluster

배경 일반 사용자를 만들었다.

다음과 같이 클러스터 역할을 사용자에게 바인딩하십시오 (이것이 맞는지 확실하지 않습니다. 제안 사항을 생각해보십시오). 사용자 토큰을 만들어 대시 보드에 액세스하는 방법을 사용하고 있지만 수행 방법을 모르겠습니다.

kind: ClusterRole 
apiVersion: rbac.authorization.k8s.io/v1beta1 
metadata: 
    namespace: kube-system 
    name: dashboard-admin-role 
rules: 
- apiGroups: ["*"] 
    resources: ["*"] 
    verbs: ["get", "list", "watch"] 

kind: ClusterRoleBinding 
apiVersion: rbac.authorization.k8s.io/v1beta1 
metadata: 
    name: dashboard-admin-rolebinding 
    namespace: office 
subjects: 
- kind: User 
    name: myuser 
    apiGroup: "rbac.authorization.k8s.io" 
roleRef: 
    kind: ClusterRole 
    name: dashboard-admin-role 
    apiGroup: "rbac.authorization.k8s.io" 

+0

는 답변이 도움이되었다 가져 오기? – fiunchinho

답변

1

API requests are tied to either a normal user or a service account, or are treated as anonymous requests.

  • 일반 사용자는 외부 독립 서비스 (개인 키, Google 계정과 같은 타사, 사용자 이름과 암호의 목록도 파일)에 의해 관리되는 것으로 가정한다. Kubernetes에는 일반 사용자 계정을 나타내는 개체가 없습니다.
  • 서비스 계정은 특정 네임 스페이스에 바인딩 된 Kubernetes API에 의해 관리되는 사용자입니다. 서비스 계정은 비밀로 저장된 자격 증명 집합과 연결됩니다. 서비스 계정 베어러 토큰은 클러스터 외부에서 사용할 때 완벽하게 유효하며 Kubernetes API와 통신하려는 오랜 직무에 대한 ID를 만드는 데 사용할 수 있습니다. 수동으로 서비스 계정을 만들려면 kubectl create serviceaccount ACCOUNT_NAME 명령을 사용하십시오. 그러면 현재 네임 스페이스에 서비스 계정이 생성되고 API 서버의 공용 CA와 서명 된 JSON 웹 토큰 (JWT)을 보유하는 연관된 비밀이 생성됩니다.

따라서 serviceaccount를 생성 한 다음 use that token to authenticate the requests to the API을 생성 할 수 있습니다. 이 예와 유사

뭔가

$ kubectl create serviceaccount jenkins 
serviceaccount "jenkins" created 
$ kubectl get serviceaccounts jenkins -o yaml 
apiVersion: v1 
kind: ServiceAccount 
metadata: 
    # ... 
secrets: 
- name: jenkins-token-1yvwg 

그리고 토큰

$ kubectl get secret jenkins-token-1yvwg -o yaml 
apiVersion: v1 
data: 
    ca.crt: (APISERVER'S CA BASE64 ENCODED) 
    namespace: ZGVmYXVsdA== 
    token: (BEARER TOKEN BASE64 ENCODED) 
kind: Secret 
metadata: 
    # ... 
type: kubernetes.io/service-account-token 
관련 문제