Disposition du stockage
Provisionnez trois buckets externes indépendants :
Les trois doivent exister avant le démarrage. L’adaptateur d’exécution ne
crée jamais de bucket. L’overlay utilise HTTPS, l’adressage S3 path-style, la
confiance CA privée vérifiée, les requêtes de chiffrement côté serveur
AES-256 et l’intégrité applicative SHA-256.
Option A : OBC externes gérés
Identifiez la StorageClass de bucket RGW approuvée par le client :k8s/overlays/openshift-odf-rgw/object-bucket-claims.example.yaml
vers le dépôt d’environnement client, remplacez l’espace réservé StorageClass
et appliquez-le séparément de CaseBender. Le cycle de vie des buckets reste
propriété de l’opérateur de stockage.
BUCKET_HOST, BUCKET_PORT, BUCKET_NAME et BUCKET_REGION, et que chaque
Secret fournit AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY. Si l’opérateur
OBC utilise d’autres clés, corrigez valueFrom ; ne copiez jamais les
identifiants dans un ConfigMap ou un fichier Kustomize.
Option B : RGW externe autonome
Utilisezk8s/overlays/openshift-odf-rgw/standalone-rgw-resources.example.yaml
comme exemple de mapping. Remplacez chaque point de terminaison .invalid et
chaque espace réservé de bucket dans l’overlay client. Utilisez le
contrôleur external-secret installé ou un autre injecteur de secrets approuvé.
Conservez les points de terminaison et les noms de buckets dans les
ConfigMaps, les identifiants dans les Secrets, et toutes les valeurs réelles
hors de ce dépôt.
Le conteneur d’init restreint lit ces ressources et écrit un
STORAGE_CONFIG_FILE strict vers un emptyDir en mémoire avec le mode
0400. Le web et le worker le montent en lecture seule.
CA privée
Créez un ConfigMap CA contenant uniquement la chaîne d’émission :--insecure ou une option de contournement de certificat.
Egress
La politique incluse autorise le web et le worker à atteindre le TCP 443 sur les pods étiquetésapp=rook-ceph-rgw dans openshift-storage. Vérifiez
l’espace de noms réel, les labels, le port et le comportement CNI.
Pour un RGW externe, copiez et adaptez
external-rgw-network-policy.example.yaml avec des CIDR stables approuvés,
ou routez via un proxy d’egress contrôlé par l’opérateur. Kubernetes
NetworkPolicy ne peut pas sélectionner de FQDN. Ne restaurez pas un egress
générique 0.0.0.0/0 ou ::/0.
Ajoutez des politiques distinctes de moindre privilège pour PostgreSQL,
Redis, l’identité, le scanner et les intégrations approuvées.
Prérequis du scanner
Les téléversements utilisateur de production exigent unclamd externe. Le
correctif worker fourni attend casebender-malware-scanner (host, port)
et casebender-malware-scanner-ca (ca.crt) et active TLS. Un scanner
dans le même pod peut à la place utiliser CLAMD_SOCKET_PATH. Si le scanner
est indisponible, les objets restent en quarantaine et les tentatives
peuvent finalement aboutir en lettre morte ; les téléchargements n’échouent
pas en mode ouvert.
Rendu et validation
apps/docs/en/deployment/odf-ceph-rgw-validation-evidence.md. Un rendu, un
test d’émulateur ou une transcription non signée n’est pas une certification
en direct.
Rotation des identifiants
- Effectuez la rotation via la procédure ODF/Ceph supportée ; ne modifiez pas à la main un Secret OBC appartenant à l’opérateur.
- Autorisez un chevauchement borné pendant que le Secret généré ou l’ExternalSecret se rafraîchit.
- Redémarrez le web et le worker afin que le conteneur d’init régénère le fichier monté.
- Exigez que
/api/health/readyet la validation de contrat en direct réussissent. - Révoquez l’ancien identifiant et vérifiez les métriques/journaux d’authentification assainis.
Rotation de CA
- Publiez un lot CA temporaire contenant les CA d’émission ancienne et nouvelle.
- Redémarrez et validez le web et le worker.
- Effectuez la rotation du certificat de service RGW.
- Publiez le lot CA uniquement nouveau, redémarrez et validez à nouveau.
- Enregistrez les versions de ressource ConfigMap, les hachages SHA-256 de CA, les versions ODF/Ceph exactes et les preuves — jamais les valeurs d’identifiants.
k8s/overlays/openshift-odf-rgw/README.md pour les détails de l’overlay.