Skip to main content

์ด ๋ฒ„์ „์˜ GitHub Enterprise Server๋Š” ๋‹ค์Œ ๋‚ ์งœ์— ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. 2026-03-17. ์ค‘์š”ํ•œ ๋ณด์•ˆ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋„ ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋” ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ, ํ–ฅ์ƒ๋œ ๋ณด์•ˆ, ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ์ตœ์‹  ๋ฒ„์ „์˜ GitHub Enterprise Server๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€ํ•œ ๋„์›€๋ง์€ GitHub Enterprise ์ง€์›์— ๋ฌธ์˜ํ•˜์„ธ์š”.

Amazon S3 Storage์—์„œ GitHub Actions ์‚ฌ์šฉ

GitHub Enterprise Server์—์„œ GitHub Actions๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•˜๊ณ  Amazon S3 ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›Œํฌํ”Œ๋กœ ์‹คํ–‰์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

Site administrators can enable GitHub Actions and configure enterprise settings.

GitHub Actions์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€ ์ •๋ณด

GitHub Actions๋Š” ์™ธ๋ถ€ blob ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›Œํฌํ”Œ๋กœ ์‹คํ–‰์œผ๋กœ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์—๋Š” ์›Œํฌํ”Œ๋กœ ๋กœ๊ทธ, ์บ์‹œ ๋ฐ ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ๋นŒ๋“œ ์•„ํ‹ฐํŒฉํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Enterprise Server์šฉ GitHub Actions ์‹œ์ž‘์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ธ‰์ž์— ์—ฐ๊ฒฐํ•˜๋„๋ก GitHub Enterprise Server์„(๋ฅผ) ๊ตฌ์„ฑํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • OpenID Connect(OIDC)
  • ๋น„๋ฐ€์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด ์ž๊ฒฉ ์ฆ๋ช… ๊ธฐ๋ฐ˜ ์ธ์ฆ

์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ธ‰์ž์— ๋Œ€ํ•œ ์ค‘์š”ํ•˜๊ณ  ์ˆ˜๋ช…์ด ๊ธด ์ž๊ฒฉ ์ฆ๋ช… ๋น„๋ฐ€์„ ๋งŒ๋“ค๊ฑฐ๋‚˜, ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๊ณ  ๋…ธ์ถœ๋  ์œ„ํ—˜์ด ์žˆ์œผ๋ฏ€๋กœ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ OIDC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. OIDC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋Ÿฌ์ŠคํŠธ๋ฅผ ์ •์˜ํ•œ ํ›„ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ธ‰์ž๋Š” GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์— ๋‹จ๊ธฐ ์•ก์„ธ์Šค ํ† ํฐ์„ ์ž๋™์œผ๋กœ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ† ํฐ์€ ์ž๋™์œผ๋กœ ๋งŒ๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์กฐ๊ฑด

์ฐธ๊ณ  ํ•ญ๋ชฉ

GitHub์—์„œ ์ง€์›ํ•˜๋Š” ์œ ์ผํ•œ S3 ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ธ‰์ž๋Š” AMAZON S3 ๋ฐ MINIO Gateway for NAS์ž…๋‹ˆ๋‹ค.

GitHub ํŒŒํŠธ๋„ˆ๊ฐ€ GitHub Enterprise Server์—์„œ GitHub Actions์œผ๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ž์ฒด ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•œ ๋‹ค๋ฅธ S3 API ํ˜ธํ™˜ ์Šคํ† ๋ฆฌ์ง€ ์ œํ’ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GHES Storage Partners ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

GitHub ๊ธฐ์ˆ  ํŒŒํŠธ๋„ˆ ๊ด€๊ณ„ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•œ ์Šคํ† ๋ฆฌ์ง€ ์ œํ’ˆ์˜ ๊ฒฝ์šฐ, ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ธ‰์ž๋Š” GitHub Actions์—์„œ ์Šคํ† ๋ฆฌ์ง€ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ง€์› ๋ฐ ์„ค๋ช…์„œ๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

