curity

identity server์ค‘์— ํ•˜๋‚˜๋กœ ์ƒˆ๋กœ ๋ฐฐ์šฐ๊ฒŒ ๋˜์—ˆ๋‹ค.

ํšŒ์›๊ฐ€์ž…ํ›„ ๋ผ์ด์„ผ์Šค ๋ฐ›๊ธฐ

https://developer.curity.io/

์ปค๋ฎค๋‹ˆํ‹ฐ ์—๋””์…˜์œผ๋กœ ๋ผ์ด์„ผ์Šค๋ฅผ ๋ฐ›์•„์„œ ๋‹ค์šด๋กœ๋“œํ•ด๋‘์ž.

arogocd / helm์œผ๋กœ ์„ค์น˜

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: curity
  namespace: argocd
spec:
  destination:
    name: ''
    namespace: curity
    server: 'https://kubernetes.default.svc'
  source:
    path: ''
    repoURL: 'https://curityio.github.io/idsvr-helm/'
    targetRevision: 0.9.26
    chart: idsvr
    helm:
      parameters:
        - name: curity.adminUiHttp
          value: 'true'
        - name: curity.config.uiEnabled
          value: 'true'
        - name: curity.config.password
          value: YOUR-PASS
        - name: curity.admin.logging.stdout
          value: 'true'
        - name: ingress.enabled
          value: 'true'
        - name: ingress.runtime.host
          value: curity.yourdomain.com
        - name: ingress.admin.host
          value: admin.curity.yourdomain.com
        - name: networkpolicy.enabled
          value: 'false'
        - name: replicaCount
          value: '3'
  project: default
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true

ingress๋กœ ์ ‘๊ทผํ•˜๋Š”๋ฒ•

https://admin.curity.yourdomain.com/admin/

port forwarding์œผ๋กœ ์ ‘๊ทผํ•˜๋Š”๋ฒ•

http://localhost/admin/

port forwarding์œผ๋กœ๋Š” ์ ‘๊ทผ์ด ๋˜๊ณ  ingress๋กœ ์•ˆ๋˜๋ฉด helm ์˜ต์…˜์ค‘์— network policy๋ฅผ ๋„๊ณ  ์‹คํ–‰ํ•ด๋ด๋ผ ๊ทธ๋Ÿผ ๋ ๊ฒƒ์ด๋‹ค.

Run Basic Setup

์„ค์ •ํ•ด๋‘” url๋กœ ์ ‘๊ทผํ•˜๋ฉด ๋‹ค์Œ ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค.

์„ค์ •ํ•ด๋‘” ๋น„๋ฒˆ์œผ๋กœ ๋กœ๊ทธ์ธ

Run Basic Setup ํด๋ฆญ

์ปค๋ฎค๋‹ˆํ‹ฐ ๋ผ์ด์„ผ์Šค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„์„œ ์—…๋กœ๋“œ ํ•ด์ฃผ์ž.

next ํด๋ฆญ

์ผ๋‹จ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ชจ๋‘ next๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.

๋งˆ์ง€๋ง‰์— ์ปค๋ฐ‹๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์ž.

curity๋Š” ์œ ์ €๋ฐ์ดํ„ฐ๋“ฑ์€ db์— ์ €์žฅํ•˜์ง€๋งŒ ์ด ์„ค์ •ํŒŒ์ผ๋“ฑ์€ xml๋กœ ๋กœ์ปฌ์— ์ €์žฅํ•˜๋Š”๊ฒƒ๊ฐ™๋‹ค.

๋‹ค ๋กœ๋”ฉ์ด ๋˜๋ฉด

admin ํ•˜๋‚˜์™€ runtime ๋ชจ๋“ˆ 3๊ฐœ๊ฐ€ ์˜ฌ๋ผ์™€ ์žˆ๋‹ค.

url change

baseurl์„ ์ˆ˜์ •ํ•ด์ฃผ์ž.

general ๋ฉ”๋‰ด์—์„œ๋„ ์ˆ˜์ •

๋ณ€๊ฒฝํ• ๋•Œ๋งˆ๋‹ค commit์„ ํ•ด์•ผํ•œ๋‹ค.

jdbc

curity๋Š” jdbc๋“œ๋ผ์ด๋ฒ„๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค. ์˜ค๋ผํด ๋ผ์ด์„ผ์Šค๋•Œ๋ฌธ์— ์ง์ ‘ ๋‹ค์šด๋ฐ›์•„์„œ ์ปจํ…Œ์ด๋„ˆ์— ๋„ฃ์–ด์ค˜์•ผํ•œ๋‹ค.

//todo ์ด๋ถ€๋ถ„์€ ๋‚˜์ค‘์— ์ข€๋” ๋‹ค๋“ฌ์–ด์•ผํ• ๋“ฏ. ๋งค๋ฒˆ ์ปจํ…Œ์ด๋„ˆ ์˜ฌ๋ผ์˜ฌ๋•Œ๋งˆ๋‹ค ๋„ฃ์–ด์ค„์ˆ˜๋Š” ์—†์œผ๋‹ˆ.

์ด์ œ jdbc connection string์„ ์ ์–ด์ฃผ์ž.

https://curity.io/docs/idsvr/latest/system-admin-guide/data-sources/jdbc.html?highlight=session#mysql-and-mariadb

create

์„ค์ •ํ•˜์ž.

์ถ”๊ฐ€ ์™„๋ฃŒ

ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ด์ค˜์•ผํ•œ๋‹ค.

์Šคํฌ๋ฆฝํŠธ๋Š” ์–ด๋“œ๋ฏผ ์ปจํ…Œ์ด๋„ˆ์— ์žˆ๋‹ค.

