> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/deployment/ko/self-hosted/enterprise/secure-gateway.md).

# Secure Gateway

Secure Gateway는 Roboflow Deployment 서버가 필요한 경로를 회사의 DMZ로 프록시하고, 모델 가중치와 컨테이너 이미지를 로컬에 캐시합니다.

Secure Gateway는 Roboflow API와 모델 가중치용 프록시로, Roboflow Inference Server를 인터넷에서 방화벽으로 차단할 때 사용합니다. 이는 다음의 후속입니다 [라이선스 서버](/deployment/ko/self-hosted/enterprise/license-server.md) 그리고 모델 가중치와 컨테이너 이미지의 로컬 캐싱을 추가하여, 여러 추론 서버가 하나의 통제된 외부 통신 지점을 공유합니다.

{% hint style="info" %}
이 페이지는 핵심 사항을 다룹니다. 전체 구성 및 운영 참고 자료는 다음을 참조하세요. [보안 게이트웨이 매뉴얼](https://secure-gateway.roboflow.com/manual/).
{% endhint %}

## 사전 요구 사항

* Docker Engine 20.10+, 또는 Kubernetes v1.24+
* api.roboflow\.com 및 repo.roboflow\.com에 액세스할 수 있는 호스트
* 포트 80 사용 가능, 게이트웨이 앞의 로드 밸런서 또는 컨테이너 내부에서 TLS 종료
* 4GB 이상의 메모리
* 캐시용 S3 버킷 또는 50GB 이상의 로컬 디스크

{% hint style="info" %}
Red Hat Enterprise Linux에 배포하시나요? [RHEL의 Podman에서 Secure Gateway](/deployment/ko/self-hosted/enterprise/secure-gateway-podman.md) 는 Docker나 Kubernetes가 없는 RHEL 호스트를 다루며, [MicroShift의 보안 게이트웨이](/deployment/ko/self-hosted/enterprise/secure-gateway-microshift.md) 는 MicroShift를 실행하는 Red Hat Device Edge 호스트를 다룹니다. 둘 다 동일한 에어갭 번들 모델을 사용하는 전용 설치 관리자를 사용합니다.
{% endhint %}

## Secure Gateway 사용

다음에 액세스할 수 있는 머신에서 `https://api.roboflow.com` 와 `https://repo.roboflow.com`, Secure Gateway 컨테이너를 가져오세요:

```
docker pull repo.roboflow.com/roboflow-edge/secure-gateway:latest
```

다음 `latest` 'latest' 태그는 가장 최근 릴리스를 추적합니다. 프로덕션, 특히 에어갭 배포에서는 대신 특정 버전을 고정하여 업그레이드가 의도적이고 재현 가능하도록 하세요. 예를 들면 `repo.roboflow.com/roboflow-edge/secure-gateway:0.2.0`.

로컬 디스크 캐시와 로컬 테스트용 루프백 전용 HTTP 리스너 또는 동일 호스트의 TLS 프록시와 함께 실행합니다:

```
docker run -d --name secure-gateway -p 127.0.0.1:80:80 --restart unless-stopped \
    -v gateway-cache:/var/cache/secure-gateway \
    repo.roboflow.com/roboflow-edge/secure-gateway:latest
```

실행 중인지 확인합니다:

```
curl http://localhost/health
```

로컬 디스크 대신 S3에 캐시하려면 다음을 설정하세요: `CACHE_S3_BUCKET` 와 `CACHE_S3_REGION` 환경 변수를 설정합니다. 인스턴스 또는 IAM 역할을 사용하려면 자격 증명은 설정하지 않은 상태로 두세요.

## TLS 인증서

기본적으로 게이트웨이는 일반 HTTP로 수신 대기하며, 그 앞의 로드 밸런서에서 TLS를 종료합니다. 게이트웨이 자체에서 HTTPS를 제공하려면 인증서와 개인 키를 컨테이너에 마운트하고 둘 다 설정하세요 `TLS_CERT_FILE` 와 `TLS_KEY_FILE`. 그러면 게이트웨이는 구성된 포트에서 HTTPS를 제공합니다:

```
docker run -d --name secure-gateway -p 443:443 --restart unless-stopped \
    -e PORT=443 \
    -e TLS_CERT_FILE=/etc/ssl/certs/gateway.crt \
    -e TLS_KEY_FILE=/etc/ssl/private/gateway.key \
    -v /path/to/certs:/etc/ssl:ro \
    -v gateway-cache:/var/cache/secure-gateway \
    repo.roboflow.com/roboflow-edge/secure-gateway:latest
```

둘 다 `TLS_CERT_FILE` 와 `TLS_KEY_FILE` inbound HTTPS를 활성화하는 데 필요하며, 각각 PEM 인코딩된 파일을 가리킵니다.

게이트웨이의 아웃바운드 트래픽이 Zscaler와 같은 기업용 TLS 검사 프록시를 통과할 때는 다음을 설정하세요 `TLS_CA_BUNDLE` 을(를) 해당 프록시의 CA 번들로 설정하여 게이트웨이가 api.roboflow\.com 및 repo.roboflow\.com으로의 연결을 신뢰하도록 하세요:

```
-e TLS_CA_BUNDLE=/etc/ssl/certs/corporate-ca.pem
```

## Inference Server 연결

각 Inference Server를 명시적인 `SECURE_GATEWAY` URL과 함께 게이트웨이의 HTTPS 리스너 또는 TLS 프록시로 지정하세요. 서버는 Roboflow API 호출과 모델 다운로드를 해당 주소를 통해 라우팅합니다.

```bash
sudo docker run --rm -p 127.0.0.1:9001:9001 \
    --env SECURE_GATEWAY=https://gateway.example.com \
    roboflow/roboflow-inference-server-cpu:latest
```

443과 다른 경우에는 포트를 포함하세요. 예를 들어 `https://gateway.example.com:8443`. 인증서는 URL의 호스트 이름 또는 IP를 포함해야 하며, Inference Server 컨테이너는 이를 발급한 CA를 신뢰해야 합니다. 게이트웨이의 아웃바운드를 구성하는 것은 `TLS_CA_BUNDLE` 클라이언트에 신뢰를 설치하지 않습니다.

다음을 사용하세요 [Podman이 있는 RHEL](/deployment/ko/self-hosted/enterprise/secure-gateway-podman.md) 또는 [MicroShift](/deployment/ko/self-hosted/enterprise/secure-gateway-microshift.md) 해당 배포를 사용할 때의 클라이언트 설치 지침.

### 레거시 주소 및 로컬 터널

버전 전반에 걸쳐 명시적인 HTTPS 스킴을 사용하세요. 보류 중인 런타임 강화 빌드에서는 bare 주소가 HTTP에서 HTTPS로 전환되며, 평문 원격 또는 LAN 게이트웨이는 거부됩니다. 다음을 참조하세요 [마이그레이션 범위](/deployment/ko/self-hosted/inference-server/configuration/security-migration.md#gateway-transport).

이 빌드는 loopback IP 또는 `localhost`, 예를 들어 `SECURE_GATEWAY=http://127.0.0.1:8080`. 터널은 Inference Server의 자체 네트워크 네임스페이스에서 접근 가능해야 합니다. 브리지 컨테이너의 loopback은 호스트의 loopback이 아닙니다.

게이트웨이만 api.roboflow\.com 및 repo.roboflow\.com에 대한 아웃바운드 액세스가 필요합니다. Inference Server가 시작된 후 모델을 실행하고 요청이 게이트웨이의 액세스 로그에 나타나는지 확인하세요.

레거시 `LICENSE_SERVER` 변수는 여전히 다음의 별칭으로 허용됩니다 `SECURE_GATEWAY`, 동일한 전송 규칙이 적용됩니다. 다음을 선호하세요 `SECURE_GATEWAY` 새 구성에는.

## 캐싱

Secure Gateway는 내용이 얼마나 자주 변경되는지에 따라 계층화하여 각 응답을 첫 다운로드 시 캐시합니다. 콘텐츠 주소 지정 컨테이너 블롭과 모델 가중치는 가장 오래 유지되고, 변경 가능한 API 응답은 더 짧은 기간 유지됩니다. 이후 어떤 Inference Server의 요청이든 캐시에서 제공되며, 이는 여러 서버 전반의 대역폭 사용량과 콜드 스타트를 줄여줍니다.
