InfoGrab Docs

인증 및 권한 부여 모범 사례

요약

다음 보안 모범 사례에 따라 GitLab 인스턴스를 보호하고 적절한 접근 제어를 유지하세요. 접근 제어 전략의 기반을 형성하는 기본 보안 원칙을 수립합니다. 이 원칙은 손상된 계정이나 내부 위협으로 인한 잠재적 피해를 제한함으로써 보안 위험을 줄입니다.

다음 보안 모범 사례에 따라 GitLab 인스턴스를 보호하고 적절한 접근 제어를 유지하세요. 이러한 권장 사항은 조직 전반의 생산성을 제한하지 않으면서 안전한 접근을 유지하는 데 도움이 됩니다.

보안 원칙#

접근 제어 전략의 기반을 형성하는 기본 보안 원칙을 수립합니다.

최소 권한 원칙#

이 원칙은 손상된 계정이나 내부 위협으로 인한 잠재적 피해를 제한함으로써 보안 위험을 줄입니다.

  • 사용자에게 업무를 완수하는 데 필요한 최소한의 권한만 부여합니다.
  • 최상위 그룹에서 최소 역할(최소 접근 또는 Guest)을 할당한 다음, 필요한 특정 하위 그룹과 프로젝트에서만 더 높은 권한을 부여합니다.
  • 민감한 설정에 대한 접근을 제한하는 커스텀 역할을 구현하여 Owner 및 Maintainer 수를 최소화합니다.
  • 토큰을 생성할 때 가능한 한 가장 제한적인 스코프를 사용하거나 특정 목적을 위해 다른 스코프를 가진 여러 토큰을 생성합니다.

계층적 권한 관리#

조직 구조에 맞게 권한을 구성하고 관리 오버헤드를 줄입니다.

  • 관리 오버헤드를 줄이기 위해 가능하면 프로젝트 멤버십 권한보다 그룹 멤버십 권한을 적용합니다.
  • 중앙 집중식 접근 제어 및 보고를 가능하게 하기 위해 조직을 위한 단일 최상위 그룹을 만듭니다.
  • 명확한 소유권 경계를 가진 조직 구조에 맞게 그룹 계층을 구성합니다.

심층 방어#

다양한 유형의 공격과 실패에 대비하기 위해 여러 보안 제어를 계층화합니다. 하나의 제어가 실패하면 다른 제어가 백업 보호를 제공합니다.

  • 무단 변경을 방지하기 위해 중요한 애플리케이션에 대해 보호된 브랜치를 설정합니다.
  • 특정 역할이나 사용자로 배포를 제한하기 위해 보호된 환경을 구성합니다.
  • 민감한 아티팩트에 대한 추가 보안을 추가하기 위해 보호된 컨테이너를 사용합니다.

인증 및 자격 증명#

GitLab 인스턴스에 대한 무단 접근을 방지하기 위해 강력한 인증 방법을 구현합니다.

비밀번호 보안#

비밀번호는 한계가 있음에도 불구하고 기본 인증 방법으로 남아 있습니다. 강력한 비밀번호 정책은 조직의 보안 기준을 충족하는 강력한 비밀번호를 요구함으로써 자격 증명 기반 공격의 위험을 줄입니다.

이중 인증#

이중 인증(2FA)은 두 번째 검증 방식을 요구함으로써 보안을 크게 향상시킵니다. 비밀번호가 손상된 경우에도 2FA는 무단 접근을 방지합니다.

  • 특히 권한이 높은 사용자를 포함한 모든 사용자에게 이중 인증을 요구합니다.
  • 사용자 채택을 보장하기 위해 2FA 설정에 대한 명확한 문서와 지원을 제공합니다.
  • 계정 잠금을 방지하기 위해 백업 복구 방법을 구현합니다.

토큰 기반 인증#

토큰은 GitLab 리소스에 대한 안전하고 프로그래밍 방식의 접근을 제공합니다. 다양한 토큰 유형은 다양한 목적을 제공하며 보안 측면에서 다양한 함의를 가집니다.

SSH 키 인증#

SSH 키는 Git 저장소에 대한 안전하고 비밀번호 없는 접근을 제공합니다. 적절한 키 관리는 보안을 유지하는 데 필수적입니다.

  • 강력한 SSH 키 알고리즘(최소 RSA 2048비트 또는 Ed25519)을 사용합니다.
  • 보안 표준을 적용하기 위해 SSH 키 제한을 구성합니다.
  • 정기적으로 SSH 키를 감사하고 교체하며, 특히 서비스 계정의 경우 더욱 중요합니다.

접근 관리#

