개요
암호 관리는 암호, 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API) 키, 구성 파일과 같은 IT 자격 증명을 제어하는 프로세스입니다. IT 조직은 암호 관리를 통해 민감한 정보의 기밀을 유지하고 최신 상태로 유지하는 동시에 통제된 리소스를 필요한 사람과 시스템이 사용할 수 있도록 합니다.
암호 관리는 광범위한 개념입니다. 엔터프라이즈 환경에서 모범적인 암호 관리란 중앙에 있는 위치에서 암호를 저장하고 해당 암호 리포지토리를 IT 자동화 툴과 통합하는 것을 의미합니다. 소프트웨어 개발 팀의 경우 암호 관리는 DevSecOps 워크플로우에 포함될 수 있습니다. 이 문서에서는 엔터프라이즈 암호 관리의 방식과 이를 통해 얻을 수 있는 이점에 대해 자세히 살펴보겠습니다.
암호 관리 방식
암호는 매우 중요합니다. 그래서 아무도 포스트잇에 암호를 써서 컴퓨터에 붙여놓지 않습니다. (만약 그렇게 하고 있다면 더 나은 암호 관리 방법으로 바꾸세요!) 암호가 노출되면 공격자가 민감한 데이터에 액세스하거나 더 많은 비밀에까지 액세스하여 시스템 전반에 걸쳐 횡적 이동할 수 있습니다.
암호 관리의 대안으로 사용되는 기존 방식은 수동 프로세스를 사용하여 암호를 추적하는 것입니다. 기본적인 수준에서, 팀의 모든 구성원이 때때로 다양한 계정에 액세스해야 하므로 모든 로그인 자격 증명을 하나의 문서에 붙여넣고 모든 사람과 공유한다고 가정해 보겠습니다. 잠시 동안은 괜찮을 수 있지만, 필요한 것보다 더 많은 액세스 권한을 부여한 것입니다.
이는 다양한 방식으로 혼란을 야기하고 불필요한 위험을 초래하게 될 수 있습니다. 누군가 비밀번호를 변경하고 나서 목록을 업데이트하는 것을 잊을 수 있습니다. 누군가 목록을 복사하는 바람에 버전이 여러 개 생기는 경우도 있습니다. 누군가 실수로 목록을 지울 수도 있습니다. 누군가 암호를 스크립트에 하드 코딩한 다음 공용 리포지토리로 푸시하여 암호를 일반에 공개할 수도 있습니다. 또는 누군가의 업무용 계정이 해킹당해서 악의적인 사용자가 목록과, 해당 목록이 액세스할 수 있는 다른 모든 것에 대한 액세스 권한을 갖게 될 수 있습니다.
암호 관리는 이러한 문제를 방지하는 방법을 제공합니다. 모든 보안 제어를 항상 최대화할 필요는 없습니다. 대신 효과적인 암호 관리는 특정 영역에서 암호가 손상될 가능성을 줄이기 위해 보안 옵션을 전략적으로 적용합니다. 모범적인 암호 관리의 기초적인 요소는 다음과 같습니다.
- Identity 및 액세스 관리(IAM, Identity and Access Management). IAM을 사용하면 하나의 시스템을 통해 사용자 인증을 처리한 다음 해당 시스템에서 사용자를 다른 시스템에 연결할 수 있습니다. 중앙화된 인증 관리는 LDAP(Lightweight Directory Access Protocol) 및 SAML(Security Assertion Markup Language)과 같은 표준을 사용합니다.
- 액세스 자격 증명 암호화. 암호화를 사용하여 암호를 암호 해독 키 없이는 읽을 수 없는 문자열로 변경할 수 있습니다. 원격 액세스에 널리 사용되는 SSH(Secure Shell) 프로토콜은 암호화 키를 사용합니다. 암호화는 다양한 강도 중에서 선택할 수 있으며, 암호화 키를 매주 교체하는 것과 같은 표준 관행을 도입할 수 있습니다. 암호화는 누구나 쉽게 다시 변경할 수 있는 표준 방식으로 암호를 변경하는 인코딩과는 대조적인 개념입니다.
- 역할 기반 액세스 제어(RBAC). RBAC는 팀이나 그보다 큰 조직 내에서 사용자의 역할을 기준으로 리소스에 대한 액세스 권한을 제공합니다. IT 관리자는 RBAC를 사용하여 사용자를 직무별로 그룹화할 수 있으며, 사용자별로 권한을 관리하는 대신 전체 그룹의 권한을 한 번에 관리할 수 있습니다.
- 인증서 관리. 인증서는 네트워크 전반의 통신을 보호하는 암호화 프로토콜입니다. SSL(Secure Sockets Layer) 및 TLS(Transport Layer Security) 인증서는 인터넷 통신 표준입니다. 신뢰를 구축하려면 서버에 인증 기관(Certificate Authority, CA)에서 발급한 디지털 인증서가 있어야 합니다. SSL 인증서는 정기적으로 갱신해야 합니다. 암호 정보 관리 시스템은 이 프로세스를 자동화하고 제어할 수 있습니다.
- 제로 트러스트 원칙. 최근 몇 년 동안 인기를 얻은 제로 트러스트는 보안 아키텍처에 대해 모든 상호 작용이 신뢰할 수 없는 상태에서 시작한다고 가정하고 접근하는 방식입니다. 민감한 리소스에 대한 액세스 권한은 세분화된 기준에 따라서만 부여됩니다. 제로 트러스트는 사용자가 꼭 필요한 리소스에만 액세스할 수 있어야 한다는 최소 권한 개념을 기반으로 합니다.
암호 관리는 하나의 개념이나 사례에만 의존하는 것이 아니라 다양한 공통 전략을 중앙집중화되고 자동화된 프로세스로 통합하는 것입니다.
Red Hat 리소스
암호 관리의 장점은?
암호 관리는 데이터를 보호할 뿐만 아니라 다른 중요한 방식으로 전반적인 운영을 개선합니다.
- 격리된 보안 영역(security island) 방지: 암호 제어를 중앙화함으로써 조직 내 소규모 그룹이 전문화된 액세스 권한을 독점적으로 갖는 것을 방지할 수 있습니다.
- 악의적인 사용자 식별: 강력한 검증 요건을 구현하여 잠재적인 해커를 손쉽게 차단하고 자격이 증명된 사용자처럼 위장하려는 시도를 막을 수 있습니다.
- 자격 증명 자동화: 자격 증명 확인 및 권한을 자동화함으로써 사용자를 인증하는 데 필요한 수동 작업의 양을 줄이고 사용자 워크플로우를 중단 없이 지속할 수 있습니다.
엔터프라이즈 암호 관리에 대한 접근 방식은?
엔터프라이즈 컴퓨팅 환경에서는 위험이 더 높고 암호 관리가 더 복잡합니다. 관리자는 다양한 시스템과 데이터 세트에 대한 액세스 권한을 책임감 있게 할당해야 하며, 많은 사용자는 다양한 기간 동안 다양한 리소스에 액세스해야 합니다. 엔터프라이즈 암호 관리는 높은 수준으로 성숙한 분야로, 오픈소스 솔루션을 포함하여 다양한 옵션을 제공합니다.
Red Hat® Ansible® Automation Platform과Red Hat OpenShift®는 오픈 표준을 기반으로 하며 다양한 암호 관리 툴과 통합됩니다. Ansible Automation Platform의 암호 관리 기능에는 HashiCorp Vault, CyberArk, AWS Secrets Manager, Azure Key Vault 등 기타 주요 플랫폼과의 통합이 포함됩니다.
HashiCorp Vault
HashiCorp Vault는 IAM 및 암호 관리를 위한 중앙집중식 플랫폼입니다. Vault는 기간이 한정된 동적 자격 증명을 제공하여 민감한 데이터에 대한 단일 정보 소스를 유지 관리할 수 있도록 합니다. Vault 에이전트는 Red Hat Ansible Automation Platform 및 Red Hat OpenShift와 통합되어 사용자 정의 IT 환경 전반에서 액세스 자격 증명과 인증서를 관리할 수 있습니다.
Vault와 Red Hat Ansible Automation Platform을 함께 사용하면 액세스 제어를 시행하고 컴플라이언스 감사와 문제 해결까지도 지원할 수 있습니다. 거버넌스를 중앙화하여 리스크 감소, 감사 간소화, 인프라 변경 시 컴플라이언스 및 추적 가능성 보장 등의 장점을 누릴 수 있습니다.
CyberArk
Red Hat과 CyberArk를 통해 자격 증명과 데이터를 안전하게 보호(2:03)
사이버아크(CyberArk)는 사용자의 리소스에 대한 액세스를 관리할 수 있는 IAM 및 암호 플랫폼을 제공합니다. Red Hat Ansible Automation Platform은 CyberArk Conjur와 통합되어 DevOps 및 지속적 통합/지속적 제공(continuous integration and continuous delivery, CI/CD) 툴에서의 사용을 포함하여 애플리케이션 환경에서 보안 정책을 적용하고 암호를 관리할 수 있도록 지원합니다.
DevOps 프로세스 전반에 암호 관리 모범 사례를 자동으로 포함할 수 있습니다. 여기에는 애플리케이션에서 사용할 암호 프로비저닝, 조직의 보안 정책에 따른 암호 교체, 권한 있는 사용자 액세스의 모니터링, 가시성 개선, 컴플라이언스 표준 유지 관리 등이 포함될 수 있습니다.
쿠버네티스 환경의 암호 관리
Red Hat OpenShift 환경과 같은 쿠버네티스 배포에서 애플리케이션은 다른 시스템과 통신하고 의도된 기능을 수행하기 위해 암호에 액세스해야 하는 컨테이너 플릿으로 구성됩니다.
쿠버네티스에서 암호를 관리하는 기본적인 방법 두 가지는 환경 변수와 볼륨 마운트를 사용하는 것입니다.
- 환경 변수를 사용하면 암호의 키-값 쌍이 컨테이너에 환경 변수로 직접 주입됩니다.
- 볼륨 마운트를 사용하면 암호가 컨테이너의 파일 시스템에 일련의 파일로 마운트됩니다. 애플리케이션 코드는 이러한 파일에서 암호 데이터를 읽습니다.
볼륨 마운트는 다양한 보안 이점을 제공하여 Red Hat OpenShift에 권장되는 방식입니다. Red Hat OpenShift 보안 모델은 환경 변수에 기본적인 수준의 보호를 제공하지만, 볼륨 마운트를 기본 방식으로 사용하면 비밀 정보를 최대한 안전하게 유지할 수 있습니다.
이와 관련된 개념인 쿠버네티스 암호는 오브젝트를 사용하여 애플리케이션 코드에서 기밀 데이터를 분리함으로써 코드 자체에서 암호가 노출되지 않도록 합니다. 이는 GitOps의 보안 아키텍처 관행과 일치합니다.
보안 접근 방식에 Red Hat을 사용해야 하는 이유
Red Hat은 오픈소스 보안 원칙을 적용하여 고객, 기여자, 파트너로 이루어진 커뮤니티를 디지털 보안 위협으로부터 보호합니다. 여기에는 암호 관리를 위한 지원을 제품 내에서 기본적으로 제공하고 다른 암호 정보 관리 솔루션과 통합하는 것이 포함됩니다.
Red Hat Enterprise Linux®는 고도로 동적이고 확장 가능한 환경에서 중앙화된 Identity 관리, 인증, 권한 부여를 수행하기 위한 기반을 제공합니다.
Red Hat OpenShift는 DevOps 접근 방식에 부합하는 암호 관리 전략을 포함하여 컨테이너 기반 애플리케이션 개발을 위한 보안 제어 기능을 기본적으로 제공합니다.
Red Hat Ansible Automation Platform은 중앙에서 자동으로 암호를 관리할 수 있도록 하며, 공통 암호 리포지토리와의 통합도 지원합니다.
레드햇 공식 블로그
레드햇 공식 블로그에서 고객, 파트너, 커뮤니티 에코시스템 등 현재 화제가 되는 최신 정보를 살펴 보세요.