Elastic Cloud Serverless 및 Elasticsearch용 통합 API 키 소개

Elastic이 글로벌 분산형 IAM 아키텍처를 통해 서버리스 환경에서 컨트롤 플레인과 데이터 플레인 인증을 어떻게 통합하는지 알아보세요. 클라우드 및 Elasticsearch API에 하나의 API 키를 사용하세요.

성장하는 Elastic Cloud Serverless 프로젝트 플릿을 책임지는 사이트 신뢰성 엔지니어(SRE)라고 상상해 보세요. 여기에는 프로덕션 인프라를 위한 Elastic Observability, 보안 운영 센터(SOC) 팀을 위한 Elastic Security, 고객 대면 애플리케이션을 위한 Elasticsearch가 포함됩니다. 각 프로젝트에는 고유한 Elasticsearch API 키가 있습니다. 지속적 통합 및 지속적 배포(CI/CD) 파이프라인은 해당 프로젝트를 프로비저닝하고 관리하기 위해 별도의 클라우드 API 키를 필요로 합니다. 매 분기마다 순환일이 찾아오면 각 프로젝트를 살펴보고, 새로운 키를 발급하고, 테라폼 상태를 업데이트하고, 파이프라인을 재배치하고, 아무 문제 없이 진행되기를 바라야 합니다. 새벽 2시에 사고가 발생하여 액세스를 신속하게 취소해야 할 경우, 어떤 키가 어떤 프로젝트 및 서비스에 속하는지 파악하기 위해 자격 증명 스프레드시트를 교차 참조하게 됩니다.

오늘날에는 그 이야기가 훨씬 더 간단해졌습니다. Elastic Cloud API 키를 사용하여 Elastic Cloud Serverless에서 ElasticsearchKibana API에 대해 직접 인증할 수 있습니다. 이제 단일 자격 증명을 사용해 조직의 리소스를 관리하고, 이에 덧붙여 Elasticsearch 쿼리 언어(ES|QL) 쿼리, 데이터 수집 및 알림과 같은 데이터 작업을 실행할 수 있습니다.

이를 구축한 이유, 이를 가능하게 하기 위해 전 세계적으로 분산된 ID 계층을 설계한 방법, 프로젝트 간 검색의 토대를 마련한 방법을 살펴보세요.

비밀 관리 부담

데이터 플랫폼을 중심으로 안정적인 CI/CD 파이프라인, GitOps 워크플로우 또는 테라폼 자동화를 구축하는 데에는 숨겨진 비용, 즉 비밀스러운 확산이 따릅니다.

이전 모델에서 개발자들은 단절된 인증 방식에 직면했습니다.

  • 컨트롤 플레인(Elastic Cloud API 키): Elastic Cloud API를 통해 프로젝트를 생성하고, 사용자를 초대하고, 청구를 관리하는 데 사용되는 조직 범위의 키입니다.
  • 데이터 플레인(Elasticsearch API 키): 특정 서버리스 프로젝트 내부에서 생성된 프로젝트 범위 키로 ElasticsearchKibana API와 상호 작용합니다.

즉, 배포 스크립트는 Elastic Cloud에 인증하고 서버리스 프로젝트를 프로비저닝하며, 해당 프로젝트에서 새로 생성된 Elasticsearch API 키를 추출한 뒤 그 두 번째 키를 하위 애플리케이션이나 자동화 도구에 주입해야 했습니다. 이로 인해 복잡한 파이프라인, 조각화된 감사 로그, 자격 증명 유출 위험이 증가했습니다.

Elastic Cloud Serverless의 통합 인증

이번 릴리스에서는 서버리스 프로젝트의 분할이 사라졌습니다. 이제 클라우드, Elasticsearch 및 Kibana API에 대해 명시적으로 권한이 부여된 Elastic Cloud API 키를 생성할 수 있습니다.

  • 이전: Elastic Cloud API 키는 컨트롤 플레인 토큰으로만 사용되었습니다. 프로젝트를 생성하고, 청구를 관리하며, 사용자를 초대할 수 있었지만 한계가 있었습니다. 해당 프로젝트 내에서 Elasticsearch나 Kibana API를 호출하는 데는 사용할 수 없었습니다. 데이터 작업을 위해서는 항상 프로젝트별로 구분된 두 번째 키가 필요했습니다.
  • 현재: Elastic Cloud API 키를 생성할 때 클라우드, Elasticsearch 및 Kibana API 액세스를 선택하면 Serverless에 대한 엄격한 경계가 제거됩니다. 해당 API 키는 진정한 통합 자격 증명이 됩니다. 해당 솔루션은 조직의 인프라를 관리하는 기능을 유지하면서, 동시에 모든 권한 있는 서버리스 프로젝트에서 데이터를 쿼리, 인제스트 및 분석할 수 있는 기본 액세스 권한을 확보합니다.

