Criar buckets de armazenamento para projetos

Esta página mostra como criar buckets de armazenamento isolados do Google Distributed Cloud (GDC).

Antes de começar

Um namespace de projeto gerencia recursos de bucket no servidor da API Management. Você precisa ter um projeto para trabalhar com buckets e objetos.

Você também precisa ter as permissões de bucket adequadas para realizar a operação a seguir. Consulte Conceder acesso ao bucket.

Diretrizes de nomenclatura de bucket de armazenamento

Os nomes de buckets precisam seguir estas convenções de nomenclatura:

  • Ser exclusivo no projeto. O servidor da API Management anexa um prefixo exclusivo ao nome totalmente qualificado do bucket, garantindo que não haja conflitos na organização. No caso improvável de um conflito de prefixo e nome de bucket entre organizações, a criação do bucket falha com um erro de "nome de bucket em uso".
  • Não inclua informações de identificação pessoal (PII).
  • Estar em conformidade com o DNS.
  • Ter pelo menos 1 e no máximo 55 caracteres.
  • Começar com uma letra e usar apenas letras, números e hífens.

Criar um bucket

Por padrão, os buckets usam a classe de armazenamento Standard. Se o Nearline Storage tiver sido ativado pelo operador de infraestrutura (IO), você também poderá selecionar a classe de armazenamento Nearline para dados acessados com menos frequência. O Nearline Storage é compatível com buckets de zona única e dupla.

Console

  1. No menu de navegação, clique em Object Storage.
  2. No seletor de projetos, selecione o projeto em que você quer criar o bucket.
  3. Clique em Criar bucket.
  4. No fluxo de criação de bucket, atribua um nome exclusivo a todos os buckets do projeto.
  5. Digite uma descrição.
  6. Em Classe de armazenamento, selecione Padrão ou Nearline. A opção Nearline só fica visível se o armazenamento Nearline estiver ativado.
  7. Opcional: clique na opção de alternância toggle_off para definir uma política de retenção e insira o número de dias preferido. Entre em contato com o IO se precisar exceder os limites da política de retenção.
  8. Clique em Criar. Uma mensagem de sucesso aparece e você é direcionado de volta à página Buckets.

Para verificar se você criou um novo bucket, atualize a página Buckets após alguns minutos e confira se o estado do bucket é atualizado de Not ready para Ready.

API

Para criar um bucket, aplique uma especificação de bucket ao namespace do projeto:

kubectl apply -f bucket.yaml

Confira a seguir um exemplo de especificação de bucket usando a classe de armazenamento Standard:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: DESCRIPTION
  storageClass: Standard
  bucketPolicy:
    lockingPolicy:
      defaultObjectRetentionDays: RETENTION_DAY_COUNT

Confira a seguir um exemplo de especificação de bucket usando a classe de armazenamento Nearline:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: DESCRIPTION
  storageClass: Nearline
  bucketPolicy:
    lockingPolicy:
      defaultObjectRetentionDays: RETENTION_DAY_COUNT

Confira a seguir um exemplo de especificação de bucket com a versão de criptografia como v1:

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
  labels:
    object.gdc.goog/encryption-version: v1
spec:
  description: DESCRIPTION
  storageClass: Standard
  bucketPolicy:
    lockingPolicy:
      defaultObjectRetentionDays: RETENTION_DAY_COUNT

Para mais detalhes, consulte a referência da API Bucket.

Confira a seguir um exemplo de especificação de bucket de zona dupla na API global do administrador da organização:

apiVersion: object.global.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: PROJECT_NAME
spec:
  location: LOCATION_NAME
  description: Sample DZ Bucket
  storageClass: Standard

Para criar um bucket de zona dupla usando o Nearline Storage, defina storageClass: Nearline.

Somente a criptografia V2 é compatível com buckets de zona dupla, e todas as operações para criar, atualizar ou excluir um recurso de bucket de zona dupla precisam ser realizadas no servidor da API global.

gdcloud

Para criar um bucket de zona única com gdcloud usando a classe de armazenamento Nearline:

gdcloud storage buckets create BUCKET_NAME \
    --location=ZONE_NAME \
    --location-type=SingleZone \
    --storage-class=Nearline

Para criar um bucket de zona dupla com gdcloud usando o local global:

gdcloud storage buckets create BUCKET_NAME \
    --location=ZONE_1,ZONE_2 \
    --location-type=AsyncDualZone \
    --storage-class=Nearline

Se --storage-class for omitido, Standard será usado por padrão.

Para mais detalhes, consulte gdcloud storage buckets create.

Depois que o bucket for criado, você poderá executar o comando a seguir para confirmar e conferir os detalhes do bucket:

kubectl describe buckets BUCKET_NAME -n PROJECT_NAMESPACE

A seção Status tem dois campos importantes: Criptografia (para detalhes de criptografia) e Nome totalmente qualificado (que contém o FULLY_QUALIFIED_BUCKET_NAME).

Criptografia v1

As informações são sobre a AEADKey chamada obj-FULLY_QUALIFIED_BUCKET_NAME, que serve como referência à chave de criptografia usada para criptografar objetos armazenados no bucket. Veja um exemplo:

Status:
  Encryption:
    Key Ref:
      Kind: AEADKey
      Name: obj-FULLY_QUALIFIED_BUCKET_NAME
      Namespace: PROJECT_NAMESPACE
    Type: CMEK

Criptografia v2

As informações pertencem ao Secret chamado kek-ref-FULLY_QUALIFIED_BUCKET_NAME, que atua como uma referência para AEADKeys padrão ativas. As AEADKeys padrão ativas são selecionadas aleatoriamente para criptografar objetos enviados ao bucket quando uma AEADKey específica não é especificada.

Veja um exemplo:

Status:
  Encryption:
    Key Ref:
      Kind: Secret
      Name: kek-ref-FULLY_QUALIFIED_BUCKET_NAME
      Namespace: PROJECT_NAMESPACE
    Type: CMEK

Você também pode executar o comando a seguir para verificar se as AEADKeys necessárias foram criadas:

kubectl get aeadkeys -n PROJECT_NAMESPACE -l  cmek.security.gdc.goog/resource-name=FULLY_QUALIFIED_BUCKET_NAME