본문 바로가기
BE 공부/AWS

[OpenSearch] OpenSearch Dashboards를 활성화하지 않고 JWT 인증 설정하기

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

OpenSearch Dashboards를 활성화하지 않고 JWT 인증 설정하기

  1. 보안 플러그인 구성 파일 수정:
    authc:
      jwt_auth_domain:
        description: "Authenticate via JWT"
        http_enabled: true
        transport_enabled: false
        order: 0
        http_authenticator:
          type: jwt
          challenge: false
          config:
            signing_key: "your-jwt-signing-key"
            jwt_header: "Authorization"
            roles_key: "roles"
            subject_key: "sub"
        authentication_backend:
          type: noop
    
    
    이 설정은 JWT 토큰의 서명 키와 헤더, JWT의 roles 클레임에 대한 역할 매핑 정보를 포함합니다.
    OpenSearch의 보안 플러그인 설정 파일(config.yml)을 직접 수정하여 JWT 인증을 설정할 수 있습니다. 이 파일은 보통 plugins/opensearch-security/securityconfig/ 디렉토리에 위치해 있습니다.
  2. 보안 역할 및 매핑 설정 파일 수정:
    • roles.yml 예시:
jwt_user:
  cluster:
    - 'CLUSTER_COMPOSITE_OPS_RO'
  indices:
    '*':
      '*':
        - 'READ'

 

  • roles_mapping.yml 예시:
jwt_user:
  reserved: false
  backend_roles:
  - "user"
  users:
  - "user1"
  - "user2"

    OpenSearch에서 사용되는 보안 역할(roles)과 사용자 매핑은 각각 roles.yml과 roles_mapping.yml 파일에서 관리됩니다.

    이 파일을 수동으로 수정하여 필요한 역할과 접근 권한을 설정할 수 있습니다.

3. 설정 변경사항 적용:

./securityadmin.sh --cd ../securityconfig/ -icl -nhnv

    위 파일들을 수정한 후, 보안 설정을 적용해야 합니다. AWS 관리형 OpenSearch에서는 자동으로 보안 설정이 적용되지만,

    자체적으로 OpenSearch 클러스터를 운영하는 경우에는 보안 관리 도구(securityadmin.sh)를 사용하여 수동으로 변경 사항을 적용해야 합니다.

4. API를 통한 정책 관리:
    OpenSearch Dashboards를 사용하지 않는 경우,
    OpenSearch REST API를 활용하여 정책을 관리하고 JWT를 통한 접근 제어를 수행할 수 있습니다.

    이를 통해 사용자 인증, 역할 생성 및 수정, 권한 설정 등을 프로그래밍 방식으로 수행할 수 있습니다.

'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에서 JWT 인증 사용하기  (2) 2024.09.02

댓글