Rapports sur l'inventaire

Les rapports d'inventaire vous aident à gérer le stockage d'objets à grande échelle. Il s'agit d'une alternative planifiée et plus rapide à l'opération d'API Objects: list. Utilisez les rapports sur l'inventaire si vous souhaitez valider la migration de grands buckets sans impact sur les performances ou vérifier l'intégrité des objets dans un seul bucket.

Les rapports d'inventaire contiennent des informations de métadonnées sur vos objets, telles que la classe de stockage, l'ETag et le type de contenu. Ces informations vous aident à analyser vos coûts de stockage, à vérifier et valider vos objets, ainsi qu'à assurer la sécurité et la conformité des données. Vous pouvez exporter des rapports d'inventaire sous forme de fichiers CSV (valeurs séparées par une virgule) ou Apache Parquet pour les analyser plus en détail à l'aide d'outils tels que BigQuery.

Cette page présente les rapports d'inventaire. Pour savoir comment utiliser les rapports d'inventaire, consultez Créer et gérer des rapports d'inventaire.

Présentation des rapports d'inventaire

Les rapports d'inventaire contiennent une liste d'objets et de métadonnées associées pour un bucket donné, également appelé bucket source. Pour générer des rapports d'inventaire, vous devez d'abord créer une configuration de rapport d'inventaire qui définit la fréquence de génération des rapports, les champs de métadonnées que vous souhaitez inclure dans les rapports, et un bucket permettant de générer et stocker les rapports, également appelé bucket de destination.

Lorsque vous créez une configuration de rapport d'inventaire, un identifiant unique universel (UUID) lui est automatiquement attribué. Ce champ n'est pas modifiable. Toutefois, vous pouvez modifier les champs suivants d'une configuration de rapport d'inventaire :

  • Nom à afficher de la configuration de rapport d'inventaire
  • Champs de métadonnées d'objets inclus dans les rapports d'inventaire
  • Bucket de destination dans lequel les rapports d'inventaire sont stockés
  • Planification qui détermine la fréquence à laquelle les rapports d'inventaire sont générés
  • Format de fichier dans lequel les rapports d'inventaire sont générés (CSV ou Apache Parquet)

Lorsque vous supprimez une configuration de rapport d'inventaire, les nouveaux rapports d'inventaire ne sont plus générés pour la configuration, mais les rapports d'inventaire existants demeurent.

Quand utiliser les rapports sur l'inventaire ?

Les rapports d'inventaire sont conçus pour une analyse rapide des différents buckets. Vous pouvez les utiliser pour effectuer les opérations suivantes :

  • Lister tous les objets d'un bucket

  • Valider la réussite des transferts de données

  • Générer des rapports d'audit pour un bucket spécifique

Quand ne pas utiliser les rapports sur l'inventaire

Il peut être difficile de compiler et d'analyser manuellement les rapports sur l'inventaire provenant de nombreux buckets et projets, en particulier pour les analyses à grande échelle. Pour les cas d'utilisation tels que la visibilité à l'échelle de l'organisation, l'analyse de la sécurité ou la gestion des coûts, vous pouvez utiliser les ensembles de données Storage Insights. Les ensembles de données Storage Insights vous permettent de configurer un champ d'application personnalisé au niveau du bucket, du dossier, du projet ou de l'organisation. Les ensembles de données Storage Insights fournissent également des insights, comme des métadonnées personnalisées et des informations sur la suppression réversible.

Pour les ensembles de données Storage Insights, les données sont actualisées quotidiennement. Vous pouvez les analyser à l'aide de SQL dans BigQuery ou de questions en langage naturel avec Gemini.

Utilisez les ensembles de données Storage Insights si vos objectifs sont les suivants :

  • Découverte de données interorganisationnelle
  • Analyse pour l'optimisation des coûts et la gestion du cycle de vie
  • Audit de la gouvernance et de la sécurité
  • Analyse de séries temporelles pour identifier les tendances

Les ensembles de données Storage Insights sont une fonctionnalité exclusive disponible uniquement avec l'abonnement Storage Intelligence.

Buckets source et de destination

Le bucket source contient les objets pour lesquels vous souhaitez générer des rapports d'inventaire. Il contient également la configuration de rapport d'inventaire. Un bucket source peut contenir jusqu'à 100 configurations de rapport d'inventaire.

