En esta página, se muestra cómo crear buckets de almacenamiento aislados de Google Distributed Cloud (GDC).
Antes de comenzar
Un espacio de nombres del proyecto administra los recursos del bucket en el servidor de la API de Management. Debes tener un proyecto para trabajar con buckets y objetos.
También debes tener los permisos de bucket adecuados para realizar la siguiente operación. Consulta Otorgar acceso al bucket.
Lineamientos para asignar nombres a bucket de almacenamiento
Los nombres de los buckets deben cumplir con las siguientes convenciones de nombres:
- Deben ser únicos en el proyecto. El servidor de la API de Management antepone un prefijo único al nombre completamente calificado del bucket, lo que garantiza que no haya conflictos dentro de la organización. En el improbable caso de que haya un conflicto de prefijo y nombre de bucket en las organizaciones, la creación del bucket falla con un error de "nombre de bucket en uso".
- No incluyas ningún tipo de información de identificación personal (PII).
- Deben ser compatibles con DNS.
- Deben tener al menos 1 y no más de 55 caracteres.
- Comienza con una letra y usa solo letras, números y guiones.
Crea un bucket
De forma predeterminada, los buckets usan la clase de almacenamiento Standard. Si el operador de infraestructura (IO) habilitó Nearline Storage, también puedes seleccionar la clase de almacenamiento Nearline para los datos a los que se accede con menos frecuencia. Nearline Storage es compatible con buckets de una sola zona y de dos zonas.
Console
- En el menú de navegación, haz clic en Object Storage.
- En el selector de proyectos, selecciona el proyecto en el que deseas crear el bucket.
- Haga clic en Crear bucket.
- En el flujo de creación de bucket, asigna un nombre único en todos los buckets del proyecto.
- Ingresa una descripción.
- En Clase de almacenamiento, selecciona Standard o Nearline. La opción Nearline solo está visible si Nearline Storage está habilitado.
- Opcional: Haz clic en el botón de activación toggle_off para establecer una política de retención y, luego, ingresa la cantidad de días que prefieras. Comunícate con tu IO si necesitas superar los límites de la política de retención.
- Haz clic en Crear. Aparecerá un mensaje de confirmación y se te redireccionará a la página Buckets.
Para verificar que creaste correctamente un bucket nuevo, actualiza la página Buckets después de unos minutos y verifica que el estado del bucket se actualice de Not ready a Ready.
API
Para crear un bucket, aplica una especificación de bucket a tu espacio de nombres del proyecto:
kubectl apply -f bucket.yaml
El siguiente es un ejemplo de una especificación de bucket con 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
El siguiente es un ejemplo de una especificación de bucket con 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
El siguiente es un ejemplo de una especificación de bucket con la versión de encriptación 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 obtener más detalles, consulta la referencia de la API de Bucket.
El siguiente es un ejemplo de una especificación de bucket de dos zonas en la API global de org-admin:
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 bucket de dos zonas con Nearline Storage, establece storageClass: Nearline.
Ten en cuenta que solo se admite la encriptación V2 para los buckets de dos zonas y que todas las operaciones para crear, actualizar o borrar un recurso de bucket de dos zonas deben realizarse en el servidor de la API global.
gdcloud
Para crear un bucket de una sola zona con gdcloud usando la clase de almacenamiento Nearline, haz lo siguiente:
gdcloud storage buckets create BUCKET_NAME \
--location=ZONE_NAME \
--location-type=SingleZone \
--storage-class=Nearline
Para crear un bucket de dos zonas con gdcloud usando la ubicación global, haz lo siguiente:
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 detalles, consulta gdcloud storage buckets create.
Verifica la creación del bucket y los recursos relacionados
Una vez que se crea el bucket, puedes ejecutar el siguiente comando para confirmar y verificar los detalles del bucket:
kubectl describe buckets BUCKET_NAME -n PROJECT_NAMESPACE
La sección Estado tiene dos campos importantes: Encriptación (para obtener detalles de la encriptación) y Nombre completamente calificado (que contiene el FULLY_QUALIFIED_BUCKET_NAME).
Encriptación v1
La información es sobre la AEADKey denominada obj-FULLY_QUALIFIED_BUCKET_NAME, que sirve como referencia a la clave de encriptación que se usa para encriptar los objetos almacenados en el bucket. A continuación, se muestra un ejemplo:
Status:
Encryption:
Key Ref:
Kind: AEADKey
Name: obj-FULLY_QUALIFIED_BUCKET_NAME
Namespace: PROJECT_NAMESPACE
Type: CMEK
Encriptación v2
La información pertenece al secreto denominado kek-ref-FULLY_QUALIFIED_BUCKET_NAME, que actúa como referencia para las AEADKeys predeterminadas activas. Las AEADKeys predeterminadas activas se seleccionan de forma aleatoria para encriptar los objetos subidos al bucket cuando no se especifica una AEADKey específica.
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 creen las AEADKeys necesarias:
kubectl get aeadkeys -n PROJECT_NAMESPACE -l cmek.security.gdc.goog/resource-name=FULLY_QUALIFIED_BUCKET_NAME