본문 바로가기
BE 공부/AWS

[OpenSearch] OpenSearch에서 JWT 인증 사용하기

by 꼬질꼬질두부 2024. 9. 2.

1. OpenSearch 도메인 생성 시 JWT 인증 활성화

AWS OpenSearch Service에서 새로운 도메인을 생성할 때, JWT 인증을 활성화할 수 있습니다. 아래의 절차를 따라 JWT를 인증 옵션으로 설정하세요.

  1. AWS Management Console에 로그인하고 Amazon OpenSearch Service로 이동합니다.
  2. 도메인 생성(Create domain)을 클릭합니다.
  3. 도메인 설정 단계에서 필요한 도메인 이름과 버전을 선택합니다.
  4. 네트워크 구성클러스터 설정을 필요에 따라 구성합니다.
  5. 액세스 정책(Access policy) 설정에서, Fine-grained access control 옵션을 활성화합니다. 이 옵션을 활성화하면 사용자 인증(authentication) 방법을 선택할 수 있습니다.
  6. Authentication for OpenSearch Dashboards 섹션에서 JWT를 선택합니다.
  7. JWT 인증 설정을 구성합니다:
    • JWT 발급자 URL(JWT issuer URL): JWT의 iss 클레임과 일치해야 하는 URL을 입력합니다.
    • JWT 클라이언트 ID 클레임(JWT client ID claim): 클라이언트 ID를 검증하기 위한 JWT 클레임을 지정합니다.
    • 서명 키(signing key): JWT의 서명을 검증하기 위한 키를 입력합니다. 이는 대칭 키(예: 비밀 키) 또는 비대칭 키(예: 공개 키)일 수 있습니다.
  8. 설정을 완료한 후 도메인 생성(Create)을 클릭합니다.

2. OpenSearch 도메인의 보안 구성 수정하기

도메인이 생성되고 나면, 보안 구성을 통해 JWT 기반 역할(role)과 인덱스, 필드, 도큐먼트 수준의 접근 정책을 설정할 수 있습니다. 이를 통해 사용자나 애플리케이션이 JWT를 이용해 인증받고 권한을 부여받을 수 있습니다.

2.1. OpenSearch Dashboards에서 보안 구성 수정

  1. OpenSearch Dashboards에 로그인합니다. 만약 처음 로그인하는 경우, AWS 콘솔에서 OpenSearch Dashboards로 접근할 수 있는 링크를 찾을 수 있습니다.
  2. 왼쪽 사이드바에서 Security 탭을 클릭합니다. 이 탭에서는 보안 관련 설정을 관리할 수 있습니다.
  3. Roles 섹션으로 이동하여, 새로운 역할을 생성하거나 기존 역할을 수정할 수 있습니다. 역할을 생성하려면 Create role 버튼을 클릭하세요.

2.2. JWT 클레임과 역할 매핑 설정

  1. Create role을 선택한 후, 역할 이름(Role name)을 지정합니다.
  2. Cluster permissions에서 역할에 필요한 클러스터 수준의 권한을 설정합니다.
  3. Index permissions에서 특정 인덱스에 대한 읽기/쓰기/삭제 등의 권한을 설정합니다.
  4. Document-level securityField-level security를 필요에 따라 설정할 수 있습니다. 이 설정을 통해 문서 및 필드 수준에서 접근을 제어할 수 있습니다.
  5. Mapped users 섹션에서 JWT 클레임과 역할을 매핑합니다:
    • Backend roles: JWT의 roles 클레임에 있는 값을 여기에 추가하여 역할과 연결합니다.
    • Hosts: 특정 호스트에서만 접근을 허용하려면 이 옵션을 설정할 수 있습니다.

2.3. 액세스 정책 수정하기

  1. Security 섹션에서 Roles mapping으로 이동하여, 방금 생성한 역할을 선택합니다.
  2. Users and backend roles 필드에서 JWT 토큰의 클레임에 정의된 사용자를 적절한 역할에 매핑합니다. 예를 들어, JWT의 roles 클레임이 admin이라면, OpenSearch의 admin 역할에 매핑할 수 있습니다.

3. 액세스 정책과 역할 할당 확인

JWT 인증 및 역할 매핑 설정이 완료되면, JWT를 포함한 요청을 OpenSearch에 전송하여 해당 역할과 권한이 올바르게 적용되는지 테스트합니다. 이는 사용자 또는 애플리케이션이 JWT를 이용해 OpenSearch에 접근할 때 올바른 권한을 갖고 있는지 검증하는 과정입니다.

'BE 공부 > AWS' 카테고리의 다른 글

AWS Credential과 Cognito  (2) 2024.12.12
Cognito와 KMS(2)  (0) 2024.12.12
Cognito와 KMS(1)  (0) 2024.12.12
[DynamoDB] 다이나모 디비란?(1)  (3) 2024.09.12
[OpenSearch] OpenSearch Dashboards를 활성화하지 않고 JWT 인증 설정하기  (0) 2024.09.02

댓글