Le bucket de destination contient les rapports d'inventaire générés. Le bucket de destination doit répondre aux exigences suivantes :

  • Il doit se trouver dans le même emplacement que le bucket source.
  • Il doit se trouver dans le même projet que le bucket source.
  • Il peut être identique au bucket source.

Lorsque vous créez une configuration de rapport d'inventaire pour la première fois, un agent de service est automatiquement créé en votre nom. Pour créer des configurations de rapport d'inventaire et écrire des rapports d'inventaire dans le bucket de destination, vous et votre agent de service devez disposer des autorisations IAM requises. Consultez les autorisations requises pour vous-même et pour votre agent de service.

Les rapports d'inventaire utilisent les noms des buckets sources et de destination pour déterminer les buckets à utiliser lors de l'exécution de tâches. Si vous supprimez un bucket source ou de destination, puis créez un bucket portant le même nom, les rapports d'inventaire exécutent les jobs en utilisant le nouveau bucket.

Champs de métadonnées d'objet

Les champs de métadonnées suivants peuvent être inclus dans un rapport d'inventaire. Les champs de métadonnées marqués comme "obligatoires" doivent être inclus dans le rapport d'inventaire.

Champ de métadonnées Description Remarques
projet ID du projet où réside le bucket source. Requis
bucket Nom du bucket source. Requis
name Nom de l'objet. Requis
location Emplacement du bucket source. Facultatif
size Taille de l'objet. Facultatif
timeCreated Heure de création de l'objet au format RFC 3339. Facultatif
timeDeleted Heure de suppression de l'objet au format RFC 3339. Renvoyé si et seulement si cette version de l'objet n'est plus une version active, mais reste dans le bucket en tant que version archivée. Facultatif
mise(s) à jour Heure de modification des métadonnées de l'objet au format RFC 3339. Facultatif
storageClass Classe de stockage de l'objet. Facultatif
etag Tag d'entité HTTP 1.1 pour l'objet. Facultatif
retentionExpirationTime Heure la plus ancienne de suppression de l'objet, qui dépend de la configuration de conservation définie pour l'objet et de toute règle de conservation définie pour le bucket le contenant. La valeur de retentionExpirationTime est indiquée au format RFC 3339. Facultatif
crc32c Somme de contrôle CRC32C, comme décrit dans la RFC 4960 Annexe B, encodée en base64 dans l'ordre d'octet big-endian. Pour en savoir plus sur la somme de contrôle CRC32C, consultez Métadonnées des objets. Facultatif
md5Hash Hachage MD5 des données, encodé en base64. Ce champ n'est pas présent pour les objets composites. Pour en savoir plus sur le hachage MD5, consultez Métadonnées des objets. Facultatif
generation Contenu de la génération de cet objet. Utilisé pour la gestion des versions d'objets. Facultatif
metageneration Version des métadonnées de cet objet à cette génération. Utilisé pour les conditions préalables et pour la détection des modifications des métadonnées. Un numéro de métagénération n'a de sens que dans le contexte d'une génération particulière d'un objet particulier. Facultatif
contentType Content-Type des données d'objet. Si un objet est stocké sans Content-Type, il est diffusé en tant qu'application/octet-stream. Facultatif
contentEncoding Content-Encoding des données d'objet. Facultatif
timeStorageClassUpdated Date et heure de la dernière modification de la classe de stockage de l'objet. Une fois l'objet créé, il est défini sur timeCreated. Facultatif

Pour en savoir plus sur les champs de métadonnées d'objets, consultez la page Métadonnées d'bjets.

Segments de rapport d'inventaire

Lorsqu'un rapport d'inventaire contient plus de 1 000 000 d'objets, un ou plusieurs objets segment sont générés pour composer le rapport d'inventaire. Lorsque tous les segments d'un rapport d'inventaire ont été générés, un fichier manifeste est généré dans le même bucket de destination que les segments.

Fichier manifeste du rapport d'inventaire

La présence d'un fichier manifeste indique que tous les segments qui composent un rapport d'inventaire ont été générés. Le fichier manifeste fournit également les noms des objets segment du rapport d'inventaire.

Le fichier manifeste suit la convention d'attribution de noms REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json, dans laquelle :

  • REPORT_CONFIG_UUID est l'UUID généré automatiquement de la configuration de rapport d'inventaire.

  • TARGET_DATETIME est la date et l'heure UTC générées automatiquement, correspondant à l'horodatage de génération du rapport d'inventaire.

