Relatórios de inventário do Storage Insights

O recurso de relatórios de inventário do Storage Insights ajuda a gerenciar o armazenamento de objetos em grande escala. Essa é uma alternativa mais rápida e programada para a operação da API Objects: list.

Os relatórios de inventário contêm informações de metadados sobre seus objetos, como a classe de armazenamento, a ETag e o tipo de conteúdo do objeto. Essas informações ajudam você a analisar os custos de armazenamento, auditar e validar seus objetos e garantir a conformidade e segurança de dados. É possível exportar relatórios de inventário como arquivos de valores separados por vírgula (CSV, na sigla em inglês) ou Apache Parquet para analisá-los melhor usando ferramentas como o BigQuery.

Nesta página, fornecemos uma visão geral do recurso de relatório de inventário do Storage Insights. Para ver instruções sobre como usar o recurso, consulte Criar e gerenciar relatórios de inventário.

Visão geral dos relatórios de inventário

Os relatórios de inventário contêm uma lista de objetos e os metadados associados a eles em um determinado bucket, também conhecido como o bucket de origem. Para gerar relatórios de inventário, primeiro é necessário criar uma configuração de relatório de inventário que define a frequência de geração dos relatórios, os campos de metadados que você quer que os relatórios incluam e um bucket para gerar e armazenar os relatórios, também conhecido como o bucket de destino.

Quando você cria uma configuração de relatório de inventário, ela recebe automaticamente um identificador exclusivo universal (UUID, na sigla em inglês). Esse campo não é editável. No entanto, é possível editar os seguintes campos em uma configuração de relatório de inventário:

  • O nome de exibição da configuração de relatório de inventário
  • Os campos de metadados de objetos incluídos nos relatórios de inventário
  • O bucket de destino que armazena os relatórios de inventário
  • A programação que determina com que frequência os relatórios de inventário são gerados
  • O formato de arquivo em que os relatórios de inventário são gerados (CSV ou Apache Parquet)

Quando você exclui uma configuração de relatório de inventário, os novos relatórios de inventário não são mais gerados para a configuração, mas aqueles que já existem permanecem.

Buckets de origem e destino

O bucket de origem contém os objetos para os quais você quer gerar relatórios de inventário. Ele também contém a configuração de relatório de inventário. É possível ter até 100 configurações de relatório de inventário em um bucket de origem.

O bucket de destino armazena os relatórios de inventário gerados. O bucket de destino precisa atender aos seguintes requisitos:

  • Precisa estar no mesmo local que o bucket de origem.
  • Precisa estar no mesmo projeto que o bucket de origem.
  • Pode ser igual ao bucket de origem.

Quando você cria uma configuração de relatório de inventário pela primeira vez, um agente de serviço é criado automaticamente em seu nome. Para criar configurações de relatórios de inventário e gravar relatórios de inventário no bucket de destino, você e o agente de serviço precisam ter as permissões do IAM necessárias. Confira as permissões necessárias para você e para o agente de serviço.

O Storage Insights usa os nomes dos buckets de origem e de destino para determinar quais buckets usar ao executar jobs. Se você excluir um bucket de origem ou de destino e depois criar um novo bucket com o mesmo nome, o Storage Insights executará jobs usando o novo bucket.

Campos de metadados do objeto

Os seguintes campos de metadados podem ser incluídos em um relatório de inventário. Os campos de metadados marcados como "Obrigatório" precisam ser incluídos no relatório de inventário.

