DevOps 도구에 대한 역할 기반 액세스 제어
인프라 구축을 위한 클라우드 기반 솔루션을 배포하는 경우 보안이 항상 가장 중요한 관심사여야 합니다. Microsoft는 기본 클라우드 인프라를 안전하게 유지합니다. Azure DevOps 또는 GitHub에서 보안을 구성합니다.
필수 조건
배포할 Azure 랜딩 존 템플릿을 결정하면 자체 리포지토리에 복제합니다. CI/CD 파이프라인을 설정합니다. GitHub 및 Azure DevOps의 경우 PAT(개인 액세스 토큰) 및 MICROSOFT Entra ID와 같은 ID 공급자와의 통합과 같은 몇 가지 인증 방법을 사용할 수 있습니다. 자세한 내용은 개인용 액세스 토큰 사용을 참조하세요.
Microsoft Entra ID와 통합하여 모든 기능을 사용하는 것이 좋습니다. 통합은 역할 할당 프로세스 및 ID 수명 주기 관리를 간소화하는 데 도움이 됩니다. 자세한 내용은 조직에서 Microsoft Entra ID로 커넥트 참조하세요. GitHub를 사용하는 경우 GitHub Enterprise를 Microsoft Entra ID와 통합하는 것이 좋습니다.
일반 디자인 고려 사항
Microsoft Entra ID 및 DevOps 도구에서 관리자 및 서비스 계정 그룹을 엄격하게 제어할 기본 것이 좋습니다. 모든 역할 할당에서 최소 권한 원칙을 구현하는 것이 좋습니다.
예를 들어 조직에는 Azure 랜딩 존의 Azure Resource Manager 템플릿을 유지 관리하는 플랫폼 또는 우수 클라우드 팀이 있을 수 있습니다. ID 공급자로 사용한다고 가정하여 해당 팀의 사용자를 Microsoft Entra ID의 보안 그룹에 할당합니다. 해당 사용자가 작업을 수행할 수 있도록 DevOps 도구에서 해당 보안 그룹에 역할을 할당합니다.
Active Directory의 관리자 또는 높은 권한이 있는 계정의 경우 자격 증명이 Microsoft Entra ID와 동기화되지 않고 그 반대의 경우도 마찬가지입니다. 이 방법은 수평 이동의 위협을 줄입니다. Microsoft Entra ID의 관리자가 손상된 경우 공격자는 Azure DevOps와 같은 클라우드 자산에 쉽게 액세스할 수 없습니다. 해당 계정은 잠재적으로 CI/CD 파이프라인에 악의적인 작업을 삽입할 수 없습니다. 이 단계는 빌드 또는 프로젝트/컬렉션 관리자와 같은 DevOps 환경에서 관리자 권한이 할당된 모든 사용자에게 특히 중요합니다. 자세한 내용은 Microsoft Entra ID의 보안 모범 사례를 참조하세요.
Azure DevOps 역할 기반 액세스 고려 사항
조직/컬렉션, 프로젝트 또는 개체 수준에서 보안 그룹, 정책, 설정을 사용하여 Azure DevOps의 보안을 관리합니다. Microsoft Entra ID와 같은 ID 공급자와 통합하려면 모든 사용자에게 다단계 인증을 적용하는 조건부 액세스 정책을 만드는 것이 좋습니다. 이 정책을 통해 Azure DevOps 조직에 액세스할 수 있으며 IP 주소, 액세스에 사용되는 디바이스 유형, 디바이스 준수에 대한 보다 세부적인 제한이 허용됩니다.
Azure 랜딩 존 을 관리하는 플랫폼 팀의 대부분의 팀 구성원에게 기본 액세스 수준 및 기여자 기본 보안 그룹은 충분한 액세스를 제공해야 합니다. 기여자 보안 그룹을 사용하면 리포지토리의 Azure 랜딩 존 템플릿과 유효성을 검사하고 배포하는 CI/CD 파이프라인을 편집할 수 있습니다.
Azure DevOps의 프로젝트 수준에서 기여자 보안 그룹에 플랫폼 팀을 할당하는 것이 좋습니다. 이 접근 방식은 최소 권한 원칙을 따릅니다. 이러한 할당은 아래 표시된 프로젝트 설정 페이지를 통해 수행할 수 있습니다.
Azure DevOps Projects 및 조직의 또 다른 모범 사례는 가능한 경우 상속을 사용하지 않도록 설정하는 것입니다. 사용자는 보안 그룹 할당에서 허용하는 권한을 상속합니다. 상속의 기본 허용 특성으로 인해 예기치 않은 사용자가 액세스 또는 권한을 얻을 수 있습니다.
예를 들어 플랫폼 팀 기여자 보안 그룹 멤버 자격을 할당하는 경우 Azure 랜딩 존 리포지토리에 대한 권한을 확인합니다. 끌어오기 요청 중에 보안 그룹이 해당 정책을 바이패스할 수 없는지 확인할 분기 정책이 있어야 합니다. 프로젝트 설정>리포지토리에서 이 설정을 확인합니다.
사용자에게 권한을 할당한 후에는 감사 이벤트를 주기적으로 검토하여 관리자 및 다른 사용자의 예기치 않은 사용 패턴을 모니터링하고 대응합니다. 먼저 Log Analytics 작업 영역에 대한 감사 스트림을 만듭니다. 작업 영역에서 Microsoft Sentinel을 사용하는 경우 부적절한 권한 사용과 같은 주목할 만한 이벤트에 대해 경고하는 분석 규칙을 만듭니다.
자세한 내용은 다음 리소스를 참조하세요.
GitHub 역할 기반 액세스 고려 사항
기본 DevOps 도구가 GitHub인 경우 리포지토리 수준, 팀 수준 또는 조직 수준에서 사용자에게 역할을 부여하여 리소스에 대한 액세스 권한을 할당할 수 있습니다. Azure 랜딩 존 리포지토리를 포크하고 Microsoft Entra ID와 같은 ID 공급자와 통합한 후 GitHub에서 팀을 만드는 것이 좋습니다. 새 Azure 랜딩 존 리포지토리에 해당 팀 쓰기 권한을 할당합니다. 랜딩 존을 수정하고 배포하는 대부분의 플랫폼 팀 구성원에게는 쓰기 권한으로 충분합니다. 팀의 프로젝트 관리자 또는 스크럼 관리자의 경우 해당 리포지토리에 기본 관련 역할을 할당해야 할 수 있습니다.
통합 ID 공급자를 통해 이러한 역할 할당을 모두 관리하는 것이 좋습니다. 예를 들어 GitHub에서 만든 Azure 랜딩 존 리포지토리에 대한 플랫폼 팀을 Microsoft Entra ID의 해당 플랫폼 팀 보안 그룹과 동기화할 수 있습니다. 그런 다음, Microsoft Entra 보안 그룹에 구성원을 추가하거나 제거하면 이러한 변경 내용이 GitHub Enterprise Cloud 역할 할당에 반영됩니다.
참고 항목
특정 GitHub 팀을 통합 ID 공급자에 연결하면 이를 통해 팀 멤버 자격을 관리할 수 없습니다.
다음 단계
GitHub에서 역할 및 팀을 관리하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.