Layout de armazenamento
Provisione três buckets externos independentes:
Os três devem existir antes da inicialização. O adaptador de runtime nunca cria um bucket.
O overlay usa HTTPS, endereçamento S3 path-style, confiança verificada de CA privada,
solicitações de criptografia no servidor AES-256 e integridade SHA-256 da aplicação.
Opção A: OBCs externos gerenciados
Identifique o StorageClass de bucket RGW aprovado pelo cliente:k8s/overlays/openshift-odf-rgw/object-bucket-claims.example.yaml
para o repositório do ambiente do cliente, substitua o placeholder do StorageClass
e aplique-o separadamente do CaseBender. O ciclo de vida do bucket permanece de propriedade do
operador de armazenamento.
BUCKET_HOST, BUCKET_PORT, BUCKET_NAME e BUCKET_REGION, e cada
Secret fornece AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY. Se o operador
OBC usar outras chaves, faça patch de valueFrom; nunca copie credenciais para um
ConfigMap ou arquivo Kustomize.
Opção B: RGW externo independente
Usek8s/overlays/openshift-odf-rgw/standalone-rgw-resources.example.yaml
como exemplo de mapeamento. Substitua todos os placeholders de endpoint .invalid e de bucket
no overlay do cliente. Use o controlador de external-secret instalado ou
outro injetor de segredos aprovado. Mantenha endpoints e nomes de bucket em
ConfigMaps, credenciais em Secrets e todos os valores reais fora deste repositório.
O init container restrito lê esses recursos e grava um
STORAGE_CONFIG_FILE restrito em um emptyDir backed por memória com modo 0400. Web e
worker o montam somente leitura.
CA privada
Crie um ConfigMap de CA contendo apenas a cadeia emissora:--insecure ou uma
opção de bypass de certificado.
Egresso
A política incluída permite que web e worker alcancem TCP 443 em pods rotuladosapp=rook-ceph-rgw em openshift-storage. Verifique o namespace real, os rótulos,
a porta e o comportamento do CNI.
Para RGW externo, copie e adapte
external-rgw-network-policy.example.yaml com CIDRs aprovados e estáveis, ou roteie
por um proxy de egresso controlado pelo operador. O NetworkPolicy do Kubernetes não pode
selecionar FQDNs. Não restaure egresso curinga 0.0.0.0/0 ou ::/0.
Adicione políticas separadas de menor privilégio para PostgreSQL, Redis, identidade, scanner
e integrações aprovadas.
Pré-requisito do scanner
Uploads de usuário em produção exigemclamd externo. O patch do worker fornecido
espera casebender-malware-scanner (host, port) e
casebender-malware-scanner-ca (ca.crt) e habilita TLS. Um scanner no mesmo pod
pode, em vez disso, usar CLAMD_SOCKET_PATH. Se o scanner estiver indisponível, os objetos
permanecem em quarentena e as retentativas podem eventualmente ir para dead-letter; os downloads não
falham em aberto.
Renderizar e validar
apps/docs/en/deployment/odf-ceph-rgw-validation-evidence.md. Uma renderização,
teste de emulador ou transcrição não assinada não é certificação live.
Rotação de credenciais
- Rotacione pelo procedimento suportado de ODF/Ceph; não edite manualmente um Secret de OBC de propriedade do operador.
- Permita uma sobreposição limitada enquanto o Secret gerado ou o ExternalSecret é atualizado.
- Reinicie web e worker para que o init container regenere o arquivo montado.
- Exija que
/api/health/readye a validação de contrato live sejam aprovados. - Revogue a credencial antiga e verifique métricas/logs de autenticação sanitizados.
Rotação de CA
- Publique um bundle temporário de CA contendo as CAs emissoras antiga e nova.
- Reinicie e valide web e worker.
- Rotacione o certificado de serviço do RGW.
- Publique o bundle de CA somente com a nova, reinicie e valide novamente.
- Registre as versões de recurso do ConfigMap, hashes SHA-256 da CA, versões exatas de ODF/Ceph e evidência — nunca valores de credenciais.
k8s/overlays/openshift-odf-rgw/README.md no repositório para detalhes do overlay.