Keyspaces est la base de données compatible Cassandra d'AWS. On l'atteint soit avec des identifiants propres au service (un nom d'utilisateur et un mot de passe générés liés à un utilisateur IAM), soit avec la signature SigV4, et un principal détenant cassandra:Select lit toute table que la stratégie autorise. Les autorisations trop larges et les identifiants propres au service récupérables sont la voie d'entrée.
Se connecter et lire#
aws keyspaces list-keyspaces ; aws keyspaces list-tables --keyspace-name <ks>
# cqlsh with service-specific credentials over TLS (port 9142)
cqlsh cassandra.<region>.amazonaws.com 9142 --ssl \
-u <svc-user> -p <svc-pass>
> SELECT * FROM ks.table LIMIT 100;
Notes d'exploitation#
- Les identifiants propres au service sont générés par utilisateur IAM et, une fois récupérés, donnent un accès CQL direct indépendant de toute vérification IAM ultérieure.
- Un plugin SigV4 pour le pilote Cassandra permet à un principal détenteur de se connecter sans aucun mot de passe stocké.
- Un
cassandra:Selectlarge au niveau du service lit toutes les tables des keyspaces du compte.
Outils#
- AWS CLI (
keyspaces list-keyspaces,list-tables). - cqlsh avec le plugin d'authentification SigV4 : accès CQL natif.