GitHub Actions๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • ์›Œํฌํ”Œ๋กœ ์‹คํ–‰์—์„œ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ Amazon S3 ๋ฒ„ํ‚ท์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • GitHub Actions์— ๋Œ€ํ•œ ํ•˜๋“œ์›จ์–ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Enterprise Server์šฉ GitHub Actions ์‹œ์ž‘์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  • GitHub Enterprise Server์˜ ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด TLS๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS ๊ตฌ์„ฑ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

    ์ฐธ๊ณ  ํ•ญ๋ชฉ

    ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ด€์—์„œ ์„œ๋ช…ํ•œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitHub Enterprise Server์—์„œ TLS๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ๊ฐ€ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ž์ฒด ํ˜ธ์ŠคํŒ… ์‹คํ–‰๊ธฐ์—๋Š” ์ถ”๊ฐ€ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•˜๋ฉฐ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—๋Š” ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • GitHub์— HTTP ํ”„๋ก์‹œ ์„œ๋ฒ„๊ฐ€ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ:

  • HTTP ํ”„๋ก์‹œ ์ œ์™ธ ๋ชฉ๋ก์— .localhost ๋ฐ 127.0.0.1, ::1์„(๋ฅผ) ์ด ์ˆœ์„œ๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€ ์œ„์น˜๋ฅผ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€ URL๋„ ์ œ์™ธ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ ์„ค์ • ๋˜๋Š” ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„์›ƒ๋ฐ”์šด๋“œ ์›น ํ”„๋ก์‹œ ์„œ๋ฒ„ ๊ตฌ์„ฑ(์„)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  • ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ธ‰์ž์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์— OIDC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์—์„œ ๋‹ค์Œ OIDC ํ† ํฐ ์„œ๋น„์Šค URL์„ ๊ณต์šฉ ์ธํ„ฐ๋„ท์— ๋…ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    https://HOSTNAME/_services/token/.well-known/openid-configuration
    https://HOSTNAME/_services/token/.well-known/jwks
    

    ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ธ‰์ž๊ฐ€ ์ธ์ฆ์„ ์œ„ํ•ด GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OIDC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Amazon S3์˜ GitHub Actions ํ™œ์„ฑํ™”(๊ถŒ์žฅ)

Amazon S3 ๋ฒ„ํ‚ท์— OIDC๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก GitHub Enterprise Server์„(๋ฅผ) ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋จผ์ € Amazon OIDC ๊ณต๊ธ‰์ž๋ฅผ ๋งŒ๋“  ๋‹ค์Œ, IAM(ID ๋ฐ ์•ก์„ธ์Šค ๊ด€๋ฆฌ) ์—ญํ• ์„ ๋งŒ๋“ค๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ณต๊ธ‰์ž์™€ ์—ญํ• ์„ ์‚ฌ์šฉํ•˜์—ฌ S3 ๋ฒ„ํ‚ท์— ์•ก์„ธ์Šคํ•˜๋„๋ก GitHub Enterprise Server์„(๋ฅผ) ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

