0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · 강의

GitHub를 사용한 보안 비밀 관리

GitHub Secrets와 OpenID Connect (OIDC)를 사용해 민감한 자격 증명을 안전하게 저장하고 접근하는 방법을 심층적으로 알아봅니다.

GitHub를 사용한 보안 비밀 관리은(는) CoddyKit의 무료 CI/CD with GitHub Actions & DevOps Pipelines 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 CI/CD with GitHub Actions & DevOps Pipelines 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. CI/CD with GitHub Actions & DevOps Pipelines 강의에는 총 4개의 강의가 포함되어 있습니다.

안전한 시크릿 관리가 필요한 이유

모든 소프트웨어 프로젝트에서는 API 키, 데이터베이스 자격 증명 또는 액세스 토큰과 같은 민감한 정보를 사용해야 하는 경우가 많습니다. 이러한 정보를 코드나 저장소에 직접 저장하면 심각한 보안 위험이 발생합니다.

시크릿 관리는 이러한 민감한 데이터를 안전하게 저장하고 관리하는 방법입니다. 승인된 시스템과 사용자만 해당 데이터에 액세스할 수 있도록 하여 무단 노출을 방지합니다.

GitHub 시크릿이란 무엇인가요?

GitHub는 GitHub 시크릿이라는 민감한 정보를 안전하게 저장하는 방법을 제공합니다. GitHub 액션 워크플로에서 사용할 수 있는 암호화된 환경 변수입니다.

  • 기본적으로 로그에 기록되지 않습니다.
  • 생성한 후에는 사용자 인터페이스에 표시되지 않습니다.
  • 선택한 워크플로에서만 액세스할 수 있습니다.

따라서 자격 증명이 실수로 노출되는 것을 방지할 수 있습니다.

저장소 시크릿 설정

시크릿은 저장소, 환경 또는 조직 수준에서 정의할 수 있습니다. 가장 일반적으로는 저장소 시크릿부터 시작합니다.

저장소 시크릿을 만들려면 다음 단계를 따르세요.

  1. 저장소의 설정 탭으로 이동합니다.
  2. 시크릿 및 변수 > 액션으로 이동합니다.
  3. 새 저장소 시크릿을 클릭합니다.

고유한 이름(예: API_KEY)을 지정하고 시크릿 값을 붙여 넣습니다.

워크플로에서 시크릿에 액세스하기

시크릿을 정의한 후에는 YAML 파일의 워크플로에서 사용할 수 있습니다. GitHub 액션은 시크릿을 작업의 환경 변수로 자동 주입합니다.

${{ secrets.SECRET_NAME }} 컨텍스트를 사용하여 시크릿에 액세스합니다. 이 스크립트는 이러한 시크릿을 사용하는 단계를 시뮬레이션합니다. 실행하려면 GitHub 액션이 MY_API_KEY를 환경 변수로 설정했다고 가정하세요.

#!/bin/bash
# This script simulates a workflow step
# where a secret is passed as an environment variable.

echo "Attempting to use an API key..."

# In a real GitHub Action, MY_API_KEY would be
# set by ${{ secrets.MY_API_KEY }} in the workflow YAML.

if [ -z "$MY_API_KEY" ]; then
  echo "Error: MY_API_KEY is not set!"
  echo "Please define it as a secret in your workflow."
else
  echo "Successfully accessed API key (partially shown): ${MY_API_KEY:0:5}..."
fi

더 넓은 시크릿 범위

저장소 시크릿 외에도 GitHub는 두 가지 더 강력한 범위를 제공합니다.

  • 조직 시크릿: 조직 내 여러 저장소에서 사용할 수 있습니다. 여러 프로젝트에서 공유하는 시크릿(예: 회사 전체의 배포 토큰)에 유용합니다.
  • 환경 시크릿: 특정 배포 환경(예: staging, production)에 연결됩니다. 배포 전에 수동 승인을 요구하는 것과 같은 보호 규칙을 설정할 수 있습니다.

보안을 최대화하려면 항상 필요한 최소 범위만 사용하세요.

OpenID Connect (OIDC)란 무엇인가요?

OpenID Connect (OIDC)는 OAuth 2.0을 기반으로 구축된 인증 계층입니다. 권한 부여 서버에서 수행한 인증을 바탕으로 클라이언트가 최종 사용자의 신원을 확인할 수 있도록 하는 표준입니다.

CI/CD에서 OIDC를 사용하면 GitHub 시크릿으로 API 키와 같은 장기 자격 증명을 저장하지 않고도 워크플로가 클라우드 제공업체(AWS, Azure, GCP 등)에 안전하게 인증할 수 있습니다.

