Skip to main content

계정 보안의 모범 사례

소프트웨어 공급망에 액세스하여 계정을 보호하는 방법에 대한 지침입니다.

이 가이드의 내용

이 가이드에서는 계정 보안을 강화하기 위해 수행할 수 있는 가장 큰 변경 사항에 대해 설명합니다. 각 섹션에서는 보안을 개선하기 위해 프로세스를 변경할 수 있는 변경 내용을 간략하게 설명합니다. 가장 큰 변경 내용이 먼저 나열됩니다.

어떤 위험이 있나요?

계정 보안은 공급망 보안의 기본 사항입니다. 공격자가 GitHub Enterprise Cloud에서 계정을 인수할 수 있는 경우 코드 또는 빌드 프로세스를 악의적으로 변경할 수 있습니다. 따라서 첫 번째 목표는 누군가가 사용자의 계정과 더불어 다른 조직 또는 엔터프라이즈의 본인 계정과 구성원 계정을 쉽게 인수하지 못하도록 만드는 것입니다.

인증 중앙 집중화

엔터프라이즈 또는 조직 소유자인 경우 SAML을 사용하여 중앙 집중식 인증을 구성할 수 있습니다. 멤버를 수동으로 추가하거나 제거할 수 있지만 GitHub Enterprise Cloud와 SAML IdP(ID 공급자) 간에 SSO(Single Sign-On) 및 SCIM을 설정하는 것이 더 간단하고 안전합니다. 이렇게 하면 엔터프라이즈의 모든 멤버에 대한 인증 프로세스도 간소화됩니다.

엔터프라이즈 또는 조직 계정에 대한 SAML 인증을 구성할 수 있습니다. SAML을 사용하면 IdP를 통해 GitHub에서 엔터프라이즈 또는 조직의 구성원의 개인 계정에 대한 액세스 권한을 부여하거나 Enterprise Managed Users를 사용하여 엔터프라이즈에 속한 계정을 만들고 제어할 수 있습니다. 자세한 내용은 "ID 및 액세스 관리 정보"을(를) 참조하세요.

SAML 인증을 구성한 후 멤버가 리소스에 대한 액세스를 요청할 때 IdP에서 계속 인식되도록 SSO 흐름으로 전달됩니다. 인식할 수 없는 경우 요청이 거부됩니다.

일부 IdP는 IdP를 변경할 때 GitHub Enterprise Cloud에서 액세스를 자동으로 프로비저닝하거나 프로비전을 해제할 수 있는 SCIM이라는 프로토콜을 지원합니다. SCIM을 사용하면 팀이 성장함에 따라 관리를 간소화할 수 있으며 계정에 대한 액세스를 신속하게 철회할 수 있습니다. SCIM은 GitHub Enterprise Cloud의 개별 조직이나 Enterprise Managed Users를 사용하는 기업에서 사용할 수 있습니다. 자세한 내용은 "조직에 대한 SCIM 정보"을(를) 참조하세요.

2단계 인증 구성

Note

2023년 3월부터 GitHub은 GitHub.com에 코드를 기여하는 모든 사용자에게 2단계 인증(2FA) 방식을 하나 이상 사용하도록 요구하고 있습니다. 자격이 있는 그룹에 속했다면 해당 그룹이 등록 대상으로 선택되었을 때 45일 간의 2FA 등록 기간이 시작되었음을 알리는 알림 이메일을 받았을 것이며, GitHub.com에 2FA 등록을 요청하는 배너가 표시되었을 것입니다. 알림을 받지 못했다면 2FA를 사용해야 하는 그룹은 아니지만, 사용하는 것을 적극 권장합니다.

2FA 등록 출시에 대한 자세한 내용은 블로그 게시물을 참조하세요.

사용자 계정의 보안을 개선하는 가장 좋은 방법은 2FA(2단계 인증)를 구성하는 것입니다. 암호 자체는 추측할 수 있거나, 손상된 다른 사이트에서 재사용되거나, 피싱과 같은 소셜 엔지니어링에 의해 손상될 수 있습니다. 2FA를 사용하면 공격자가 암호를 가지고 있더라도 계정이 손상되는 것을 훨씬 더 어렵게 만듭니다.

계정에 대한 보안 및 신뢰할 수 있는 액세스를 모두 보장하는 모범 사례를 위해 항상 계정에 두 개 이상의 2단계 자격 증명을 등록해야 합니다. 추가 자격 증명을 사용하면 자격 증명 하나에 대한 액세스 권한이 없어도 계정에서 잠기지 않습니다.

또한 인증자 앱(TOTP 앱이라고 함)보다 암호 및 보안 키를 선호해야 하며 가능하면 SMS 사용을 피해야 합니다. SMS 기반 2FA 및 TOTP 앱은 모두 피싱에 취약하며 암호 및 보안 키와 동일한 수준의 보호를 제공하지 않습니다. SMS는 NIST 800-63B 디지털 ID 지침에 따라 더 이상 권장되지 않습니다.

조직의 서비스 계정이 GitHub에 따른 2FA 등록을 위해 선택된 경우 해당 토큰 및 키는 종료되지 않고 마감일 후에도 계속 작동합니다. 계정에서 2FA를 사용하도록 설정할 때까지 웹 사이트 UI를 통해GitHub에 대한 액세스만 차단됩니다. 서비스 계정의 두 번째 요소로 TOTP를 설정하고, SSO를 통해 제어되는 비밀에 액세스하여 회사의 공유 암호 관리자에 설치하는 동안 노출된 TOTP 비밀을 저장하는 것이 좋습니다.

