Rapports d'inventaire Storage Insights

La fonctionnalité de rapport d'inventaire Storage Insights vous aide à 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.

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 la fonctionnalité de rapport d'inventaire Storage Insights. Pour obtenir des instructions sur l'utilisation de la fonctionnalité, consultez la page 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.

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.

Storage Insights utilise 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, Storage Insights exécute 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 retentionExpriationTime 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 la section 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 la section 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, Storage Insights génère un ou plusieurs objets segment 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 et emplacements de bucket disponibles

Storage Insights est soumis à une tarification, où chaque million d'objets figurant dans un rapport d'inventaire est facturé aux tarifs ci-dessous, en fonction de l'emplacement de stockage. Pour en savoir plus sur les emplacements de stockage, consultez la page Emplacements des buckets.

Pays acceptés

Emplacement Région Tarifs
Asie
Taïwan (asia-east1) 0,0025 $/un million d'objets
Hong Kong (asia-east2) 0,0028 $/un million d'objets
Tokyo (asia-northeast1) 0,0028 $/un million d'objets
Osaka (asia-northeast2) 0,0028 $/un million d'objets
Séoul (asia-northeast3) 0,0028 $/un million d'objets
Singapour (asia-southeast1) 0,0025 $/un million d'objets
Australie
Sydney (australia-southeast1) 0,0028 $/un million d'objets
Melbourne (australia-southeast2) 0,0028 $/un million d'objets
Europe
Varsovie (europe-central2) 0,0028 $/un million d'objets
Finlande (europe-north1) 0,0025 $/un million d'objets
Madrid (europe-southwest1) 0,0028 $/un million d'objets
Belgique (europe-west1) 0,0025 $/un million d'objets
Londres (europe-west2) 0,0028 $/un million d'objets
Francfort (europe-west3) 0,0028 $/un million d'objets
Pays-Bas (europe-west4) 0,0025 $/un million d'objets
Zurich (europe-west6) 0,0031 $/un million d'objets
Milan (europe-west8) 0,0028 $/un million d'objets
Paris (europe-west9) 0,0028 $/un million d'objets
Inde
Mumbai (asia-south1) 0,0028 $/un million d'objets
Delhi (asia-south2) 0,0028 $/un million d'objets
Indonésie
Jakarta (asia-southeast2) 0,0028 $/un million d'objets
Moyen-Orient
Tel Aviv (me-west1) 0,0026 $/un million d'objets
Amérique du Nord
Montréal (northamerica-northeast1) 0,0028 $/un million d'objets
Toronto (northamerica-northeast2) 0,0028 $/un million d'objets
Iowa (us-central1) 0,0025 $/un million d'objets
Caroline du Sud (us-east1) 0,0025 $/un million d'objets
Virginie du Nord (us-east4) 0,0028 $/un million d'objets
Columbus (us-east5) 0,0025 $/un million d'objets
Oregon (us-west1) 0,0025 $/un million d'objets
Los Angeles (us-west2) 0,0028 $/un million d'objets
Salt Lake City (us-west3) 0,0028 $/un million d'objets
Las Vegas (us-west4) 0,0028 $/un million d'objets
Dallas (us-south1) 0,0025 $/un million d'objets
Amérique du Sud
São Paulo (southamerica-east1) 0,0043 $/un million d'objets
Santiago (southamerica-west1) 0,0037 $/un million d'objets
Emplacements multirégionaux
Asie (asia) 0,0028 $/un million d'objets
Europe (eu) 0,0028 $/un million d'objets
États-Unis (us) 0,0028 $/un million d'objets
Emplacements birégionaux
Tokyo/Osaka (asia1) 0,0028 $/un million d'objets
Finlande/Pays-Bas (eur4) 0,0028 $/un million d'objets
Iowa/Caroline du Sud (nam4) 0,0028 $/un million d'objets

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. Storage Insights 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 Storage Insights à 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 Storage Insights d'y accéder, que l'utilisateur utilise un agent de service pour interagir avec Cloud Storage ou non. Pour éviter les perturbations 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 ces buckets.

Étape suivante

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