이 가이드의 내용
이 가이드에서는 계정 보안을 강화하기 위해 수행할 수 있는 가장 큰 변경 사항에 대해 설명합니다. 각 섹션에서는 보안을 개선하기 위해 프로세스를 변경할 수 있는 변경 내용을 간략하게 설명합니다. 가장 큰 변경 내용이 먼저 나열됩니다.
어떤 위험이 있나요?
계정 보안은 공급망 보안의 기본 사항입니다. 공격자가 GitHub Enterprise Server에서 계정을 인수할 수 있는 경우 코드 또는 빌드 프로세스를 악의적으로 변경할 수 있습니다. 따라서 첫 번째 목표는 누군가가 사용자의 계정과 더불어 다른 인스턴스의 본인 계정과 사용자 계정을 쉽게 인수하지 못하도록 만드는 것입니다.
인증 중앙 집중화
인스턴스의 사이트 관리자인 경우 CAS, SAML 또는 LDAP와 같은 기존 IdP(ID 공급자)와 연결하는 인증 방법을 선택하여 사용자의 로그인 환경을 간소화할 수 있습니다. 즉, GitHub에 대한 추가 암호를 더 이상 기억할 필요가 없습니다.
또한 일부 인증 방법은 GitHub Enterprise Server에 대한 추가 정보 전달(예: 사용자가 구성원인 그룹 또는 사용자의 암호화 키 동기화)을 지원합니다. 이는 조직이 성장함에 따라 관리를 간소화하는 좋은 방법입니다.
GitHub Enterprise Server에 사용할 수 있는 인증 방법에 대한 자세한 내용은 "ID 및 액세스 관리 정보"을 참조하세요.
2단계 인증 구성
개인 계정 또는 인스턴스의 보안을 개선하는 가장 좋은 방법은 2FA(2단계 인증)를 구성하는 것입니다. 암호 자체는 추측할 수 있거나, 손상된 다른 사이트에서 재사용되거나, 피싱과 같은 소셜 엔지니어링에 의해 손상될 수 있습니다. 2FA를 사용하면 공격자가 암호를 가지고 있더라도 계정이 손상되는 것을 훨씬 더 어렵게 만듭니다.
계정에 대한 보안 및 신뢰할 수 있는 액세스를 모두 보장하는 모범 사례를 위해 항상 계정에 두 개 이상의 2단계 자격 증명을 등록해야 합니다. 추가 자격 증명을 사용하면 자격 증명 하나에 대한 액세스 권한이 없어도 계정에서 잠기지 않습니다.
인스턴스의 사이트 관리자인 경우 인스턴스의 모든 사용자에 대해 2FA를 구성할 수 있습니다. GitHub Enterprise Server에서 2FA의 가용성은 사용하는 인증 방법에 따라 달라집니다. 자세한 내용은 "인증 중앙 집중화"를 참조하세요.
조직 소유자인 경우 조직의 모든 구성원이 2FA를 사용하도록 요구할 수도 있습니다.
자신의 계정에서 2FA를 사용하도록 설정하는 방법에 대한 자세한 내용은 "2단계 인증 구성"을 참조하세요. 조직에서 2FA를 요구하는 방법에 대한 자세한 내용은 "조직에서 2단계 인증 요구"을 참조하세요.
엔터프라이즈 계정 구성
엔터프라이즈 소유자는 인스턴스의 모든 사용자에 대해 2FA를 요구할 수 있습니다. GitHub Enterprise Server에서 2FA 정책을 사용할 수 있는지 여부는 사용자 인증을 통해 인스턴스에 액세스하는 방법에 따라 달라집니다.
-
CAS 또는 SAML SSO를 사용하여 외부 IdP를 통해 GitHub Enterprise Server에 로그인하는 경우 GitHub Enterprise Server에서 2FA를 구성할 수 없습니다. IdP에 대한 관리 액세스 권한이 있는 사용자가 IdP에 대해 2FA를 구성해야 합니다.
-
외부 LDAP 디렉터리를 통해 GitHub Enterprise Server에 로그인하는 경우 GitHub Enterprise Server에서 엔터프라이즈에 2FA를 요구할 수 있습니다. 디렉터리 외부 사용자에 대한 기본 제공 인증을 허용하는 경우 개별 사용자는 2FA를 사용하도록 설정할 수 있지만 엔터프라이즈에 2FA를 요구할 수는 없습니다.
자세한 내용은 "엔터프라이즈에서 보안 설정에 대한 정책 적용"을 참조하세요.
개인 계정 구성
참고: 사이트 관리자이(가) 구성한 인증 방법에 따라 개인 계정에 대해 2FA를 활성화하지 못할 수도 있습니다.
GitHub Enterprise Server는 2FA에 대한 몇 가지 옵션을 지원하며, 그 중 어느 것도 없는 것보다는 낫지만 가장 안전한 옵션은 WebAuthn 자격 증명입니다. WebAuthn에는 FIDO2 하드웨어 보안 키, Windows Hello 등 플랫폼 인증자, Apple 또는 Google 휴대폰 또는 암호 관리자와 같은 인증자가 필요합니다. 2FA의 다른 형식을 피싱하는 것은 어렵지만 가능합니다(예: 누군가가 6자리 일회용 암호를 읽도록 요청하는 경우). 그러나 도메인 범위 지정이 프로토콜에 기본 제공되므로 웹 사이트의 자격 증명이 GitHub Enterprise Server에서 로그인 페이지를 가장하는 데 사용되지 않기 때문에 WebAuthn은 피싱에 저항력이 더 강합니다.
2FA를 설정할 때는 항상 복구 코드를 다운로드하고 둘 이상의 2FA 자격 증명을 설정해야 합니다. 이렇게 하면 계정에 대한 액세스가 단일 디바이스에 의존하지 않습니다. 자세한 내용은 "2단계 인증 구성" 및 "2단계 인증 복구 메서드 구성"을 참조하세요.
조직 계정 구성
참고: 사이트 관리자이(가) 구성한 인증 방법에 따라 조직에 2FA를 요구하지 못할 수도 있습니다.
조직 소유자인 경우 2FA를 사용하도록 설정하지 않은 사용자를 확인하여 설정에 도움을 준 다음 조직에 2FA를 요구할 수 있습니다. 해당 프로세스를 안내하려면 다음을 참조하세요.
SSH 키를 사용하여 GitHub Enterprise Server에 연결
웹 사이트에 로그인하는 것 외에 GitHub Enterprise Server와 상호 작용하는 다른 방법이 있습니다. 많은 사람들이 SSH 프라이빗 키를 사용하여 GitHub에 푸시하는 코드에 권한을 부여합니다. 자세한 내용은 "SSH 정보"을(를) 참조하세요.
계정 암호와 마찬가지로 공격자가 SSH 프라이빗 키를 가져올 수 있는 경우 사용자를 가장하고 쓰기 액세스 권한이 있는 모든 리포지토리에 악성 코드를 푸시할 수 있습니다. 디스크 드라이브에 SSH 프라이빗 키를 저장하는 경우 암호를 사용하여 보호하는 것이 좋습니다. 자세한 내용은 "SSH 키 암호 사용"을(를) 참조하세요.
또 다른 옵션은 하드웨어 보안 키에 SSH 키를 생성하는 것입니다. 2FA에 사용 중인 것과 동일한 키를 사용할 수 있습니다. 프라이빗 SSH 키는 하드웨어에 유지되며 소프트웨어에서 직접 액세스할 수 없기 때문에 하드웨어 보안 키는 원격으로 손상하기 매우 어렵습니다. 자세한 내용은 "새 SSH 키 생성 및 ssh-agent에 추가"을(를) 참조하세요.
하드웨어 지원 SSH 키는 매우 안전하지만 일부 조직에서는 하드웨어 요구 사항이 작동하지 않을 수 있습니다. 다른 방법은 짧은 기간 동안만 유효한 SSH 키를 사용하는 것이므로 프라이빗 키가 손상된 경우에도 오랫동안 악용되지 않습니다. 이는 사용자 고유의 SSH 인증 기관을 실행하는 개념입니다. 이 방법을 통해 사용자가 인증하는 방법을 높은 수준으로 제어할 수 있지만 SSH 인증 기관을 직접 유지 관리하는 책임도 함께 따릅니다. 자세한 정보는 "SSH 인증 기관 정보"을(를) 참조하세요.