엔터프라이즈 소유자인 경우 엔터프라이즈가 소유한 모든 조직에 대해 2FA를 요구하는 정책을 구성할 수 있습니다.

조직 소유자인 경우 조직의 모든 구성원이 2FA를 사용하도록 요구할 수도 있습니다.

자신의 계정에서 2FA를 사용하도록 설정하는 방법에 대한 자세한 내용은 "2단계 인증 구성"을 참조하세요. 조직에서 2FA를 요구하는 방법에 대한 자세한 내용은 "조직에서 2단계 인증 요구"을 참조하세요.

엔터프라이즈 계정 구성

엔터프라이즈 소유자는 엔터프라이즈의 모든 구성원에 대해 2FA를 요구할 수 있습니다. GitHub Enterprise Cloud에서 2FA 정책을 사용할 수 있는지 여부는 구성원 인증을 통해 기업의 리소스에 액세스하는 방법에 따라 달라집니다.

엔터프라이즈에서 Enterprise Managed Users를 사용하거나 엔터프라이즈에 SAML 인증이 적용되어 있는 경우 GitHub Enterprise Cloud에서 2FA를 구성할 수 없습니다. IdP에 대한 관리 액세스 권한이 있는 사용자가 IdP에 대해 2FA를 구성해야 합니다.

자세한 내용은 "엔터프라이즈 IAM에 대한 SAML 정보" 및 "엔터프라이즈에서 보안 설정에 대한 정책 적용"을 참조하세요.

개인 계정 구성

Note

엔터프라이즈 소유자가 구성한 인증 방법에 따라 개인 계정에 대해 2FA를 활성화하지 못할 수도 있습니다.

GitHub Enterprise Cloud는 2FA에 대한 몇 가지 옵션을 지원하며, 그 중 어느 것도 없는 것보다는 낫지만 가장 안전한 옵션은 WebAuthn 자격 증명입니다. WebAuthn에는 FIDO2 하드웨어 보안 키, Windows Hello 등 플랫폼 인증자, Apple 또는 Google 휴대폰 또는 암호 관리자와 같은 인증자가 필요합니다. 2FA의 다른 형식을 피싱하는 것은 어렵지만 가능합니다(예: 누군가가 6자리 일회용 암호를 읽도록 요청하는 경우). 그러나 도메인 범위 지정이 프로토콜에 기본 제공되므로 웹 사이트의 자격 증명이 GitHub Enterprise Cloud에서 로그인 페이지를 가장하는 데 사용되지 않기 때문에 WebAuthn은 피싱에 저항력이 더 강합니다.

2FA를 설정할 때는 항상 복구 코드를 다운로드하고 둘 이상의 2FA 자격 증명을 설정해야 합니다. 이렇게 하면 계정에 대한 액세스가 단일 디바이스에 의존하지 않습니다. 자세한 내용은 "2단계 인증 구성" 및 "2단계 인증 복구 메서드 구성"을 참조하세요.

조직 계정 구성

Note

엔터프라이즈 소유자가 구성한 인증 방법에 따라 조직에 2FA를 요구하지 못할 수도 있습니다.

조직 소유자인 경우 2FA를 사용하도록 설정하지 않은 사용자를 확인하여 설정에 도움을 준 다음 조직에 2FA를 요구할 수 있습니다. 해당 프로세스를 안내하려면 다음을 참조하세요.

  1. "조직의 사용자가 2FA를 사용하도록 설정하였는지 여부 보기"
  2. "조직의 2단계 인증 요구 대비"
  3. "조직에서 2단계 인증 요구"

SSH 키를 사용하여 GitHub Enterprise Cloud에 연결

웹 사이트에 로그인하는 것 외에 GitHub Enterprise Cloud와 상호 작용하는 다른 방법이 있습니다. 많은 사람들이 SSH 프라이빗 키를 사용하여 GitHub에 푸시하는 코드에 권한을 부여합니다. 자세한 내용은 "SSH 정보"을(를) 참조하세요.

계정 암호와 마찬가지로 공격자가 SSH 프라이빗 키를 가져올 수 있는 경우 사용자를 가장하고 쓰기 액세스 권한이 있는 모든 리포지토리에 악성 코드를 푸시할 수 있습니다. 디스크 드라이브에 SSH 프라이빗 키를 저장하는 경우 암호를 사용하여 보호하는 것이 좋습니다. 자세한 내용은 "SSH 키 암호 사용"을(를) 참조하세요.

또 다른 옵션은 하드웨어 보안 키에 SSH 키를 생성하는 것입니다. 2FA에 사용 중인 것과 동일한 키를 사용할 수 있습니다. 프라이빗 SSH 키는 하드웨어에 유지되며 소프트웨어에서 직접 액세스할 수 없기 때문에 하드웨어 보안 키는 원격으로 손상하기 매우 어렵습니다. 자세한 내용은 "새 SSH 키 생성 및 ssh-agent에 추가"을(를) 참조하세요.

하드웨어 지원 SSH 키는 매우 안전하지만 일부 조직에서는 하드웨어 요구 사항이 작동하지 않을 수 있습니다. 다른 방법은 짧은 기간 동안만 유효한 SSH 키를 사용하는 것이므로 프라이빗 키가 손상된 경우에도 오랫동안 악용되지 않습니다. 이는 사용자 고유의 SSH 인증 기관을 실행하는 개념입니다. 이 방법을 통해 사용자가 인증하는 방법을 높은 수준으로 제어할 수 있지만 SSH 인증 기관을 직접 유지 관리하는 책임도 함께 따릅니다. 자세한 내용은 "SSH 인증 기관 정보"을(를) 참조하세요.

다음 단계