AWS 기술 블로그

AWS IAM Identity Center를 사용하여 Amazon OpenSearch Serverless에 대한 SAML 연동 구성하기

이 글은 AWS Big Data Blog에 게시된 Configure SAML federation for Amazon OpenSearch Serverless with AWS IAM Identity Center by Utkarsh Agarwal를 한국어 번역 및 편집하였습니다.

Amazon OpenSearch Serverless는 클러스터를 구성, 관리 또는 확장할 필요 없이 대규모 검색 및 분석 워크로드를 쉽게 실행할 수 있도록 해주는 Amazon OpenSearch Service의 서버리스 옵션입니다. 리소스를 자동으로 프로비저닝하고 확장하여 가장 까다롭고 예측하기 어려운 워크로드에 대해서도 빠른 데이터 수집과 쿼리 응답을 제공합니다. Amazon OpenSearch Serverless를 사용하면 사용자가 외부 SAML ID 공급자(IdP)를 사용해 OpenSearch 대시보드를 통해 데이터에 액세스할 수 있도록 SAML을 구성할 수 있습니다.

AWS IAM Identity Center(AWS 싱글 사인온의 후속 제품)는 사용자 ID를 안전하게 생성 또는 연결하고, AWS 계정과 애플리케이션 전 영역의 액세스를 중앙에서 관리할 수 있도록 지원합니다.

이 게시물에서는 IAM Identity Center를 IdP로 사용하여 OpenSearch 대시보드에 대한 SAML 인증을 구성하는 방법을 보여드립니다.

솔루션 개요

다음 다이어그램은 솔루션에서 사용자 또는 그룹이 IAM Identity Center의 싱글 사인온(SSO)의 내장 ID 소스를 사용하여 OpenSearch 대시보드에 인증할 수 있는 방법을 보여 줍니다.

워크플로 단계는 다음과 같습니다.

  1. 사용자가 브라우저에서 OpenSearch 대시보드 URL에 액세스하여 SAML 공급업체를 선택합니다.
  2. OpenSearch Serverless는 로그인을 지정된 IdP로 전달합니다.
  3. IdP는 사용자가 인증을 위한 자격 증명을 지정할 수 있는 로그인 양식을 제공합니다.
  4. 사용자가 성공적으로 인증되면 SAML 어설션이 OpenSearch Serverless로 다시 전송됩니다.

OpenSearch Serverless가 SAML 어설션의 유효성을 검사하고 사용자가 OpenSearch 대시보드에 로그인합니다.

사전 요구 사항

시작하기에 앞서 활성 OpenSearch Serverless 컬렉션이 있어야 합니다. 컬렉션 생성에 대한 자세한 내용은 Amazon OpenSearch 서버리스 컬렉션 생성 및 관리를 참조하세요. 또한 데이터 액세스 제어 정책 구성을 위한 관련 IAM 권한과 함께 SAML 인증 구성을 위한 올바른 AWS Identity and Access Management(IAM) 권한이 있어야 합니다.

IAM Identity Center를 사용하도록 설정해야 하며 IAM Identity Center 에서 애플리케이션을 만들고 사용자 및 그룹을 만들고 관리할 수 있는 관련 IAM 권한이 있어야 합니다.

IAM Identity Center에서 애플리케이션 생성 및 구성

