Crear segmentos de almacenamiento para proyectos

En esta página se explica cómo crear segmentos de almacenamiento con air gap de Google Distributed Cloud (GDC).

Antes de empezar

Un espacio de nombres de proyecto gestiona los recursos de los contenedores en el servidor de la API Management. Debes tener un proyecto para trabajar con los contenedores y los objetos.

También debe tener los permisos de contenedor adecuados para realizar la siguiente operación. Consulta Conceder acceso a un contenedor.

Directrices para asignar nombres a los segmentos de almacenamiento

Los nombres de los segmentos deben cumplir las siguientes convenciones de nomenclatura:

  • Ser único en el proyecto. El servidor de la API Management añade un prefijo único al nombre cualificado completo del segmento, lo que asegura que no haya conflictos en la organización. En el improbable caso de que coincidan el prefijo y el nombre del segmento entre organizaciones, se producirá un error al crear el segmento ("nombre del segmento en uso").
  • No incluyas información de identificación personal (IIP).
  • Cumplir los requisitos de DNS.
  • Tener entre 1 y 55 caracteres.
  • Empieza por una letra y usa solo letras, números y guiones.

Crear un segmento

De forma predeterminada, los segmentos usan la clase de almacenamiento Standard. Si tu operador de infraestructura ha habilitado Nearline Storage, también puedes seleccionar la clase de almacenamiento Nearline para los datos a los que se accede con menos frecuencia. El almacenamiento Nearline se admite en segmentos de una sola zona y de dos zonas.

Consola

  1. En el menú de navegación, haga clic en Object Storage.
  2. En el selector de proyectos, selecciona el proyecto en el que quieras crear el segmento.
  3. Haz clic en Crear segmento.
  4. En el flujo de creación de segmentos, asigna un nombre único a todos los segmentos del proyecto.
  5. Introduce una descripción.
  6. En Clase de almacenamiento, selecciona Estándar o Nearline. La opción Nearline solo está visible si el almacenamiento Nearline está habilitado.
  7. Opcional: Haz clic en el interruptor toggle_off para definir una política de conservación e introduce el número de días que prefieras. Ponte en contacto con tu IO si necesitas superar los límites de la política de conservación.
  8. Haz clic en Crear. Aparecerá un mensaje de confirmación y se te redirigirá a la página Buckets (Contenedores).

Para verificar que has creado un nuevo contenedor correctamente, actualiza la página Contenedores al cabo de unos minutos y comprueba que el estado del contenedor cambia de Not ready a Ready.

API

Para crear un segmento, aplica una especificación de segmento al espacio de nombres de tu proyecto:

kubectl apply -f bucket.yaml

A continuación, se muestra un ejemplo de especificación de un segmento mediante la clase de almacenamiento 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

A continuación, se muestra un ejemplo de especificación de un segmento mediante la clase de almacenamiento 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

A continuación, se muestra un ejemplo de especificación de un contenedor con la versión de cifrado 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 obtener más información, consulta la referencia de la API Bucket.

A continuación, se muestra un ejemplo de una especificación de un bucket de doble zona en la API global de administrador de organización:

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 crear un segmento de dos zonas con Nearline Storage, define storageClass: Nearline.

Ten en cuenta que solo se admite el cifrado de la versión 2 en los segmentos de dos zonas y que todas las operaciones para crear, actualizar o eliminar un recurso de segmento de dos zonas deben realizarse en el servidor de la API global.

gdcloud

Para crear un segmento de zona única con gdcloud mediante la clase de almacenamiento Nearline, sigue estos pasos:

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

Para crear un segmento de dos zonas con gdcloud usando la ubicación global, sigue estos pasos:

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

Si se omite --storage-class, se usa Standard de forma predeterminada.

Para obtener más información, consulta gdcloud storage buckets create.

Una vez que se haya creado el contenedor, puedes ejecutar el siguiente comando para confirmar y consultar los detalles del contenedor:

kubectl describe buckets BUCKET_NAME -n PROJECT_NAMESPACE

La sección Estado tiene dos campos importantes: Cifrado (con los detalles del cifrado) y Nombre completo (que contiene el FULLY_QUALIFIED_BUCKET_NAME).

Cifrado v1

La información se refiere a la clave AEAD denominada obj-FULLY_QUALIFIED_BUCKET_NAME, que sirve como referencia a la clave de cifrado empleada para cifrar los objetos almacenados en el cubo. A continuación se muestra un ejemplo:

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

Cifrado v2

La información se refiere al secreto llamado kek-ref-FULLY_QUALIFIED_BUCKET_NAME, que actúa como referencia para las AEADKeys predeterminadas activas. Las AEADKeys predeterminadas activas se seleccionan aleatoriamente para cifrar los objetos subidos al segmento cuando no se especifica una AEADKey concreta.

A continuación se muestra un ejemplo:

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

También puedes ejecutar el siguiente comando para verificar que se han creado las AEADKeys necesarias:

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