1. Amazon OIDC ๊ณต๊ธ‰์ž ๋งŒ๋“ค๊ธฐ

  1. GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์˜ ์ง€๋ฌธ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    1. ๋‹ค์Œ OpenSSL ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ SHA1 ์ง€๋ฌธ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด๋•Œ HOSTNAME์„ GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์˜ ๊ณต์šฉ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      Shell
      openssl s_client -connect HOSTNAME:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -sha1 -in /dev/stdin
      

      ์˜ˆ์‹œ:

      openssl s_client -connect my-ghes-host.example.com:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -sha1 -in /dev/stdin
      

      ์ด ๋ช…๋ น์€ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ์ง€๋ฌธ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

      SHA1 Fingerprint=AB:12:34:56:78:90:AB:CD:EF:12:34:56:78:90:AB:CD:EF:12:34:56
      
    2. ์ง€๋ฌธ ๊ฐ’์—์„œ ์ฝœ๋ก (:)์„ ์ œ๊ฑฐํ•˜๊ณ  ๋‚˜์ค‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

      ์˜ˆ๋ฅผ ๋“ค์–ด ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋ฐ˜ํ™˜๋œ ๊ฐ’์˜ ์ง€๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

      AB1234567890ABCDEF1234567890ABCDEF123456
      
  2. AWS CLI์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ OIDC ๊ณต๊ธ‰์ž๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. HOSTNAME์„ GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์˜ ๊ณต์šฉ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊พธ๊ณ  THUMBPRINT๋ฅผ ์ด์ „ ๋‹จ๊ณ„์˜ ์ง€๋ฌธ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    Shell
    aws iam create-open-id-connect-provider \
      --url https://HOSTNAME/_services/token \
      --client-id-list "sts.amazonaws.com" \
      --thumbprint-list "THUMBPRINT"
    

    ์˜ˆ์‹œ:

    Shell
    aws iam create-open-id-connect-provider \
      --url https://my-ghes-host.example.com/_services/token \
      --client-id-list "sts.amazonaws.com" \
      --thumbprint-list "AB1234567890ABCDEF1234567890ABCDEF123456"
    

    AWS CLI ์„ค์น˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Amazon ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    ๊ฒฝ๊ณ 

    GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ธ์ฆ์„œ๊ฐ€ ๋‚˜์ค‘์— ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ OIDC ํŠธ๋Ÿฌ์ŠคํŠธ๊ฐ€ ๊ณ„์† ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด Amazon OIDC ๊ณต๊ธ‰์ž์˜ ์ง€๋ฌธ ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2. IAM ์—ญํ•  ๋งŒ๋“ค๊ธฐ

  1. AWS ์ฝ˜์†”์„ ์—ด๊ณ  IAM(ID ๋ฐ ์•ก์„ธ์Šค ๊ด€๋ฆฌ) ์„œ๋น„์Šค๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ์™ผ์ชฝ ๋ฉ”๋‰ด์˜ "์•ก์„ธ์Šค ๊ด€๋ฆฌ"์—์„œ ์—ญํ• ์„ ํด๋ฆญํ•œ ๋‹ค์Œ ์—ญํ•  ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. "์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์—”ํ„ฐํ‹ฐ ์„ ํƒ" ํŽ˜์ด์ง€์—์„œ ๋‹ค์Œ ์˜ต์…˜์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    • "์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์—”ํ„ฐํ‹ฐ ํ˜•์‹"์—์„œ ์›น ID๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    • "ID ๊ณต๊ธ‰์ž"์˜ ๊ณต๊ธ‰์ž ์„ ํƒ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“  OIDC ๊ณต๊ธ‰์ž๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ณต๊ธ‰์ž์˜ ์ด๋ฆ„์€ HOSTNAME/_services/token์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ HOSTNAME์€ GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์˜ ๊ณต์šฉ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • "๋Œ€์ƒ ๊ทธ๋ฃน"์—์„œ sts.amazonaws.com์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ๋‹ค์Œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. "๊ถŒํ•œ ์ถ”๊ฐ€" ํŽ˜์ด์ง€์—์„œ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AmazonS3FullAccess ์ •์ฑ…์„ ์ฐพ์•„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ๋‹ค์Œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. "์ด๋ฆ„, ๊ฒ€ํ†  ๋ฐ ๋งŒ๋“ค๊ธฐ" ํŽ˜์ด์ง€์—์„œ ์—ญํ• ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  ์—ญํ•  ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  8. IAM "์—ญํ• " ํŽ˜์ด์ง€์—์„œ ๋ฐฉ๊ธˆ ๋งŒ๋“  ์—ญํ• ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  9. ๋‚˜์ค‘์— ํ•„์š”ํ•˜๋ฏ€๋กœ "์š”์•ฝ"์—์„œ ์—ญํ• ์˜ ARN ๊ฐ’์„ ์ ์–ด ๋‘ก๋‹ˆ๋‹ค.

  10. ํŠธ๋Ÿฌ์ŠคํŠธ ๊ด€๊ณ„ ํƒญ์„ ํด๋ฆญํ•œ ๋‹ค์Œ ์‹ ๋ขฐ ์ •์ฑ… ํŽธ์ง‘์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  11. ์‹ ๋ขฐ ์ •์ฑ…์„ ํŽธ์ง‘ํ•˜์—ฌ ์ƒˆ sub ํด๋ ˆ์ž„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. Condition ๊ฐ’์€ ๋‹ค์Œ ์˜ˆ์ œ์™€ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ HOSTNAME์€ GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์˜ ๊ณต์šฉ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    ...
    "Condition": {
      "StringEquals": {
        "HOSTNAME/_services/token:aud": "sts.amazonaws.com",
        "HOSTNAME/_services/token:sub": "HOSTNAME"
      }
    }
    ...
    

    ์˜ˆ์‹œ:

    ...
    "Condition": {
      "StringEquals": {
        "my-ghes-host.example.com/_services/token:aud": "sts.amazonaws.com",
        "my-ghes-host.example.com/_services/token:sub": "my-ghes-host.example.com"
      }
    }
    ...
    
  12. ์ •์ฑ… ์—…๋ฐ์ดํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