Campo de metadados Descrição Observações
projeto O ID do projeto em que o bucket de origem está localizado. Obrigatório
bucket O nome do bucket de origem. Obrigatório
nome O nome do objeto. Obrigatório
local O local do bucket de origem. Opcional
tamanho O tamanho do objeto. Opcional
timeCreated Hora da criação do objeto no formato RFC 3339. Opcional
timeDeleted É o horário de exclusão do objeto no formato RFC 3339. Retornado apenas se esta versão do objeto não for mais uma versão ativa, mas permanecer no bucket como uma versão não atual. Opcional
atualizado O horário de modificação dos metadados de objeto no formato RFC 3339. Opcional
storageClass A classe de armazenamento do objeto. Opcional
etag Tag de entidade HTTP 1.1 do objeto. Opcional
retentionExpirationTime O primeiro momento em que o objeto pode ser excluído, o que depende de qualquer configuração de retenção definida para o objeto e de qualquer política de retenção definido para o bucket que contém o objeto. O valor para retentionExpriationTime é fornecido no formato RFC 3339 (link em inglês). Opcional
crc32c O checksum CRC32C, conforme descrito no Apêndice B do RFC 4960, codificada usando base64 na ordem de bytes big-endian. Para mais informações sobre a soma de verificação CRC32C, consulte Metadados de objeto. Opcional
md5Hash O hash MD5 dos dados, codificado usando base64. Este campo não está presente para objetos compostos. Para mais informações sobre o hash MD5, consulte Metadados de objeto. Opcional
famílias de modelos A geração de conteúdo desse objeto. Usado para controle de versão de objetos. Opcional
metageneration A versão dos metadados desse objeto nessa geração. Usado para condições prévias e para detectar alterações em metadados. Um número da metageração só é significativo no contexto de uma determinada geração de um objeto específico. Opcional
contentType O tipo de conteúdo dos dados do objeto. Se um objeto for armazenado sem um tipo de conteúdo, ele será disponibilizado como application/octet-stream. Opcional
contentEncoding A codificação de conteúdo dos dados do objeto. Opcional
timeStorageClassUpdated O horário em que a classe de armazenamento do objeto foi alterada pela última vez. Quando o objeto é criado inicialmente, ele é definido como timeCreated. Opcional

Para saber mais sobre os campos de metadados de objetos, consulte Metadados de objetos.

Fragmentos de relatório de inventário

Quando um relatório de inventário contém mais de 1.000.000 de objetos, o Storage Insights gera um ou mais objetos de fragmento para compor o relatório de inventário. Quando todos os fragmentos de um relatório de inventário forem gerados com êxito, um arquivo de manifesto será gerado no mesmo bucket de destino que os fragmentos.

Arquivo de manifesto do relatório de inventário

A presença de um arquivo de manifesto indica que todos os fragmentos que compõem um relatório de inventário foram gerados. O arquivo de manifesto também fornece os nomes dos objetos de fragmento do relatório de inventário.

O arquivo de manifesto segue a convenção de nomenclatura REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json, em que:

  • REPORT_CONFIG_UUID é o UUID gerado automaticamente da configuração de relatório de inventário.

  • TARGET_DATETIME é a data e a hora em UTC geradas automaticamente em que um relatório de inventário é gerado.

Um exemplo de nome de arquivo de manifesto é fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

O arquivo manifest.json contém os seguintes campos preenchidos automaticamente:

{
  "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
    ...]
}

Em que:

  • REPORT_CONFIG_FIELDS inclui campos contidos no recurso ReportConfig.

  • NUMBER_OF_INCLUDED_OBJECTS é o número de objetos incluídos no relatório de inventário.

  • SNAPSHOT_TIME é a data e hora UTC gerada automaticamente em que o snapshot dos dados ocorre. Todos os dados de um relatório de inventário são capturados no instantâneo.

  • TARGET_DATETIME é a data e hora UTC gerada automaticamente em que um relatório de inventário é gerado.

  • SHARD_COUNT é o número total de fragmentos gerados que compõem o relatório de inventário.

  • SHARD_FILE_NAME é o nome de um fragmento que compõe um relatório de inventário.

Um arquivo de exemplo manifest.json será parecido com o seguinte:

{
  "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",
    ...
  ],
}

Preços e locais de buckets compatíveis

O Storage Insights está sujeito aos preços, em que a cobrança é feita a cada milhão de objetos contidos em um relatório de inventário de acordo com os preços abaixo, dependendo do local de armazenamento. Para saber mais sobre locais de armazenamento, consulte Locais de bucket.

Locais suportados