액션에서 OIDC가 작동하는 방식

GitHub 액션은 OIDC 공급자 역할을 할 수 있습니다. 워크플로가 실행되면 GitHub는 해당 작업에 대해 고유하고 수명이 짧은 OIDC 토큰을 생성합니다.

이 토큰에는 저장소, 브랜치 및 작업 ID와 같은 워크플로에 관한 검증 가능한 클레임이 포함됩니다. 그러면 클라우드 제공업체가 GitHub에서 발급한 토큰을 신뢰하도록 구성하고 이러한 클레임에 따라 임시 액세스 권한을 부여할 수 있습니다.

OIDC의 주요 이점

GitHub 액션에서 OIDC를 사용하면 다음과 같은 중요한 보안 이점을 얻을 수 있습니다.

  • 장기 자격 증명 없음: GitHub 시크릿에 정적 클라우드 API 키를 저장하지 않아도 됩니다.
  • 위험 감소: 수명이 짧은 토큰을 사용하므로 토큰이 손상되더라도 피해를 최소화할 수 있습니다.
  • 세분화된 액세스 권한: 클라우드 역할을 특정 워크플로 조건에 매핑할 수 있습니다(예: main 브랜치에서만 배포 허용).
  • 감사: ID가 워크플로 실행에 연결되므로 누가 무엇을 했는지 더 쉽게 추적할 수 있습니다.

OIDC와 클라우드 통합

OIDC를 사용하려면 클라우드 제공업체(예: AWS IAM, Azure AD, GCP IAM)가 GitHub의 OIDC 발급자를 신뢰하도록 구성해야 합니다.

일반적으로 다음 작업이 필요합니다.

  1. 클라우드 계정에 ID 공급자(IdP)를 설정합니다.
  2. 특정 권한을 부여하는 역할/정책을 정의합니다.
  3. 역할에 "신뢰 정책"을 추가하여 GitHub의 OIDC 토큰이 해당 역할을 수임하도록 허용합니다. 이때 특정 저장소에서만 발급된 토큰을 허용하는 등 토큰 클레임을 기반으로 조건을 설정하는 경우가 많습니다.

그런 다음 워크플로가 토큰을 요청하고 이를 사용하여 인증합니다.

빠른 확인: 안전한 액세스

민감한 데이터를 저장하는 GitHub 시크릿과 자격 증명 없이 클라우드에 인증하는 OpenID Connect에 대해 배웠습니다.

다음 중 GitHub 액션의 시크릿 관리에 관한 설명으로 TRUE인 것은 무엇인가요?

복습: 자격 증명 보호

수고하셨습니다! CI/CD 파이프라인에서 민감한 데이터를 안전하게 관리하는 방법을 배웠습니다.

  • GitHub 시크릿은 저장소, 조직 또는 특정 환경 내에서 API 키와 토큰을 암호화하여 저장할 수 있게 합니다.
  • OpenID Connect (OIDC)는 정적 자격 증명 대신 수명이 짧고 검증 가능한 토큰을 사용하여 클라우드 제공업체에 인증하는 더욱 안전한 방법을 제공합니다.

이러한 관행은 강력하고 안전한 DevOps 파이프라인을 구축하는 데 매우 중요합니다.

자주 묻는 질문

“GitHub를 사용한 보안 비밀 관리” 강의는 무료인가요?

네 — “GitHub를 사용한 보안 비밀 관리” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 CI/CD with GitHub Actions & DevOps Pipelines 강의 전체를 잠금 해제할 수 있습니다. CI/CD with GitHub Actions & DevOps Pipelines 강의에는 총 4개의 강의가 포함되어 있습니다.

“GitHub를 사용한 보안 비밀 관리”에서 뭘 배우나요?

GitHub Secrets와 OpenID Connect (OIDC)를 사용해 민감한 자격 증명을 안전하게 저장하고 접근하는 방법을 심층적으로 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 CI/CD with GitHub Actions & DevOps Pipelines을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

CI/CD with GitHub Actions & DevOps Pipelines을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 CI/CD with GitHub Actions & DevOps Pipelines은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“GitHub를 사용한 보안 비밀 관리” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 CI/CD with GitHub Actions & DevOps Pipelines 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 CI/CD with GitHub Actions & DevOps Pipelines 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. CI/CD 보안 모범 사례
  2. GitHub를 사용한 보안 비밀 관리
  3. 정적 애플리케이션 보안 테스트 (SAST)
  4. 의존성 및 공급망 보안(SCA)
← CI/CD with GitHub Actions & DevOps Pipelines(으)로 돌아가기