3. OIDC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Amazon S3์— ์—ฐ๊ฒฐํ•˜๋„๋ก GitHub Enterprise Server ๊ตฌ์„ฑ

  1. ํŽ˜์ด์ง€์˜ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ์žˆ๋Š” GitHub Enterprise Server์˜ ๊ด€๋ฆฌ ๊ณ„์ •์—์„œ ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  2. โ€œSite adminโ€(์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž) ํŽ˜์ด์ง€์— ์•„์ง ์—†๋Š” ๊ฒฝ์šฐ ์™ผ์ชฝ ์ƒ๋‹จ์—์„œ Site admin(์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž)์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. " ์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž" ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ๊ด€๋ฆฌ ์ฝ˜์†” ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. "์„ค์ •" ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ์ž‘์—…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. "GitHub Actions"์—์„œ GitHub Actions ํ™œ์„ฑํ™”๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. "์•„ํ‹ฐํŒฉํŠธ ๋ฐ ๋กœ๊ทธ ์Šคํ† ๋ฆฌ์ง€"์˜ "Amazon S3" ์˜†์— ์žˆ๋Š” ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. "์ธ์ฆ"์—์„œ OIDC(OpenID Connect) ๋ฅผ ์„ ํƒํ•˜๊ณ  ์Šคํ† ๋ฆฌ์ง€ ๊ฐ’์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    • AWS S3 ๋ฒ„ํ‚ท: S3 ๋ฒ„ํ‚ท์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • AWS ์—ญํ• : ์ด์ „ ์ ˆ์ฐจ์—์„œ ๋งŒ๋“  ์—ญํ• ์˜ ARN์ž…๋‹ˆ๋‹ค. ์˜ˆ๋“ค ๋“ค์–ด arn:aws:iam::123456789:role/my-role-name์ž…๋‹ˆ๋‹ค.
    • AWS ๋ฆฌ์ „: ๋ฒ„ํ‚ท์˜ AWS ๋ฆฌ์ „์ž…๋‹ˆ๋‹ค. ์˜ˆ๋“ค ๋“ค์–ด us-east-1์ž…๋‹ˆ๋‹ค.
  8. ์Šคํ† ๋ฆฌ์ง€ ์„ค์ • ํ…Œ์ŠคํŠธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์Šคํ† ๋ฆฌ์ง€ ์„ค์ •์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ์Šคํ† ๋ฆฌ์ง€ ์„ค์ •์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆํ•  ๋–„ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉด ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ธ‰์ž์™€ ์„ค์ •์„ ํ™•์ธํ•˜๊ณ  ๋‹ค์‹œ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  9. "์„ค์ •" ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ์„ค์ • ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ฐธ๊ณ  ํ•ญ๋ชฉ

    ๊ด€๋ฆฌ ์ฝ˜์†”์— ์„ค์ •์„ ์ €์žฅํ•˜๋ฉด ์‹œ์Šคํ…œ ์„œ๋น„์Šค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋˜์–ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  10. ๊ตฌ์„ฑ ์‹คํ–‰์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

