Security: ACS user access to all databases
- Langage dominant
- Java
- Étoiles
- 3.1k
- Forks
- 1.4k
- Merge moyen
- 6 j 19 h
- PR mergées (30 j)
- 32
Description
##### ISSUE TYPE
* Bug Report
* Improvement Request
* Enhancement Request
##### COMPONENT NAME
~~~
Core, MySQL
~~~
##### CLOUDSTACK VERSION
~~~
4.19.0.0-snapshot.20231113
~~~
##### CONFIGURATION
##### OS / ENVIRONMENT
Ubuntu 22.04
##### SUMMARY
ACS requires access to all MySQL databases, which creates a huge security hole for a shared MySQL instance.
Trying to limit the scope of ACS access yields in the access denied error (see below).
##### STEPS TO REPRODUCE
~~~
> `sudo cloudstack-setup-databases cloud:cloud@mysql --deploy-as=root`
/usr/share/cloudstack-management/setup/create-database.sql
lines: 64-65
GRANT process ON *.* TO cloud@`localhost`;
GRANT process ON *.* TO cloud@`%`;
// This works with the full access
GRANT ALL ON *.* TO 'root'@'hyp0' WITH GRANT OPTION
// This yields in an error:
- GRANT ALL ON mysql.* TO 'root'@'hyp0' WITH GRANT OPTION
- GRANT ALL ON billing.* TO 'root'@'hyp0' WITH GRANT OPTION
- GRANT ALL ON cloud.* TO 'root'@'hyp0' WITH GRANT OPTION
- GRANT ALL ON cloud_usage.* TO 'root'@'hyp0' WITH GRANT OPTION
~~~
##### EXPECTED RESULTS
~~~
ACS configs own databases only without an error
~~~
##### ACTUAL RESULTS
~~~
ACS wants a full access and gives an error when a limited db access is provided
We apologize for below error:
table:
/usr/share/cloudstack-management/setup/create-database.sql
Error:
b"ERROR 1045 (28000) at line 64: Access denied for user 'root'@'hyp0' (using password: NO)\n"
~~~
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par /usr/share/cloudstack-management/setup/create-database.sql, en particulier les lignes 64-65, et reproduisez la commande de configuration avec les privilèges MySQL limités indiqués. Déterminez de quelles bases de données et de quels privilèges ACS a besoin ; la tâche est terminée lorsque la configuration de CloudStack réussit avec uniquement la portée de base de données requise et sans accès aux bases de données sans rapport.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- mysql, sql
- Domaine
- databases, security
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100