IAM Identity Center에서 애플리케이션을 설정을 위한 단계는 다음과 같습니다.

  1. IAM Identity Center 대시보드의 탐색 창에서 Applications(애플리케이션)을 선택합니다.
  2. Add application(애플리케이션 추가)를 선택합니다.
  3. Custom application(사용자 지정 애플리케이션)의 경우 Add custom SAML 2.0 application(사용자 지정 SAML 2.0 애플리케이션 추가)를 선택합니다.
  4. Next(다음)을 선택합니다.
  5. Configure application(애플리케이션 구성)에서 애플리케이션의 이름과 설명을 입력합니다.
  6. IAM Identity Center 메타데이터에서 IAM ID 센터 SAML 메타데이터 파일 아래에서 다운로드를 선택합니다.

    이 메타데이터 파일을 사용하여 OpenSearch Serverless에서 SAML 공급자를 만듭니다. 이 파일에는 IAM Identity Center SAML 어설션의 서명을 확인하는 데 사용되는 공개 인증서가 포함되어 있습니다.

  7. Application properties(애플리케이션 속성)에서 Application start URL(애플리케이션 시작 URL)Relay state(릴레이 상태)를 비워 둡니다.
  8. Session duration(세션 기간)에서 1시간(기본값)을 선택합니다.

    이 단계에서 구성하는 세션 기간은 OpenSearch Serverless의 SAML 공급자 세부 정보 구성에 지정된 OpenSearch 대시보드 시간 제한 설정보다 우선합니다.

  9. Application metadata(애플리케이션 메타데이터)에서 Manually type your metadata values(메타데이터 값을 수동으로 입력)을 선택합니다.
  10. Application ACS URL(애플리케이션 ACS URL)https://collection.<region>.aoss.amazonaws.com/_saml/acs 형식을 사용하여 URL을 입력합니다. 예를 들어, 이 게시물에는 https://collection.us-east-1.aoss.amazonaws.com/_saml/acs 을 입력했습니다.
  11. Application SAML audience(애플리케이션 SAML 대상)의 경우 서비스 제공업체를 aws:opensearch:<aws account id> 형식으로 입력합니다.
  12. Submit(제출)을 선택합니다.

    이제 속성 설정을 수정합니다. 여기서 구성한 attribute mappings(속성 매핑)은 애플리케이션으로 전송되는 SAML 어설션의 일부가 됩니다.

  13. Actions(작업) 메뉴에서 Edit attribute mappings(속성 매핑 편집)을 선택합니다.
  14. 형식을 unspecified(지정하지 않은)으로 선택하여 Subject(제목)${user:email}로 매핑되도록 구성합니다.

    여기에 ${user:email}을 사용하면 IAM Identity Center에 있는 사용자의 이메일 주소가 SAML 응답의 <NameId> 태그에 전달되도록 합니다.

  15. Save changes(변경 저장)을 선택합니다.

    이제 애플리케이션에 사용자를 할당합니다.

  16. IAM Identity Center에서 OpenSearch 대시보드에 로그인하는 데 사용할 사용자를 생성합니다. 또는 기존 사용자를 사용할 수도 있습니다.
  17. IAM Identity Center 콘솔에서 Application(애플리케이션)으로 이동하여 Assign Users(사용자 할당)을 선택하고 할당하려는 사용자를 선택합니다.

이제 사용자 정의 SAML 애플리케이션을 만들었습니다. 다음으로 OpenSearch Serverless에서 SAML 공급자를 구성합니다.

SAML 공급자 만들기

이 단계에서 생성하는 SAML 공급업체는 같은 지역의 모든 컬렉션에 할당할 수 있습니다. 설정을 위한 단계는 다음과 같습니다.

  1. OpenSearch Service 콘솔의 탐색 창에 있는 Serverless(서버리스) 아래에서 Security(보안)에서 SAML authentication(SAML 인증)을 선택합니다.
  2. Create SAML provider(SAML 공급자 만들기)를 선택합니다.
  3. SAML 공급업체의 이름과 설명을 입력합니다.
  4. 이전에 다운로드한 IdP의 메타데이터를 입력합니다.
  5. Additional settings(추가 설정)에서 사용자 지정 사용자 아이디 및 그룹 속성을 선택적으로 추가할 수 있습니다. 지금은 이 설정을 비워 두겠습니다.
  6. Create a SAML provider(SAML 공급자 만들기)를 선택합니다.

이제 OpenSearch Serverless용 SAML 공급자를 구성했습니다. 다음으로 컬렉션에 액세스하기 위한 데이터 액세스 정책을 구성하는 과정을 보겠습니다.

데이터 액세스 정책 만들기

이 단계에서는 OpenSearch Serverless에 대한 데이터 액세스 정책을 설정하고 사용자에 대한 데이터 액세스를 허용합니다. 설정을 위한 단계는 다음과 같습니다.

  1. OpenSearch Service 콘솔의 탐색 창에 있는 Serverless(서버리스)에서 Security(보안) 아래의 Data access policies(데이터 액세스 정책)을 선택합니다.
  2. Create access policy(액세스 정책 만들기)를 선택합니다.
  3. 액세스 정책의 이름과 설명을 입력합니다.
  4. 정책 정의 방법에서 Visual editor(시각적 편집기)를 선택합니다.
  5. Rule(규칙) 섹션에서 규칙 이름을 입력합니다.
  6. Select principals(권한자 선택)에서 SAML users and groups(SAML 사용자 및 그룹)을 선택합니다.
  7. SAML provider name(SAML 공급자 이름)에 앞서 생성한 SAML 공급자를 선택합니다.
  8. user/email (예: user/test@example.com)형식으로 사용자를 지정합니다.
    이메일 주소의 값은 IAM Identity Center의 이메일 주소와 일치해야 합니다.
  9. Save(저장)을 선택합니다.
  10. Grant(부여)을 선택해 적절한 권한을 부여합니다.

    컬렉션 수준에서 특정 사용자에게 제공할 액세스를 구성하고 인덱스 패턴 수준에서 특정 인덱스를 구성할 수 있습니다.

    최소 권한 모델을 기준으로 사용자에게 필요한 액세스를 선택해야 합니다. 사용자에게 더 세분화된 액세스를 설정하려면 지원되는 정책 권한 및 지원되는 OpenSearch API 작업 및 권한을 참조하세요.

  11. Save(저장)을 선택하고 필요한 경우 추가 규칙을 구성합니다.

    필요한 경우 구성을 검토하고 수정할 수 있습니다.
  12. Create(생성)을 선택하여 데이터 액세스 정책을 만듭니다.