누가 어떤 리소스에 접근할 수 있는지 제어하고 시간이 지남에 따라 해당 권한을 모니터링합니다. 효과적인 접근 관리는 보안 요구 사항과 운영 효율성 사이의 균형을 맞춥니다.

사용자 유형 관리#

다양한 사용자 유형은 조직과의 관계 및 보안 요구 사항에 따라 다양한 접근 수준이 필요합니다. 사용자를 적절하게 분류하면 적합한 접근 경계를 적용하는 데 도움이 됩니다.

  • 내부 프로젝트에 대한 가시성을 자동으로 제한하기 위해 계약자와 제3자를 외부 사용자로 지정합니다.
  • 저장소와의 제한된 상호 작용이 필요한 외부 협력자에게 Guest 역할을 할당합니다.
  • 인스턴스 전체에 읽기 전용 접근이 필요한 컴플라이언스 및 보안 담당자에게 감사자 사용자를 사용합니다.

정기적인 접근 검토#

정기적인 접근 검토는 역할과 책임이 변함에 따라 사용자 권한이 적절하게 유지되도록 합니다. 정기적인 검토는 보안 위험이 되기 전에 부적절한 접근을 식별하고 수정하는 데 도움이 됩니다.

  • 정기적인 접근 검토를 실시하여 사용자 권한을 검증하고 불일치를 즉시 해결합니다.
  • 사용자 내보내기그룹 내보내기 기능을 사용하여 포괄적인 접근 보고서를 생성합니다.
  • 사용자가 조직을 떠나거나 역할이 변경될 때 즉시 접근을 제거합니다.

접근 모니터링 및 감사#

접근 패턴과 권한 변경의 지속적인 모니터링은 보안 사고를 감지하고 컴플라이언스를 유지하는 데 도움이 됩니다. 감사 추적은 누가 어떤 리소스에 언제 접근했는지에 대한 가시성을 제공합니다.

  • 실시간 보안 모니터링을 위해 감사 이벤트 스트리밍을 SIEM 도구에 구성합니다.
  • 사용되지 않거나 과도한 권한이 있는 토큰을 식별하기 위해 자격 증명 인벤토리를 정기적으로 검토합니다.
  • 무단 접근 변경이나 권한 확대를 모니터링합니다.

조직 확장#

다양한 조직 규모와 구조는 권한 관리에 대한 다양한 접근 방법이 필요합니다. 성장하면서 안전하게 유지하기 위해 접근 제어 방법을 적용합니다.

기초 수준 (1-50명)#

생산성을 방해할 수 있는 복잡한 프로세스 없이 좋은 기초를 확립하는 데 집중합니다.

  • 기본 역할로 시작하고 프로젝트별이 아닌 그룹 수준에서 권한을 할당합니다.
  • 미래 참조를 위해 권한 결정과 근거를 문서화합니다.
  • 핵심 팀에게 GitLab 권한 모델 및 보안 방법을 교육합니다.
  • 일관된 보안 방법을 적용하기 위해 그룹 수준 CI/CD 구성을 수립합니다.

성장 수준 (50-200명)#

확장 가능한 프로세스의 필요성과 보안 요구 사항 사이의 균형을 맞춥니다.

  • 관리를 단순화하기 위해 사용자 그룹과 LDAP 또는 SAML을 통합합니다.
  • 접근을 제어하기 위해 공유 리소스와 민감한 리소스에 대해 별도의 하위 그룹을 생성합니다.
  • 팀 멤버를 위한 공식적인 온보딩 및 오프보딩 프로세스를 개발합니다.
  • 깊이 중첩된 그룹 구조를 최소화합니다 (대부분의 조직에서 4-5단계로 제한).

엔터프라이즈 수준 (200명 이상)#

엔터프라이즈급 제어 및 거버넌스 프로세스를 구현합니다.

  • 권한이 높은 사용자 수를 줄이면서 고유한 접근 요구에 맞는 커스텀 역할을 개발합니다.
  • GitLab API를 사용하여 대량 접근 작업을 자동화하여 수동 프로비저닝 오버헤드를 줄입니다.
  • 비즈니스 중단을 방지하기 위해 권한 변경을 위한 거버넌스 프로세스를 수립합니다.
  • 권한이 높은 역할에 대해 시간 제한 접근을 구현하고 업무 분리를 위한 컴플라이언스 프레임워크를 구현합니다.

저장소 및 CI/CD 보안#

코드, 배포 및 자동화된 프로세스를 무단 변경 및 접근으로부터 보호합니다. 이러한 제어는 소프트웨어 개발 및 제공 파이프라인의 무결성을 보장합니다.

