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.