์•ก์„ธ์Šค ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Amazon S3 ์Šคํ† ๋ฆฌ์ง€๋กœ GitHub Actions ์‚ฌ์šฉ

  1. AWS ์ฝ˜์†” ๋˜๋Š” CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ† ๋ฆฌ์ง€ ๋ฒ„ํ‚ท์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ‚ค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. GitHub Actions์—๋Š” ๋ฒ„ํ‚ท์— ์•ก์„ธ์Šคํ•˜๋Š” ์•ก์„ธ์Šค ํ‚ค์— ๋Œ€ํ•œ ๋‹ค์Œ ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    • s3:PutObject
    • s3:GetObject
    • s3:ListBucketMultipartUploads
    • s3:ListMultipartUploadParts
    • s3:AbortMultipartUpload
    • s3:DeleteObject
    • s3:ListBucket
    • kms:GenerateDataKey(ํ‚ค ๊ด€๋ฆฌ ์„œ๋น„์Šค(KMS) ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•œ ๊ฒฝ์šฐ)
    • kms:Decrypt(ํ‚ค ๊ด€๋ฆฌ ์„œ๋น„์Šค(KMS) ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•œ ๊ฒฝ์šฐ)

    AWS ์•ก์„ธ์Šค ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ AWS ID ๋ฐ ์•ก์„ธ์Šค ๊ด€๋ฆฌ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  2. ํŽ˜์ด์ง€์˜ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ์žˆ๋Š” GitHub Enterprise Server์˜ ๊ด€๋ฆฌ ๊ณ„์ •์—์„œ ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. โ€œSite adminโ€(์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž) ํŽ˜์ด์ง€์— ์•„์ง ์—†๋Š” ๊ฒฝ์šฐ ์™ผ์ชฝ ์ƒ๋‹จ์—์„œ Site admin(์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž)์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. " ์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž" ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ๊ด€๋ฆฌ ์ฝ˜์†” ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. "์„ค์ •" ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ์ž‘์—…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. "GitHub Actions"์—์„œ GitHub Actions ํ™œ์„ฑํ™”๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  7. "์•„ํ‹ฐํŒฉํŠธ ๋ฐ ๋กœ๊ทธ ์Šคํ† ๋ฆฌ์ง€"์˜ "Amazon S3" ์˜†์— ์žˆ๋Š” ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  8. "์ธ์ฆ"์—์„œ ์ž๊ฒฉ ์ฆ๋ช… ๊ธฐ๋ฐ˜์„ ์„ ํƒํ•˜๊ณ  ์Šคํ† ๋ฆฌ์ง€ ๋ฒ„ํ‚ท์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    • AWS ์„œ๋น„์Šค URL: ๋ฒ„ํ‚ท์˜ ์„œ๋น„์Šค URL์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด us-west-2 ์ง€์—ญ์—์„œ S3 ๋ฒ„ํ‚ท์„ ๋งŒ๋“  ๊ฒฝ์šฐ ์ด ๊ฐ’์€ https://s3.us-west-2.amazonaws.com์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

      ์ž์„ธํ•œ ๋‚ด์šฉ์€ AWS ์„ค๋ช…์„œ์—์„œ AWS ์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    • AWS S3 ๋ฒ„ํ‚ท: S3 ๋ฒ„ํ‚ท์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    • AWS S3 ์•ก์„ธ์Šค ํ‚ค ๋ฐ AWS S3 ๋น„๋ฐ€ ํ‚ค: ๋ฒ„ํ‚ท์˜ AWS ์•ก์„ธ์Šค ํ‚ค ID ๋ฐ ๋น„๋ฐ€ ํ‚ค์ž…๋‹ˆ๋‹ค.

  9. ์Šคํ† ๋ฆฌ์ง€ ์„ค์ • ํ…Œ์ŠคํŠธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์Šคํ† ๋ฆฌ์ง€ ์„ค์ •์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ์Šคํ† ๋ฆฌ์ง€ ์„ค์ •์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆํ•  ๋–„ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉด ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ธ‰์ž์™€ ์„ค์ •์„ ํ™•์ธํ•˜๊ณ  ๋‹ค์‹œ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  10. "์„ค์ •" ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ์„ค์ • ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์ฐธ๊ณ  ํ•ญ๋ชฉ

    ๊ด€๋ฆฌ ์ฝ˜์†”์— ์„ค์ •์„ ์ €์žฅํ•˜๋ฉด ์‹œ์Šคํ…œ ์„œ๋น„์Šค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋˜์–ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  11. ๊ตฌ์„ฑ ์‹คํ–‰์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

๊ตฌ์„ฑ ์‹คํ–‰์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด GitHub Actions๊ฐ€ GitHub์—์„œ ์‚ฌ์šฉ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. GitHub Actions ์•ก์„ธ์Šค ๊ถŒํ•œ ๊ด€๋ฆฌ ๋ฐ ์ž์ฒด ํ˜ธ์ŠคํŒ… ์‹คํ–‰๊ธฐ ์ถ”๊ฐ€์™€ ๊ฐ™์€ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” GitHub Enterprise Server์šฉ GitHub Actions ์‹œ์ž‘์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.