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
- En el menú de navegación, haga clic en Object Storage.
- En el selector de proyectos, selecciona el proyecto en el que quieras crear el segmento.
- Haz clic en Crear segmento.
- En el flujo de creación de segmentos, asigna un nombre único a todos los segmentos del proyecto.
- Introduce una descripción.
- En Clase de almacenamiento, selecciona Estándar o Nearline. La opción Nearline solo está visible si el almacenamiento Nearline está habilitado.
- 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.
- 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.
Verificar la creación del segmento y de los recursos relacionados
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