146 lines
3.0 KiB
Markdown
146 lines
3.0 KiB
Markdown
# Teleport 권한 관리
|
|
|
|
## 권한 관리
|
|
|
|
참고 주소 : [https://goteleport.com/docs/access-controls/getting-started/](https://goteleport.com/docs/access-controls/getting-started/)
|
|
|
|
## Management > User Roles 에서 관리
|
|
|
|
```yaml
|
|
kind: role
|
|
metadata:
|
|
id: 1704266501288770282
|
|
name: datasaker
|
|
spec:
|
|
allow:
|
|
logins:
|
|
- dev2
|
|
node_labels:
|
|
ipaddr: '*'
|
|
deny:
|
|
logins:
|
|
- guest
|
|
node_labels:
|
|
group:
|
|
- prod-node
|
|
- prod-master
|
|
- proxy
|
|
options:
|
|
cert_format: standard
|
|
client_idle_timeout: 10m0s
|
|
create_db_user: false
|
|
create_desktop_user: false
|
|
desktop_clipboard: true
|
|
desktop_directory_sharing: true
|
|
enhanced_recording:
|
|
- command
|
|
- network
|
|
forward_agent: false
|
|
idp:
|
|
saml:
|
|
enabled: true
|
|
max_session_ttl: 8h0m0s
|
|
pin_source_ip: false
|
|
port_forwarding: true
|
|
record_session:
|
|
default: best_effort
|
|
desktop: true
|
|
ssh_file_copy: true
|
|
version: v5
|
|
```
|
|
|
|
현재 모든 사용자 계정에서 공통적으로 적용되는 2개의 Roles `datasaker` , `app-connect` 사용중
|
|
|
|
|
|
|
|
## 허용
|
|
|
|
```yaml
|
|
allow:
|
|
logins:
|
|
- dev2
|
|
node_labels:
|
|
ipaddr: '*'
|
|
```
|
|
|
|
`allow` 하위에 작성된 조건에 따라 허용이 가능
|
|
|
|
* `logins` : SSH 접속을 위해 사용할 User
|
|
* `node_labels` : 해당 label을 가진 서버 조회 가능
|
|
* `app_labels` : 해당 label을 가진 애플리케이션 조회 가능
|
|
|
|
|
|
|
|
## 차단
|
|
|
|
```yaml
|
|
deny:
|
|
logins:
|
|
- guest
|
|
node_labels:
|
|
group:
|
|
- prod-node
|
|
- prod-master
|
|
- proxy
|
|
```
|
|
|
|
`deny` 하위에 작성된 조건에 따라 차단 가능
|
|
|
|
* `logins` : 작성한 User를 통한 접속 차단
|
|
* `node_labels` : 해당 label을 통해 특정 서버들 조회 및 접근 차단 가능
|
|
|
|
위 예는 group: prod-node , group: prod-master , group: proxy label 을 가진 서버 차단
|
|
|
|
|
|
|
|
## 적용
|
|
|
|
Management > Auth Connectors > EDIT CONNECTOR
|
|
|
|
```yaml
|
|
kind: github
|
|
metadata:
|
|
name: github_connector
|
|
spec:
|
|
api_endpoint_url: ""
|
|
client_id: 09a1dd5746d8b1727835
|
|
client_secret: 368294562e65f8cef49fed3c5781b6892be46087
|
|
display: GitHub
|
|
endpoint_url: ""
|
|
redirect_url: https://teleport.kr.datasaker.io/v1/webapi/github/callback
|
|
teams_to_logins: null
|
|
teams_to_roles:
|
|
- organization: CloudMOA
|
|
roles:
|
|
- app-connect
|
|
- datasaker
|
|
team: saas
|
|
- organization: CloudMOA
|
|
roles:
|
|
- datasaker
|
|
- app-connect
|
|
team: saas_teleport
|
|
version: v3
|
|
```
|
|
|
|
|
|
|
|
```yaml
|
|
- organization: CloudMOA
|
|
roles:
|
|
- datasaker
|
|
- app-connect
|
|
team: saas_teleport
|
|
```
|
|
|
|
해당 부분의 roles 부분에 작성하여 role 적용
|
|
|
|
|
|
|
|
`team` 같은 경우 Github의 Team 에서 조회 가능
|
|
|
|
|
|
|
|

|
|
|
|
웹브라우저 상 주소의 맨 뒷 부분에 적혀있는 내용이 `team:` 에 입력되는 값 ex) saas |