파이프라인 보안#

CI/CD 파이프라인은 애플리케이션을 배포하고 민감한 리소스에 접근하기 위해 종종 높은 권한을 가집니다. 파이프라인 실행을 보안하면 무단 작업을 방지하고 배포 프로세스를 보호합니다.

  • 작업 권한을 사용하여 파이프라인 실행 중에 어떤 리소스에 접근할 수 있는지 제어합니다.
  • 중요한 배포 단계에 대해 승인 게이트를 구성합니다.
  • 배포를 격리하고 민감한 프로덕션 리소스에 대한 접근을 제한하기 위해 환경별 러너 또는 러너 태그를 사용합니다.

저장소 보호#

소스 코드 저장소에는 조직의 지적 재산이 포함되어 있으며 무단 변경으로부터 보호해야 합니다. 저장소 보안 제어는 코드 무결성을 보장하고 악의적인 수정을 방지합니다.

  • 커밋 표준을 적용하고 민감한 데이터 노출을 방지하기 위해 푸시 규칙을 구현합니다.
  • 보호된 브랜치에 변경 사항을 병합하기 전에 승인 규칙을 통해 코드 검토를 요구합니다.
  • 커밋 신뢰성의 암호화 검증을 제공하기 위해 서명된 커밋을 사용합니다.

API 및 자동화 보안#

자동화된 프로세스와 API 통합은 종종 광범위한 접근 권한을 가진 장기 자격 증명을 사용합니다. 이러한 비사람 접근 패턴은 자격 증명 남용을 방지하기 위해 특별한 보안 고려 사항이 필요합니다.

  • 개인 토큰 대신 제한된 권한이 있는 서비스 계정을 자동화된 프로세스에 사용합니다.
  • 자동화 및 CI/CD 파이프라인에서 사용되는 자격 증명을 정기적으로 교체합니다.
  • 자동화된 접근 패턴에서 비정상적인 동작이나 권한 확대 시도를 모니터링합니다.
  • API 접근을 위한 토큰을 생성할 때 가능한 한 가장 구체적인 스코프를 사용합니다.
  • API 통합을 위한 오류 처리 및 로깅을 구현합니다.
  • 남용을 방지하고 시스템 안정성을 보장하기 위해 API 요청을 속도 제한합니다.

인증 및 권한 부여 모범 사례

원문 보기
요약

다음 보안 모범 사례에 따라 GitLab 인스턴스를 보호하고 적절한 접근 제어를 유지하세요. 접근 제어 전략의 기반을 형성하는 기본 보안 원칙을 수립합니다. 이 원칙은 손상된 계정이나 내부 위협으로 인한 잠재적 피해를 제한함으로써 보안 위험을 줄입니다.

다음 보안 모범 사례에 따라 GitLab 인스턴스를 보호하고 적절한 접근 제어를 유지하세요. 이러한 권장 사항은 조직 전반의 생산성을 제한하지 않으면서 안전한 접근을 유지하는 데 도움이 됩니다.

보안 원칙#

접근 제어 전략의 기반을 형성하는 기본 보안 원칙을 수립합니다.

최소 권한 원칙#

이 원칙은 손상된 계정이나 내부 위협으로 인한 잠재적 피해를 제한함으로써 보안 위험을 줄입니다.

  • 사용자에게 업무를 완수하는 데 필요한 최소한의 권한만 부여합니다.
  • 최상위 그룹에서 최소 역할(최소 접근 또는 Guest)을 할당한 다음, 필요한 특정 하위 그룹과 프로젝트에서만 더 높은 권한을 부여합니다.
  • 민감한 설정에 대한 접근을 제한하는 커스텀 역할을 구현하여 Owner 및 Maintainer 수를 최소화합니다.
  • 토큰을 생성할 때 가능한 한 가장 제한적인 스코프를 사용하거나 특정 목적을 위해 다른 스코프를 가진 여러 토큰을 생성합니다.

계층적 권한 관리#

조직 구조에 맞게 권한을 구성하고 관리 오버헤드를 줄입니다.

  • 관리 오버헤드를 줄이기 위해 가능하면 프로젝트 멤버십 권한보다 그룹 멤버십 권한을 적용합니다.
  • 중앙 집중식 접근 제어 및 보고를 가능하게 하기 위해 조직을 위한 단일 최상위 그룹을 만듭니다.
  • 명확한 소유권 경계를 가진 조직 구조에 맞게 그룹 계층을 구성합니다.

심층 방어#