Elastic Cloud API 키 하나로 이를 통합함으로써 범위를 지정하고, 감사하고, 순환하고, 하나의 단위로 취소할 수 있는 단일 ID를 얻게 됩니다. 모든 API 호출은 새 프로젝트를 프로비저닝하든 ES|QL 쿼리를 실행하든 감사 로그에서 동일한 자격 증명으로 표시되므로, 사고 조사 또는 규정 준수 검토 중에 단일 추적을 따를 수 있습니다. 자격 증명 순환이 더 이상 컨트롤 플레인 및 데이터 플레인 비밀 정보를 각각 따로 업데이트하는 방식이 아니라, 단일 단계 작업으로 처리됩니다. 또한 역할 할당은 프로젝트별로 이루어지기 때문에, 하나의 키로 여러 프로젝트에 걸쳐 통합 가시성 프로젝트에서 수집을 관리하고 보안 프로젝트에서 쿼리를 실행할 수 있으며, 각각에 대해 별도의 자격 증명을 처리하지 않아도 됩니다.

중요한 점은, '통합''전능함'을 의미하지는 않는다는 것입니다. role_assignments 페이로드를 사용하면 통합 키의 범위를 단일 프로젝트와 특정 역할(예: 읽기 전용)로 엄격하게 제한할 수 있어, 자격 증명이 노출되더라도 영향 범위가 완전히 제한되도록 보장합니다. 개발자가 퇴사하거나 애플리케이션이 폐기되는 경우, Elastic Cloud 콘솔에서 단일 키를 취소하여 컨트롤 플레인 및 연결된 모든 Elasticsearch 프로젝트 전반에 걸쳐 액세스를 즉시 종료할 수 있습니다.

(참고: Elastic Cloud Hosted/관리형 배포의 경우 클라우드 API 키는 여전히 컨트롤 플레인만 관리할 수 있습니다. 호스팅 스택 API에 대한 지원 확장은 향후 릴리스에서 제공될 예정입니다.)

워크플로우 자동화

시작 방법은 간단합니다. 이 모든 설정은 Elastic Cloud 콘솔을 통해 하거나 Elastic Cloud API를 사용해 자동화할 수 있습니다.

UI 프로세스는 동일하게 유지되지만, 이제 프로젝트 역할 할당에서 클라우드, Elasticsearch 및 Kibana API 액세스 권한을 선택할 수 있습니다.

다음은 Elastic Cloud API를 사용하여 프로그래밍 방식으로 통합 키를 생성하는 방법입니다. application_roles 배열에 주목하세요. 이 배열이 바로 키에 Elasticsearch 데이터 플레인에 대한 네이티브 액세스 권한을 부여하는 부분입니다.

생성된 후에는 이 키를 Authorization: ApiKey 헤더에 포함하여 api.elastic-cloud.com과 특정 서버리스 Elasticsearch 엔드포인트에 전달합니다.

작동 원리: 분산 ID 계층 구축

클라우드 API 키를 컨트롤 플레인과 데이터 플레인 모두에서 작동하도록 만드는 것은 단순히 토큰을 전달하는 것만큼 간단하지 않습니다. 이를 위해서는 근본적인 분산 시스템 문제를 해결해야 합니다.

과거에는 클라우드 API 키가 중앙 집중식 글로벌 보안 클러스터에 저장되었습니다. 컨트롤 플레인 작업에서는 더 높은 대기 시간이 허용되므로 잘 작동합니다. 하지만 Elasticsearch 데이터 요청은 지연 시간이 매우 짧아야 합니다. 모든 검색 쿼리나 인제스트 요청을 검증하기 위해 전 세계를 중앙 제어기로 왕복하는 비용을 감당할 수 없습니다.

