docs(aula-10): explicar SERVE_DIRECT e segurança de signed URLs

This commit is contained in:
ArgoCD Setup
2026-03-14 03:01:25 -03:00
parent 2441bf4541
commit 46ec271788

View File

@@ -375,7 +375,37 @@ gitea:
4. `helm upgrade` pra aplicar
Com `SERVE_DIRECT: true`, o Gitea redireciona `docker pull` direto pro S3 — menos carga na CPU, downloads mais rápidos.
### SERVE_DIRECT: como funciona (e por que é seguro)
Com `SERVE_DIRECT: true`, o Gitea **não** faz proxy dos downloads. Em vez disso, gera **URLs pré-assinadas** com expiração:
```
docker pull gitea.kube.quest/org/app-privada:v1
├─ 1. Client autentica no Gitea (token/password)
├─ 2. Gitea verifica permissão (repo privado? user tem acesso?)
│ → Se não tem acesso: 403 Forbidden. Para aqui.
├─ 3. Gitea gera URL S3 pré-assinada (expira em ~10 minutos)
│ https://s3.example.com/gitea/packages/sha256:abc...
│ ?X-Amz-Signature=xxx&X-Amz-Expires=600
└─ 4. Client baixa direto do S3 via URL assinada
→ URL expira, não pode ser reutilizada
→ Repo privado permanece privado
```
Sem `SERVE_DIRECT` (default):
```
Client → Gitea (proxy) → S3 → Gitea (proxy) → Client
^^^^^^^^^^^^ ^^^^^^^^^^^^
CPU + RAM + bandwidth passam pelo Gitea
```
**Repos privados continuam privados** — a URL assinada só é gerada após autenticação e verificação de permissão. É o mesmo mecanismo usado por AWS S3, GitHub Packages e Google Cloud Storage.
Único cenário onde **não** usar `SERVE_DIRECT`: se o bucket S3 está em rede privada e os clients não têm acesso direto à rede do S3.
### Ou só pra packages (container images)