1. OpenSearch 도메인 생성 시 JWT 인증 활성화
AWS OpenSearch Service에서 새로운 도메인을 생성할 때, JWT 인증을 활성화할 수 있습니다. 아래의 절차를 따라 JWT를 인증 옵션으로 설정하세요.
- AWS Management Console에 로그인하고 Amazon OpenSearch Service로 이동합니다.
- 도메인 생성(Create domain)을 클릭합니다.
- 도메인 설정 단계에서 필요한 도메인 이름과 버전을 선택합니다.
- 네트워크 구성과 클러스터 설정을 필요에 따라 구성합니다.
- 액세스 정책(Access policy) 설정에서, Fine-grained access control 옵션을 활성화합니다. 이 옵션을 활성화하면 사용자 인증(authentication) 방법을 선택할 수 있습니다.
- Authentication for OpenSearch Dashboards 섹션에서 JWT를 선택합니다.
- JWT 인증 설정을 구성합니다:
- JWT 발급자 URL(JWT issuer URL): JWT의 iss 클레임과 일치해야 하는 URL을 입력합니다.
- JWT 클라이언트 ID 클레임(JWT client ID claim): 클라이언트 ID를 검증하기 위한 JWT 클레임을 지정합니다.
- 서명 키(signing key): JWT의 서명을 검증하기 위한 키를 입력합니다. 이는 대칭 키(예: 비밀 키) 또는 비대칭 키(예: 공개 키)일 수 있습니다.
- 설정을 완료한 후 도메인 생성(Create)을 클릭합니다.
2. OpenSearch 도메인의 보안 구성 수정하기
도메인이 생성되고 나면, 보안 구성을 통해 JWT 기반 역할(role)과 인덱스, 필드, 도큐먼트 수준의 접근 정책을 설정할 수 있습니다. 이를 통해 사용자나 애플리케이션이 JWT를 이용해 인증받고 권한을 부여받을 수 있습니다.
2.1. OpenSearch Dashboards에서 보안 구성 수정
- OpenSearch Dashboards에 로그인합니다. 만약 처음 로그인하는 경우, AWS 콘솔에서 OpenSearch Dashboards로 접근할 수 있는 링크를 찾을 수 있습니다.
- 왼쪽 사이드바에서 Security 탭을 클릭합니다. 이 탭에서는 보안 관련 설정을 관리할 수 있습니다.
- Roles 섹션으로 이동하여, 새로운 역할을 생성하거나 기존 역할을 수정할 수 있습니다. 역할을 생성하려면 Create role 버튼을 클릭하세요.
2.2. JWT 클레임과 역할 매핑 설정
- Create role을 선택한 후, 역할 이름(Role name)을 지정합니다.
- Cluster permissions에서 역할에 필요한 클러스터 수준의 권한을 설정합니다.
- Index permissions에서 특정 인덱스에 대한 읽기/쓰기/삭제 등의 권한을 설정합니다.
- Document-level security와 Field-level security를 필요에 따라 설정할 수 있습니다. 이 설정을 통해 문서 및 필드 수준에서 접근을 제어할 수 있습니다.
- Mapped users 섹션에서 JWT 클레임과 역할을 매핑합니다:
- Backend roles: JWT의 roles 클레임에 있는 값을 여기에 추가하여 역할과 연결합니다.
- Hosts: 특정 호스트에서만 접근을 허용하려면 이 옵션을 설정할 수 있습니다.
2.3. 액세스 정책 수정하기
- Security 섹션에서 Roles mapping으로 이동하여, 방금 생성한 역할을 선택합니다.
- 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 |
댓글