이 문제를 해결하기 위해 당사는 전 세계적으로 분산된 데이터 저장소를 기반으로 하는 새로운 인증 아키텍처를 도입했습니다. 다음 시퀀스 다이어그램은 클라이언트가 Elastic Cloud API 키를 사용해 Elasticsearch 쿼리를 전송하는 것을 보여주며, 글로벌 컨트롤 플레인으로의 왕복 없이 전적으로 로컬 영역 내에서 인증이 어떻게 이루어지는지 설명합니다. Elasticsearch는 전 세계적으로 분산된 데이터베이스의 로컬 복제본에 대해 키를 검증하고 역할 할당을 확인하는 지역 IAM 서비스에 인증을 위임합니다. 인증이 완료되면 Elasticsearch는 쿼리를 실행하고 결과를 클라이언트에 반환합니다.

전 세계적으로 분산된 지속성

이제 Elastic Cloud API 키와 관련 역할 정의는 중앙 집중식 보안 클러스터에만 의존하는 대신, 전 세계적으로 분산되어 가용성이 높은 데이터베이스에 저장됩니다. 이 데이터베이스는 글로벌 컨트롤 플레인과 서버리스 프로젝트가 실제로 실행되는 지역 데이터 플레인 간에 아이덴티티 및 액세스 관리(IAM) 데이터를 동기화합니다.

지역 IAM을 통한 로컬 유효성 검사

클라이언트가 Elastic Cloud API 키를 사용하여 Elasticsearch에 요청을 보내면 해당 요청은 글로벌 제어 플레인으로 되돌아가지 않습니다. 대신 새로운 지역 IAM 서비스로 라우팅됩니다. 로컬 데이터베이스 복제본에 대해 키를 검증하여 지연 시간이 거의 없는 상태에서 인증이 이루어지고 글로벌 컨트롤 플레인 중단으로부터 완전히 격리되도록 합니다.

동적 역할 매핑

인증은 절반의 성공에 불과합니다. 시스템은 요청을 승인하는 절차도 수행해야 합니다. 지역 IAM 서비스는 클라우드 수준 역할 할당(예: application_roles)을 기본 Elasticsearch 권한으로 즉시 변환합니다. 그 후 Elasticsearch는 로컬 .security 인덱스 없이도 로컬에서 요청을 승인하고 실행할 수 있습니다.

이 분산형 아이덴티티 아키텍처는 Elastic 플랫폼의 미래를 위한 기반이 되는 핵심 구성 요소입니다.

신원과 접근 권한이 통합되어 전 세계적으로 동기화되므로, 서로 다른 프로젝트 간에 안전하게 신원을 전달할 수 있는 프레임워크를 갖추게 되었습니다. 이를 통해 향후 Serverless 환경에서 구현될 프로젝트 간 검색(CPS) 기능을 사용할 수 있게 됩니다.

CPS를 사용하면 보안 및 통합 가시성 워크로드를 결합하는 것처럼 여러 원격 서버리스 프로젝트에 걸쳐 있는 데이터를 단일 데이터 세트처럼 쉽게 쿼리할 수 있습니다. 통합된 API 키를 사용함으로써 시스템은 복잡한 신뢰 관계, 인증서 또는 중복 자격 증명을 각 대상 프로젝트에 구성할 필요 없이 모든 프로젝트에 걸쳐 사용자의 권한을 자동으로 평가할 수 있습니다.

자세히 알아보기

스택을 간소화할 준비가 되셨나요?

지금 바로 Elastic Cloud에서 빌드를 시작하거나 계속하세요.

안내 및 면책 조항

이 게시물에서 설명된 모든 기능이나 성능의 출시와 일정은 Elastic의 단독 재량에 따라 결정됩니다. 현재 제공되지 않는 기능이나 성능은 예정된 시간에 출시되지 않을 수도 있으며 아예 제공되지 않을 수도 있습니다.

이 콘텐츠가 얼마나 도움이 되었습니까?

도움이 되지 않음

어느 정도 도움이 됩니다

매우 도움이 됨

관련 콘텐츠

최첨단 검색 환경을 구축할 준비가 되셨나요?

충분히 고급화된 검색은 한 사람의 노력만으로는 달성할 수 없습니다. Elasticsearch는 여러분과 마찬가지로 검색에 대한 열정을 가진 데이터 과학자, ML 운영팀, 엔지니어 등 많은 사람들이 지원합니다. 서로 연결하고 협력하여 원하는 결과를 얻을 수 있는 마법 같은 검색 환경을 구축해 보세요.

직접 사용해 보세요