다양한 유형의 공격과 실패에 대비하기 위해 여러 보안 제어를 계층화합니다. 하나의 제어가 실패하면 다른 제어가 백업 보호를 제공합니다.

  • 무단 변경을 방지하기 위해 중요한 애플리케이션에 대해 보호된 브랜치를 설정합니다.
  • 특정 역할이나 사용자로 배포를 제한하기 위해 보호된 환경을 구성합니다.
  • 민감한 아티팩트에 대한 추가 보안을 추가하기 위해 보호된 컨테이너를 사용합니다.

인증 및 자격 증명#

GitLab 인스턴스에 대한 무단 접근을 방지하기 위해 강력한 인증 방법을 구현합니다.

비밀번호 보안#

비밀번호는 한계가 있음에도 불구하고 기본 인증 방법으로 남아 있습니다. 강력한 비밀번호 정책은 조직의 보안 기준을 충족하는 강력한 비밀번호를 요구함으로써 자격 증명 기반 공격의 위험을 줄입니다.

이중 인증#

이중 인증(2FA)은 두 번째 검증 방식을 요구함으로써 보안을 크게 향상시킵니다. 비밀번호가 손상된 경우에도 2FA는 무단 접근을 방지합니다.

  • 특히 권한이 높은 사용자를 포함한 모든 사용자에게 이중 인증을 요구합니다.
  • 사용자 채택을 보장하기 위해 2FA 설정에 대한 명확한 문서와 지원을 제공합니다.
  • 계정 잠금을 방지하기 위해 백업 복구 방법을 구현합니다.

토큰 기반 인증#

토큰은 GitLab 리소스에 대한 안전하고 프로그래밍 방식의 접근을 제공합니다. 다양한 토큰 유형은 다양한 목적을 제공하며 보안 측면에서 다양한 함의를 가집니다.

SSH 키 인증#

SSH 키는 Git 저장소에 대한 안전하고 비밀번호 없는 접근을 제공합니다. 적절한 키 관리는 보안을 유지하는 데 필수적입니다.

  • 강력한 SSH 키 알고리즘(최소 RSA 2048비트 또는 Ed25519)을 사용합니다.
  • 보안 표준을 적용하기 위해 SSH 키 제한을 구성합니다.
  • 정기적으로 SSH 키를 감사하고 교체하며, 특히 서비스 계정의 경우 더욱 중요합니다.

접근 관리#

누가 어떤 리소스에 접근할 수 있는지 제어하고 시간이 지남에 따라 해당 권한을 모니터링합니다. 효과적인 접근 관리는 보안 요구 사항과 운영 효율성 사이의 균형을 맞춥니다.

사용자 유형 관리#

다양한 사용자 유형은 조직과의 관계 및 보안 요구 사항에 따라 다양한 접근 수준이 필요합니다. 사용자를 적절하게 분류하면 적합한 접근 경계를 적용하는 데 도움이 됩니다.

  • 내부 프로젝트에 대한 가시성을 자동으로 제한하기 위해 계약자와 제3자를 외부 사용자로 지정합니다.
  • 저장소와의 제한된 상호 작용이 필요한 외부 협력자에게 Guest 역할을 할당합니다.
  • 인스턴스 전체에 읽기 전용 접근이 필요한 컴플라이언스 및 보안 담당자에게 감사자 사용자를 사용합니다.

정기적인 접근 검토#

정기적인 접근 검토는 역할과 책임이 변함에 따라 사용자 권한이 적절하게 유지되도록 합니다. 정기적인 검토는 보안 위험이 되기 전에 부적절한 접근을 식별하고 수정하는 데 도움이 됩니다.

  • 정기적인 접근 검토를 실시하여 사용자 권한을 검증하고 불일치를 즉시 해결합니다.
  • 사용자 내보내기그룹 내보내기 기능을 사용하여 포괄적인 접근 보고서를 생성합니다.
  • 사용자가 조직을 떠나거나 역할이 변경될 때 즉시 접근을 제거합니다.

접근 모니터링 및 감사#

접근 패턴과 권한 변경의 지속적인 모니터링은 보안 사고를 감지하고 컴플라이언스를 유지하는 데 도움이 됩니다. 감사 추적은 누가 어떤 리소스에 언제 접근했는지에 대한 가시성을 제공합니다.

  • 실시간 보안 모니터링을 위해 감사 이벤트 스트리밍을 SIEM 도구에 구성합니다.
  • 사용되지 않거나 과도한 권한이 있는 토큰을 식별하기 위해 자격 증명 인벤토리를 정기적으로 검토합니다.
  • 무단 접근 변경이나 권한 확대를 모니터링합니다.

조직 확장#

