모두 확장/축소 컨테이너에서 Qlik 데이터 게이트웨이 - 직접 액세스 설정하기 이 페이지에서 마지막 업데이트: 2026. 9. 30.
이 항목에서는 컨테이너화된 직접 액세스 게이트웨이 을(를) 설정하는 방법을 설명합니다.사전 요구 사항 및 설치 지침을 제공하며, 컨테이너화된 직접 액세스 게이트웨이 (으)로 작업할 때 알아두어야 할 제한 사항과 고려 사항을 설명합니다.
정보 메모 직접 액세스 게이트웨이 1.8.0부터 지원됩니다.
컨테이너화된 직접 액세스 게이트웨이 란 무엇인가요?
직접 액세스 게이트웨이 을(를) Docker 컨테이너에 배포할 수 있습니다.이러한 유형의 배포는 컨테이너화된 직접 액세스 게이트웨이 (이)라고 합니다.컨테이너화된 직접 액세스 게이트웨이 배포는 Linux, macOS 및 Windows 에서 지원됩니다.
컨테이너화된 직접 액세스 게이트웨이 은(는) 사용자의 직접 액세스 게이트웨이 환경에 이식성을 제공합니다.
Qlik 데이터 게이트웨이 - 직접 액세스 사용 시 모범 사례
Qlik 데이터 게이트웨이 - 직접 액세스 사용 시 성공적인 환경을 위해서는 다음 모범 사례를 따르는 것이 좋습니다.
시스템 전제 조건
이 섹션에서는 컨테이너화된 직접 액세스 게이트웨이 사용을 위한 요구 사항에 대해 설명합니다.
소프트웨어 요구 사항
필수 포트 및 프로토콜
필수 포트 및 프로토콜에 대한 자세한 내용은 필수 포트 및 프로토콜 을(를) 참조하십시오.
권장 하드웨어
호스트: 8코어, 32 GB 메모리, Docker에서 사용 가능한 5 GB 스토리지
선택 사항: 게이트웨이가 호스트의 다른 컨테이너 또는 프로세스와 경쟁하지 않고 전용 용량을 확보할 수 있도록 compose 파일에서 컨테이너에 일치하는 제한을 설정합니다:
direct-access-agent:
image: ...
deploy:
resources:
limits:
cpus: "6"
memory: 24G
...
dcaas:
image: ...
deploy:
resources:
limits:
cpus: "2"
최소 하드웨어
최소 하드웨어는 지속적으로 낮은 데이터 볼륨과 제한된 수의 동시 다시 로드가 있는 소규모 전용 배포(개발, 테스트 또는 프로덕션)를 사용하는 특정 시나리오에만 적합합니다.
호스트: 4코어, 8GB 메모리, Docker에서 사용 가능한 5GB 스토리지
선택 사항: 게이트웨이가 호스트의 다른 컨테이너 또는 프로세스와 경쟁하지 않고 전용 용량을 확보할 수 있도록 compose 파일에서 컨테이너에 일치하는 제한을 설정합니다:
direct-access-agent:
image: ...
deploy:
resources:
limits:
cpus: "2"
memory: 4G
...
dcaas:
image: ...
deploy:
resources:
limits:
cpus: "2"
설치 Qlik 데이터 게이트웨이 - 직접 액세스
Direct Access gateway를 설정하려면 관리 활동 센터와 Direct Access gateway 서버 모두에서 수행해야 하는 절차가 포함됩니다.
정보 메모 관리 활동 센터에서 수행해야 하는 데이터 게이트웨이 절차에는 테넌트 관리자 권한이 필요합니다.
1단계: 다운로드 Qlik 데이터 게이트웨이 - 직접 액세스
관리 활동 센터에서 데이터 게이트웨이 를 선택합니다.
기존의 모든 데이터 게이트웨이는 각 게이트웨이에 대한 기본 정보를 보여 주는 테이블 에 나열됩니다.
배포 도구 모음 버튼을 클릭합니다.
데이터 게이트웨이 배포 대화 상자가 열립니다.
데이터 게이트웨이 - 직접 액세스 - Containerized Direct Access Gateway 를 선택하고 Qlik 고객 계약 에 동의한 다음 다운로드 를 클릭합니다.Direct Access gateway 설치 파일(docker-compose.qlik-data-gateway-direct-access.yml )이 사용자 컴퓨터로 다운로드됩니다.
2단계: Docker Compose 파일을 실행하여 배포 시작
직접 액세스 게이트웨이 배포를 시작하려면 다음 명령을 실행하세요:
docker compose -f docker-compose.qlik-data-gateway-direct-access.yml up
4단계: 데이터 게이트웨이 등록
다음 단계는 데이터 게이트웨이를 등록하는 것입니다. 이는 관리 활동 센터를 통하거나 명령줄에서 수행할 수 있습니다.
옵션 2: 명령줄을 사용한 자동 등록
관리 활동 센터를 사용하지 않고 명령줄에서 직접 액세스 게이트웨이 을(를) 자동으로 등록할 수도 있습니다.이 메서드는 OAuth 클라이언트에서 생성된 수명이 짧은 세션 토큰을 사용합니다.
정보 메모 자동 등록은 명령줄을 통해서만 지원됩니다.자동 게이트웨이 등록을 위한 REST API는 현재 제공되지 않습니다.
전제 조건
OAuth 클라이언트를 생성하고 관리할 수 있는 테넌트 관리자 권한이 있는 API 키입니다.
자동 등록으로 게이트웨이 등록
먼저 direct-access-agent 컨테이너에서 OAuth 클라이언트 ID와 어설션 키(수명이 짧은 토큰)를 생성하려면 Python 환경을 설정해야 합니다.다음 명령을 이 순서대로 각각 실행합니다:
docker exec -it --user root direct-access-agent-1 bash
apt-get update && apt-get install -y python3 python3-pip
apt install python3.11-venv
python3 -m venv .venv
source .venv/bin/activate
pip install cryptography pyjwt
python3 generate_gateway_assertion.py --tenant-url <tenant-url>
위 목록의 마지막 명령 의 경우, 대화형 프롬프트를 팔로우하고 제공될 때 client_id (OAuth 클라이언트 ID) 및 assertion 을(를) 복사하세요.지금은 이러한 세부 정보를 종이에 적어 두거나 임시 텍스트 파일에 저장해 두십시오—프로세스의 이후 단계에서 필요합니다.
client_id 및 assertion 을 기록해 두었다면 다음 명령을 사용하여 Python 환경을 정리하세요:
deactivate
OAuth 클라이언트의 동의 방식을 trusted로 설정합니다.
curl "https://<tenant-url> /api/v1/oauth-clients/<client-id> /connection-configs/me" -X PATCH -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer <api-key> ' -d '[{"op":"replace","path":"/consentMethod","value":"trusted"}]'
액세스 토큰을 요청합니다.또한 게이트웨이에서 사용하는 봇 사용자 계정의 자동 생성을 트리거합니다.
curl "https://<tenant-url> /oauth/token" -X POST -H 'content-type: application/x-www-form-urlencoded' -d "grant_type=client_credentials" -d "client_id=<client-id> " -d "client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer" -d "client_assertion=<assertion> " -d "scope=admin.direct-access-gateways:register_gateway admin.direct-access-gateways:delete_gateway"
정보 메모
어설션이 만료된 경우 가상 환경에서 스크립트를 다시 실행하십시오.
자동 생성된 봇 사용자를 조회합니다.
curl "https://<tenant-url> /api/v1/users" -H 'accept: application/json' -H 'authorization: Bearer <API-key> '
my-bot-client 의 ID를 복사합니다.
"DAG Registration" 역할을 생성합니다.
curl "https://<tenant-url> /api/v1/roles" -X POST -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer <API-key> ' -d '{"name":"DAG Registration","description":"Role for registering a gateway","assignedScopes":["admin.direct-access-gateways:register_gateway", "admin.direct-access-gateways:delete_gateway"]}'
봇 사용자에게 테넌트 수준 역할을 할당합니다.
curl "https://<tenant-url> /api/v1/users/<bot-user-ID> " -X PATCH -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer <API-key> ' -d ' [ { "op": "replace", "path": "/assignedRoles", "value": [ { "name": "DAG Registration" } ] } ]'
직접 액세스 게이트웨이 공간을 가져옵니다.
curl "https://<tenant-url> /api/v1/spaces" -H 'authorization: Bearer <API-key> '
Direct Access Gateway 공간 ID를 복사합니다.
봇 사용자를 편집 가능 권한으로 스페이스에 추가합니다.
curl "https://<tenant-url> /api/v1/spaces/<DAG-space-ID> /assignments" -X POST -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer <API-key> ' -d '{"assigneeId": "<bot-user-ID> ","roles": ["consumer","dataconsumer","producer"], "type": "user"}'
기존 어설션이 만료된 경우 새 어설션을 생성하십시오.다음 명령을 실행합니다.
python3 generate_gateway_assertion.py --tenant-url <tenant-url>
명령 프롬프트에서 필요한 단계를 따르십시오.OAuth 클라이언트가 이미 생성되었으므로, 이 API 호출을 사용하여 JWK를 업데이트해야 합니다:
curl "https://<tenant-url> /api/v1/oauth-clients/<client-ID> " -X PATCH -H 'accept: application/json' -H 'content-type: application/json' -H 'authorization: Bearer <API-key> ' -d '[{"op":"replace","path":"/publicKeys/0/y","value":"<Y-value-from-JWK> "},{"op":"replace","path":"/publicKeys/0/x","value":"<X-value-from-JWK> "},{"op":"remove","path":"/publicKeys/0/use"},{"op":"replace","path":"/publicKeys/0/kid","value":"<kid-value-from-JWK> "}]'
게이트웨이 등록:
dotnet ConnectorAgent.dll qcs register_gateway --tenant_url <tenant-url> --gateway_name <DAG-name> --gateway_description <DAG-description> --space_name <space-name> --client-id <client-ID> --assertion <assertion>
자동으로 등록된 게이트웨이 제거
위에서 설명한 자동 세션 토큰 기반 방법을 사용하여 등록된 게이트웨이의 등록을 해제하려면 다음 단계를 수행하십시오.이러한 단계를 수행하면 이를 위해 생성된 OAuth 클라이언트, 봇 사용자 및 역할도 제거됩니다.
위의 섹션 에 설명된 대로 어설션을 생성합니다.
게이트웨이 삭제:
dotnet ConnectorAgent.dll qcs delete_gateway --tenant_url <tenant-url> --gateway_name <gateway-name> --client-id <client-ID> --assertion <assertion>
게이트웨이용으로 생성된 봇 사용자 계정을 조회합니다.
curl "https://<tenant-url> /api/v1/users" -H 'accept: application/json' -H 'authorization: Bearer <api-key> '
봇 ID를 복사합니다.
이 봇 사용자 계정을 삭제합니다.
curl -X DELETE "https://<tenant-url> /api/v1/users/<bot-user-ID> " -H "Authorization: Bearer <api-key> "
게이트웨이용으로 생성된 “DAG Registration” 역할을 조회하십시오.
curl "https://<tenant-url> /api/v1/roles?limit=1&filter=(name%20eq%20%22DAG%20Registration%22)" -H "Authorization: Bearer <api-key> "
역할 ID를 복사합니다.
이 역할을 삭제합니다.
curl -X DELETE "https://<tenant-url> /api/v1/roles/<role-ID> -H "Authorization: Bearer <api-key> "
OAuth 클라이언트를 삭제합니다.
curl -X DELETE https://<tenant-url> /api/v1/oauth-clients/<OAuth-client-ID> -H "qlik-confirm-delete: <OAuth-client-ID> " -H "Authorization: Bearer <api-key>
5단계: Direct Access gateway 서버에서 Qlik 데이터 게이트웨이 - 직접 액세스 서비스 시작
Qlik 데이터 게이트웨이 - 직접 액세스 서비스를 시작하려면 dcaas-dg 및 direct-access-agent 컨테이너를 시작하십시오.
6단계: 데이터 소스에 연결 추가
6단계: 데이터 소스에 연결 추가 을(를) 참조하십시오.
환경 설정
이 섹션에는 게이트웨이를 통해 데이터 소스를 올바르게 연결하기 위해 구성해야 할 수 있는 docker-compose.qlik-data-gateway-direct-access.yml 파일의 특정 환경 변수가 나열되어 있습니다.
ALLOW_SOURCES : 쉼표로 구분된 호스트 이름 및 IP 허용 목록입니다.게이트웨이 에이전트가 자체 서버 또는 로컬이나 프라이빗 네트워크의 다른 호스트(예: localhost 의 데이터베이스, Docker 서비스 이름 또는 프라이빗 IP 호스트)에 연결해야 하는 경우, 해당 주소를 ALLOW_SOURCES 에 추가합니다 — 그렇지 않으면 연결 시도가 거부됩니다.
지원되는 데이터 소스