Skip to content

Commit

Permalink
Feat: Add Authentication summary #10
Browse files Browse the repository at this point in the history
  • Loading branch information
luckylooky2 committed Jan 12, 2024
1 parent 7e7c588 commit b22946a
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions practice/chanhyle/role/01-Authentication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
### <전제>

- 위와 같은 모든 "유저 접근"은 kube-apiServer에 의해 관리됨
- 1. kubectl command
```shell
$> k create serviceaccount sa1
$> k get serviceaccount
```
- 2. REST API
```shell
$> curl https://kube-server-ip:6443
```
- 어떤 방식으로든 모든 요청은 kube-apiServer로 간다
- apiServer는...
- 1. 요청을 authenticate(인증)
- 2. authorize(인가, 승인)
- 3. 요청을 처리함

### <Authentication methods>

- 인증 방법

1. Static password files(w/ username)

- csv 파일에 user/pw를 저장하는 방법
- `--basic-auth-file=user-details.csv`를 추가하는 두 가지 방법
- 1. kube-apiserver.service 파일에 추가(kube-apiserver 재시작 필요)
- 2. /etc/kubernetes/manifests/kube-apiserver.yaml에 spec > containers > command 에 추가

```c
// User-details.csv
Password | username | userID
password123, user1, u0001
```

- 사용법

```shell
$> curl -v -k https://localhost:6443/api/v1/pods -u “user1:password123"
```

2. Static token file

- 위와 같지만 `--token-auth-file=user-token-details.csv`을 추가하면 됨
- csv에서도 패스워드 대신, 토큰 값으로 대체
- 쉽지만 안전하지 않기 때문에 위의 두 개는 추천하지 않음
- Auth file을 넘기기 위해 volume mount가 필요

- 사용법

```shell
$> curl -v -k https://localhost:6443/api/v1/pods --header "Authorization: Baearer Kp..."
```

3. Certificates

- 증명서를 이용하여 암호화하는 방법

4. Third party authentication protocol(LDAP, Kerberos …)

- 서드 파티 툴을 이용하여 인증 과정을 대신 처리하게 함

0 comments on commit b22946a

Please sign in to comment.