다양한 조직 규모와 구조는 권한 관리에 대한 다양한 접근 방법이 필요합니다. 성장하면서 안전하게 유지하기 위해 접근 제어 방법을 적용합니다.

기초 수준 (1-50명)#

생산성을 방해할 수 있는 복잡한 프로세스 없이 좋은 기초를 확립하는 데 집중합니다.

  • 기본 역할로 시작하고 프로젝트별이 아닌 그룹 수준에서 권한을 할당합니다.
  • 미래 참조를 위해 권한 결정과 근거를 문서화합니다.
  • 핵심 팀에게 GitLab 권한 모델 및 보안 방법을 교육합니다.
  • 일관된 보안 방법을 적용하기 위해 그룹 수준 CI/CD 구성을 수립합니다.

성장 수준 (50-200명)#

확장 가능한 프로세스의 필요성과 보안 요구 사항 사이의 균형을 맞춥니다.

  • 관리를 단순화하기 위해 사용자 그룹과 LDAP 또는 SAML을 통합합니다.
  • 접근을 제어하기 위해 공유 리소스와 민감한 리소스에 대해 별도의 하위 그룹을 생성합니다.
  • 팀 멤버를 위한 공식적인 온보딩 및 오프보딩 프로세스를 개발합니다.
  • 깊이 중첩된 그룹 구조를 최소화합니다 (대부분의 조직에서 4-5단계로 제한).

엔터프라이즈 수준 (200명 이상)#

엔터프라이즈급 제어 및 거버넌스 프로세스를 구현합니다.

  • 권한이 높은 사용자 수를 줄이면서 고유한 접근 요구에 맞는 커스텀 역할을 개발합니다.
  • GitLab API를 사용하여 대량 접근 작업을 자동화하여 수동 프로비저닝 오버헤드를 줄입니다.
  • 비즈니스 중단을 방지하기 위해 권한 변경을 위한 거버넌스 프로세스를 수립합니다.
  • 권한이 높은 역할에 대해 시간 제한 접근을 구현하고 업무 분리를 위한 컴플라이언스 프레임워크를 구현합니다.

저장소 및 CI/CD 보안#

코드, 배포 및 자동화된 프로세스를 무단 변경 및 접근으로부터 보호합니다. 이러한 제어는 소프트웨어 개발 및 제공 파이프라인의 무결성을 보장합니다.

파이프라인 보안#

CI/CD 파이프라인은 애플리케이션을 배포하고 민감한 리소스에 접근하기 위해 종종 높은 권한을 가집니다. 파이프라인 실행을 보안하면 무단 작업을 방지하고 배포 프로세스를 보호합니다.

  • 작업 권한을 사용하여 파이프라인 실행 중에 어떤 리소스에 접근할 수 있는지 제어합니다.
  • 중요한 배포 단계에 대해 승인 게이트를 구성합니다.
  • 배포를 격리하고 민감한 프로덕션 리소스에 대한 접근을 제한하기 위해 환경별 러너 또는 러너 태그를 사용합니다.

저장소 보호#

소스 코드 저장소에는 조직의 지적 재산이 포함되어 있으며 무단 변경으로부터 보호해야 합니다. 저장소 보안 제어는 코드 무결성을 보장하고 악의적인 수정을 방지합니다.

  • 커밋 표준을 적용하고 민감한 데이터 노출을 방지하기 위해 푸시 규칙을 구현합니다.
  • 보호된 브랜치에 변경 사항을 병합하기 전에 승인 규칙을 통해 코드 검토를 요구합니다.
  • 커밋 신뢰성의 암호화 검증을 제공하기 위해 서명된 커밋을 사용합니다.

API 및 자동화 보안#

자동화된 프로세스와 API 통합은 종종 광범위한 접근 권한을 가진 장기 자격 증명을 사용합니다. 이러한 비사람 접근 패턴은 자격 증명 남용을 방지하기 위해 특별한 보안 고려 사항이 필요합니다.

  • 개인 토큰 대신 제한된 권한이 있는 서비스 계정을 자동화된 프로세스에 사용합니다.
  • 자동화 및 CI/CD 파이프라인에서 사용되는 자격 증명을 정기적으로 교체합니다.
  • 자동화된 접근 패턴에서 비정상적인 동작이나 권한 확대 시도를 모니터링합니다.
  • API 접근을 위한 토큰을 생성할 때 가능한 한 가장 구체적인 스코프를 사용합니다.
  • API 통합을 위한 오류 처리 및 로깅을 구현합니다.
  • 남용을 방지하고 시스템 안정성을 보장하기 위해 API 요청을 속도 제한합니다.