Local Região Preços
Ásia
Taiwan (asia-east1) US$ 0,0025/um milhão de objetos
Hong Kong (asia-east2) US$ 0,0028/um milhão de objetos
Tóquio (asia-northeast1) US$ 0,0028/um milhão de objetos
Osaka (asia-northeast2) US$ 0,0028/um milhão de objetos
Seul (asia-northeast3) US$ 0,0028/um milhão de objetos
Singapura (asia-southeast1) US$ 0,0025/um milhão de objetos
Austrália
Sydney (australia-southeast1) US$ 0,0028/um milhão de objetos
Melbourne (australia-southeast2) US$ 0,0028/um milhão de objetos
Europa
Varsóvia (europe-central2) US$ 0,0028/um milhão de objetos
Finlândia (europe-north1) US$ 0,0025/um milhão de objetos
Madri (europe-southwest1) US$ 0,0028/um milhão de objetos
Bélgica (europe-west1) US$ 0,0025/um milhão de objetos
Londres (europe-west2) US$ 0,0028/um milhão de objetos
Frankfurt (europe-west3) US$ 0,0028/um milhão de objetos
Países Baixos (europe-west4) US$ 0,0025/um milhão de objetos
Zurique (europe-west6) US$ 0,0031/um milhão de objetos
Milão (europe-west8) US$ 0,0028/um milhão de objetos
Paris (europe-west9) US$ 0,0028/um milhão de objetos
Índia
Mumbai (asia-south1) US$ 0,0028/um milhão de objetos
Délhi (asia-south2) US$ 0,0028/um milhão de objetos
Indonésia
Jacarta (asia-southeast2) US$ 0,0028/um milhão de objetos
Oriente Médio
Tel Aviv (me-west1) US$ 0,0026/um milhão de objetos
América do Norte
Montreal (northamerica-northeast1) US$ 0,0028/um milhão de objetos
Toronto (northamerica-northeast2) US$ 0,0028/um milhão de objetos
Iowa (us-central1) US$ 0,0025/um milhão de objetos
Carolina do Sul (us-east1) US$ 0,0025/um milhão de objetos
Norte da Virgínia (us-east4) US$ 0,0028/um milhão de objetos
Columbus (us-east5) US$ 0,0025/um milhão de objetos
Oregon (us-west1) US$ 0,0025/um milhão de objetos
Los Angeles (us-west2) US$ 0,0028/um milhão de objetos
Salt Lake City (us-west3) US$ 0,0028/um milhão de objetos
Las Vegas (us-west4) US$ 0,0028/um milhão de objetos
Dallas (us-south1) US$ 0,0025/um milhão de objetos
América do Sul
São Paulo (southamerica-east1) US$ 0,0043/um milhão de objetos
Santiago (southamerica-west1) US$ 0,0037/um milhão de objetos
Locais multirregionais
Ásia (asia) US$ 0,0028/um milhão de objetos
Europa (eu) US$ 0,0028/um milhão de objetos
Estados Unidos (us) US$ 0,0028/um milhão de objetos
Regiões duplas
Tóquio/Osaka (asia1) US$ 0,0028/um milhão de objetos
Finlândia/Países Baixos (eur4) US$ 0,0028/um milhão de objetos
Iowa/Carolina do Sul (nam4) US$ 0,0028/um milhão de objetos

Registro de auditoria

O Cloud Storage cria registros de auditoria quando os relatórios de inventário são gerados no bucket de destino. O Storage Insights gera registros de auditoria sempre que as configurações do relatório de inventário são criadas, atualizadas ou excluídas.

O Cloud Storage não cria registros de auditoria quando uma configuração de relatório de inventário lê metadados de objeto de um bucket de origem.

Integração com o VPC Service Controls

É possível fornecer uma camada extra de segurança aos recursos do Storage Insights usando o VPC Service Controls. Ao usar o VPC Service Controls, você adiciona projetos a perímetros de serviço que protegem recursos e serviços contra solicitações originadas de fora do perímetro. Para saber mais sobre o VPC Service Controls e os perímetros de serviço, consulte Configuração e detalhes de perímetro de serviço.

Limitação

Ativar a filtragem de IP nos buckets do Cloud Storage restringe o acesso do Storage Insights ao bucket, independentemente de ele usar um agente de serviço para interagir com o Cloud Storage. Para evitar interrupções no serviço, recomendamos não usar a filtragem de IP em buckets do Cloud Storage se você estiver criando relatórios de inventário para esse bucket.

A seguir

Saiba como criar uma configuração de relatório de inventário e começar a gerar relatórios de inventário.