GCP - Storage Enum
Stockage
Le stockage de la plateforme Google Cloud Platform (GCP) est une solution de stockage basée sur le cloud qui offre un stockage d'objets hautement durable et disponible pour des données non structurées. Il propose diverses classes de stockage basées sur les performances, la disponibilité et le coût, notamment Standard, Nearline, Coldline et Archive. Le stockage GCP offre également des fonctionnalités avancées telles que des politiques de cycle de vie, la versioning et le contrôle d'accès pour gérer et sécuriser efficacement les données.
Le bucket peut être stocké dans une région, dans 2 régions ou multi-région (par défaut).
Types de stockage
Stockage standard : Il s'agit de l'option de stockage par défaut qui offre un accès haute performance et faible latence aux données fréquemment consultées. Il convient à un large éventail de cas d'utilisation, notamment la diffusion de contenu de site Web, le streaming multimédia et l'hébergement de pipelines d'analyse de données.
Stockage Nearline : Cette classe de stockage offre des coûts de stockage inférieurs et des coûts d'accès légèrement plus élevés que le stockage standard. Il est optimisé pour les données consultées de manière peu fréquente, avec une durée de stockage minimale de 30 jours. Il est idéal pour les sauvegardes et les archives.
Stockage Coldline : Cette classe de stockage est optimisée pour le stockage à long terme de données consultées de manière peu fréquente, avec une durée de stockage minimale de 90 jours. Il offre des coûts de stockage inférieurs au stockage Nearline, mais avec des coûts d'accès plus élevés.
Stockage Archive : Cette classe de stockage est conçue pour les données froides consultées très rarement, avec une durée de stockage minimale de 365 jours. Il offre les coûts de stockage les plus bas de toutes les options de stockage GCP mais avec les coûts d'accès les plus élevés. Il convient à la conservation à long terme de données devant être stockées pour des raisons de conformité ou réglementaires.
Autoclass : Si vous ne savez pas combien vous allez accéder aux données, vous pouvez sélectionner Autoclass et GCP changera automatiquement le type de stockage pour minimiser les coûts.
Contrôle d'accès
Par défaut, il est recommandé de contrôler l'accès via IAM, mais il est également possible d'activer l'utilisation des ACL. Si vous choisissez d'utiliser uniquement IAM (par défaut) et que 90 jours se sont écoulés, vous ne pourrez pas activer les ACL pour le bucket.
Versioning
Il est possible d'activer la versioning, cela permettra de sauvegarder les anciennes versions du fichier à l'intérieur du bucket. Il est possible de configurer le nombre de versions que vous souhaitez conserver et même pendant combien de temps vous souhaitez que les versions non actuelles (anciennes versions) restent en vie. Il est recommandé de 7 jours pour le type Standard.
Les métadonnées d'une version non actuelle sont conservées. De plus, les ACL des versions non actuelles sont également conservées, donc les anciennes versions peuvent avoir des ACL différentes de la version actuelle.
En savoir plus dans la documentation.
Politique de rétention
Indiquez pendant combien de temps vous souhaitez interdire la suppression des objets à l'intérieur du bucket (très utile pour la conformité au moins). Seule l'une des versioning ou de la politique de rétention peut être activée à la fois.
Chiffrement
Par défaut, les objets sont chiffrés à l'aide de clés gérées par Google, mais vous pouvez également utiliser une clé de KMS.
Accès public
Il est possible de donner aux utilisateurs externes (connectés à GCP ou non) accès au contenu des buckets. Par défaut, lorsqu'un bucket est créé, l'option d'exposer publiquement le bucket sera désactivée, mais avec les autorisations suffisantes, cela peut être modifié.
Le format d'une URL pour accéder à un bucket est https://storage.googleapis.com/<nom-du-bucket>
ou https://<nom-du-bucket>.storage.googleapis.com
(les deux sont valides).
Clés HMAC
Une clé HMAC est un type de certificat et peut être associée à un compte de service ou un compte utilisateur dans Cloud Storage. Vous utilisez une clé HMAC pour créer des signatures qui sont ensuite incluses dans les demandes à Cloud Storage. Les signatures montrent qu'une demande donnée est autorisée par l'utilisateur ou le compte de service.
Les clés HMAC ont deux éléments principaux, un identifiant d'accès et un secret.
Identifiant d'accès : Une chaîne alphanumérique liée à un service spécifique ou un compte utilisateur. Lorsqu'elle est liée à un compte de service, la chaîne a une longueur de 61 caractères, et lorsqu'elle est liée à un compte utilisateur, la chaîne a une longueur de 24 caractères. Voici un exemple d'identifiant d'accès :
GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA
Secret : Une chaîne encodée en Base-64 de 40 caractères qui est liée à un identifiant d'accès spécifique. Un secret est une clé prépartagée que vous et Cloud Storage seul connaissez. Vous utilisez votre secret pour créer des signatures dans le cadre du processus d'authentification. Voici un exemple de secret :
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
Tant l'identifiant d'accès et le secret identifient de manière unique une clé HMAC, mais le secret est une information beaucoup plus sensible, car il est utilisé pour créer des signatures.
Énumération
Si vous obtenez une erreur de permission refusée lors de l'énumération des buckets, vous pouvez toujours avoir accès au contenu. Maintenant que vous connaissez la convention de nommage des buckets, vous pouvez générer une liste de noms possibles et essayer d'y accéder :
Avec les autorisations storage.objects.list
et storage.objects.get
, vous devriez pouvoir énumérer tous les dossiers et fichiers du bucket afin de les télécharger. Vous pouvez y parvenir avec ce script Python :
Élévation de privilèges
Sur la page suivante, vous pouvez vérifier comment abuser des autorisations de stockage pour élever les privilèges:
GCP - Storage PrivescÉnumération non authentifiée
GCP - Storage Unauthenticated EnumPost-exploitation
GCP - Storage Post ExploitationPersistance
GCP - Storage PersistenceLast updated