๊ฐ€์ง€๊ณ ์™€์„œ ๋””๋น„์— ์ ์šฉํ•ด์ฃผ์ž.

์ด์ƒํ•˜๊ฒŒ ์—๋Ÿฌ๊ฐ€ ๋‚˜์„œ Linked Accounts ์•ž๊นŒ์ง€๋งŒ ๋จผ์ € ์‹คํ–‰ํ•˜๊ณ  ์™„๋ฃŒํ›„ ๋’ค ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์˜€๋‹ค.

commit

๋””๋น„๊นŒ์ง€ ์™„๋ฃŒ

ํ˜„์žฌ๊นŒ์ง€ ๊ตฌ์กฐ

custom image

Dockerfile์„ ๋งŒ๋“ค์–ด์„œ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•˜์ž jdbc ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ด์•ผํ•จ.

๋‚˜์ค‘์— ์“ธ๋ ค๊ณ  git๋„ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๊ฐ€ ๋˜์•ผํ•จ.

์ž˜ ์‹คํ–‰๋˜๋‚˜ ๋ณด๊ณ  jdbc driver ์žˆ๋Š”์ง€ ๋ณด๊ณ  git/curl์ž˜๋˜๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

์„ค์ •ํŒŒ์ผ ๋ฐฑ์—…

user data๋Š” ์™ธ๋ถ€ ๋””๋น„์— ์ €์žฅ๋˜๋ฏ€๋กœ ์ƒ๊ด€์—†์ง€๋งŒ ์„ค์ •ํŒŒ์ผ์€ pod๊ฐ€ ์˜ฎ๊ฒจ์ง€๋ฉด ๋ชจ๋‘ ์—†์–ด์ง„๋‹ค.

admin์— xml๋กœ ์ƒ์„ฑ์ด ๋˜๋‹ˆ ์ด๊ฑธ ๋ฐฑ์—… ๋ฐ›์•„์•ผํ•œ๋‹ค.

์„ค์ •ํŒŒ์ผ์„ ์ €์žฅํ•  ๊นƒํ—ˆ๋ธŒ repo๋ฅผ ๋งŒ๋“ค์ž. ๊ทธ๋ฆฌ๊ณ  PAT(personal access token)์„ ์ƒ์„ฑ ์ €์žฅํ•ด๋‘์ž.

curity๊ฐ€ commit hooks๋ฅผ ์ง€์›ํ•œ๋‹ค.

์ปจํ…Œ์ด๋„ˆ์— /opt/idsvr/usr/bin/post-commit-scripts/ ์— ์ŠคํŠธ๋ฆฝํŠธ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ์‹คํ–‰์„ ํ•œ๋‹ค.

https://curity.io/docs/idsvr/latest/configuration-guide/commit-hooks.html#commit-hook-scripts

custom image๋ฅผ ๋งŒ๋“ค๋•Œ ์ด ํŒŒ์ผ์„ ์•„์— ๋„ฃ์–ด์ฃผ๋ฉด ์ข‹์„๊ฑฐ๊ฐ™๋‹ค.

vi Dockerfile

์ด์ œ ์ด ๋„์ปคํŒŒ์ผ์„ ๋นŒ๋“œํ•ด์„œ registry์— ๋“ฑ๋ก

์ด์ œ ์ด ์ด๋ฏธ์ง€๋ฅผ ์จ๋ณด์ž.

์ด์ œ ์›น์‚ฌ์ดํŠธ์—์„œ ๋ญ”๊ฐ€๋ฅผ ๋ฐ”๊ตฌ๊ณ  commit์„ ํ•ด๋ณด์ž.

์ปจํ…Œ์ด๋„ˆ์— /tmp์— ํŒŒ์ผ์ด ์ €์žฅ๋ซ๋Š”์ง€ ํ™•์ธ

์ƒ์„ฑ๋˜์—ˆ๋‹ค.

์ž๋™์œผ๋กœ ๊นƒ์œผ๋กœ ๋งค๋ฒˆ ์ปค๋ฐ‹์„ ํ•œ๋‹ค.

์ž˜ ์•ˆ๋˜๋ฉด ๋กœ๊ทธ๋ฅผ ๋ณด์ž .

๋ณต๊ตฌ

git์— ์ปค๋ฐ‹๋˜์žˆ๋Š” ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  secret๋ฅผ ๋งŒ๋“ ๋‹ค.

helm์œผ๋กœ ๋ณต๊ตฌํ• ๋•Œ ๋‹ค์Œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค.

helm ์˜ต์…˜์„ ํ†ตํ•œ ๋ฐฑ์—…

helm ์˜ต์…˜์— curity.config.backup=true๋ฅผ ์‚ฌ์šฉํ•˜์ž.

commit ์„ ํ• ๋•Œ๋งˆ๋‹ค secret์— ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ์ด ๋œ๋‹ค.

๋‚ ์งœ-ํŠธ๋žœ์žญ์…˜ ID๋กœ ์ €์žฅ์ด ๋œ๋‹ค.

helm ์„ ์ด์šฉํ•ด์„œ ๋ณต๊ตฌ

  • curity.config.configurationSecret

  • curity.config.configurationSecretItemName๋ฅผ ์‚ฌ์šฉ

๋ฐฑ์—…์„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค

helm์œผ๋กœ ๋ณต๊ตฌํ• ๋•Œ ๋‹ค์Œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค.

์—ฌ๋Ÿฌ๊ฐœ ์žˆ์„๋•Œ ํ—ท๊ฐˆ๋ฆฌ๊ธฐ๋„ ํ•˜๊ฒŸ๋‹ค. git๋ฐฉ์‹์ด ๋” ๋‚˜์„์ˆ˜๋„ ์ž‡์„๊ฑฐ๊ฐ™๋‹ค.

Last updated

Was this helpful?