CRD sta per Custom Resource Definition. In Kubernetes, una CRD estende l'API aggiungendo un nuovo tipo di risorsa che si comporta come un oggetto integrato, ad esempio Pod o Service. Gli operator e i controller usano le CRD per modellare lo stato specifico dell'applicazione e poi osservano e riconciliano automaticamente questi oggetti.
Le CRD sono importanti per la sicurezza perché aumentano la superficie API a cui un controller può accedere. Se a un controller vengono concessi permessi RBAC troppo ampi sulle CRD o sui workload che esse gestiscono, potrebbe leggere dati sensibili, creare nuovi Pod o influenzare il comportamento del cluster oltre il suo compito previsto. I difensori dovrebbero limitare l'accesso in modo rigoroso, separare le responsabilità per namespace o ruolo e verificare se un controller abbia davvero bisogno di permessi di lettura, scrittura o watch per ogni tipo di risorsa.