이제 사용자가 OpenSearch 대시보드에서 허용된 작업을 수행할 수 있는 데이터 액세스 정책이 생겼습니다.

OpenSearch 대시보드 액세스

OpenSearch 대시보드에 로그인하는 방법은 다음과 같습니다.

  1. OpenSearch 콘솔 탐색 창에 있는 Serverless(서버리스) 아래에서 Dashboard(대시보드)를 선택합니다.
  2. 새 브라우저 탭에서 URL을 엽니다.
  3. OpenSearch 로그인 페이지에서 IdP를 선택하고 SSO 자격 증명을 지정합니다.
  4. Login(로그인)을 선택합니다.

IAM Identity Center에서 그룹을 사용하여 SAML 인증 구성하기

그룹을 사용하면 사용자와 권한을 일관된 방식으로 구성할 수 있습니다. 그룹을 사용하면 IdP에서 여러 사용자를 추가한 다음 데이터 액세스 정책에서 groupid를 식별자로 사용할 수 있습니다. 자세한 내용은 그룹 추가그룹에 사용자 추가하기를 참조하세요.

OpenSearch 대시보드에 대한 그룹 액세스를 구성 방법은 다음과 같습니다.

  1. IAM Identity Center 콘솔에서 애플리케이션으로 이동합니다.
  2. Attribute mappings(속성 매핑) 섹션에서 사용자를 그룹으로 추가하고 형식을 unspecified(지정하지 않은 상태)${user:groups}에 매핑합니다.
  3. Save Changes(변경 사항 저장)을 선택합니다.
  4. OpenSearch Serverless의 SAML 공급자의 경우, Additional settings(추가 설정)Group attribute(그룹 속성)에 그룹을 입력합니다.
  5. 데이터 액세스 정책의 경우 새 규칙을 만들거나 이전 규칙에 추가 주체를 추가합니다.
  6. SAML provider name을 선택하고 group/<GroupId>를 입력합니다.

그룹 ID의 값을 가져오려면 IAM Identity Center 콘솔의 그룹 섹션으로 이동하면 됩니다.

리소스 정리

솔루션을 계속 사용하지 않으려면 만든 리소스를 삭제해야 합니다.

  1. IAM Identity Center 콘솔에서 애플리케이션을 제거합니다.
  2. OpenSearch 대시보드에서 다음 리소스를 삭제합니다.
    1. 컬렉션을 삭제합니다.
    2. 데이터 액세스 정책을 삭제합니다.
    3. SAML 공급자를 삭제합니다.

결론

이 게시물에서는 SAML을 SSO로 사용하여 OpenSearch 대시보드에 액세스하기 위해 IAM Identity Center를 IdP로 설정하는 방법과 IAM Identity Center 내에서 사용자 및 그룹을 설정하고 OpenSearch 대시보드에 대한 사용자 및 그룹의 액세스를 제어하는 방법에 대해 배웠습니다. 자세한 내용은 Amazon OpenSearch Serverless를 위한 SAML 인증을 참조하세요.

OpenSearch Serverless를 사용하여 효과적인 로그 분석 및 검색 솔루션을 구축하는 데 사용할 수 있는 다양한 옵션에 초점을 맞춘 일련의 포스팅을 계속 지켜봐 주세요. 또한, Getting started with Amazon OpenSearch Serverless 워크숍을 참조하여 OpenSearch Serverless에 대해 자세히 알아볼 수도 있습니다.

이 게시물에 대한 질문이 있는 경우, re:Post의 OpenSearch 서비스 포럼에서 새 스레드를 시작하거나 AWS Support를 통해 문의하시기 바랍니다.

Sewoong Kim

Sewoong Kim

김세웅 Cloud Architect는 AWS Professional Services 팀의 일원으로서 컨테이너와 서버리스를 중심으로 AWS 기반 서비스를 구성하는 고객들에게 최적화된 아키텍처를 제공하고, GenAI Application Architect를 보다 고도화 하기 위한 여러 기술적인 도움을 드리고 있습니다.