Voici un exemple de nom de fichier manifeste : fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

Le fichier manifest.json contient les champs renseignés automatiquement ci-après :

{
  "report_config": REPORT_CONFIG_FIELDS,
  "records_processed": NUMBER_OF_INCLUDED_OBJECTS,
  "snapshot_time": "SNAPSHOT_TIME,
  "target_datetime": "TARGET_DATETIME,
  "shard_count": SHARD_COUNT,
  "report_shards_file_names": [
    SHARD_FILE_NAME
    ...]
}

Où :

  • REPORT_CONFIG_FIELDS inclut des champs contenus dans la ressource ReportConfig.

  • NUMBER_OF_INCLUDED_OBJECTS est le nombre d'objets inclus dans le rapport d'inventaire.

  • SNAPSHOT_TIME est la date et l'heure UTC générées automatiquement, correspondant à la réalisation de l'instantané de données. Toutes les données d'un rapport d'inventaire sont capturées au niveau de l'instantané.

  • TARGET_DATETIME est la date et l'heure UTC générées automatiquement, correspondant à l'horodatage de génération du rapport d'inventaire.

  • SHARD_COUNT est le nombre total de segments générés qui composent le rapport d'inventaire.

  • SHARD_FILE_NAME est le nom d'un segment composant un rapport d'inventaire.

Voici un exemple de fichier manifest.json :

{
  "report_config":
     {
       "name": "projects/123456789098/locations/us/reportConfigs/fcec5187-afa6-48b0-938a-543d16493dc0",
       "createTime": "2023-06-08T08:07:53.397366139Z",
       "updateTime": "2023-06-08T08:07:53.552347723Z",
       "frequencyOptions": {
         "frequency": "DAILY",
         "startDate": {
           "year": 2023,
           "month": 6,
           "day": 9
         }
         "endDate": {
           "year": 2023,
           "month": 6,
           "day": 23
         }
       },
       "csvOptions": {
         "recordSeparator": "\n",
         "delimiter": ","
       },
       "objectMetadataReportOptions": {
         "metadataFields": [
           "project",
           "bucket",
           "name",
           "location",
           "updated",
           "storageClass",
         ],
         "storageFilters": {
           "bucket": "my-test-bucket"
         },
         "storageDestinationOptions": {
           "bucket": "example-bucket",
           "destinationPath": "folder/subfolder"
         }
       }
     },
  "records_processed": 3993900,
  "snapshot_time" : "2023-06-06T00:07:27Z",
  "target_datetime": {
    "year": 2023,
    "month": 6,
    "day": 6
  },
  "shard_count": 4,
  "report_shards_file_names": [
    "fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv",
    "fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_1.csv",
    ...
  ],
}

Tarifs

L'utilisation des rapports d'inventaire est soumise à une tarification qui dépend de l'emplacement du bucket. Pour en savoir plus sur les tarifs des rapports sur l'inventaire, consultez la page Tarifs.

Journaux d'audit

Cloud Storage crée des journaux d'audit lorsque des rapports d'inventaire sont générés dans le bucket de destination. Cloud Storage génère des journaux d'audit chaque fois que des configurations de rapport d'inventaire sont créées, mises à jour ou supprimées.

Cloud Storage ne crée pas de journaux d'audit lorsqu'une configuration de rapport d'inventaire lit les métadonnées d'objet depuis un bucket source.

Intégration à VPC Service Controls

Vous pouvez fournir un niveau de sécurité supplémentaire pour les ressources des rapports sur l'inventaire à l'aide de VPC Service Controls. Lorsque vous utilisez VPC Service Controls, vous ajoutez des projets aux périmètres de service afin de protéger les ressources et les services des requêtes provenant de l'extérieur du périmètre. Pour en savoir plus sur VPC Service Controls et les périmètres de service, consultez la page Périmètres de service : détails et configuration.

Limite

L'activation du filtrage des adresses IP sur les buckets Cloud Storage empêche les rapports d'inventaire d'accéder au bucket, qu'ils utilisent ou non un agent de service pour interagir avec Cloud Storage. Pour éviter toute interruption de service, nous vous recommandons de ne pas utiliser le filtrage par adresse IP sur les buckets Cloud Storage si vous créez des rapports d'inventaire pour ce bucket.

Étapes suivantes

Apprenez à créer une configuration de rapport d'inventaire et générez des rapports d'inventaire.