Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-18 GMT+08:00

SSE-KMS

Funciones

Con SSE-KMS, OBS utiliza las claves proporcionadas por Key Management Service (KMS) para la encriptación del lado del servidor. Puede crear claves personalizadas en KMS para cifrar los objetos. Si no especifica una clave, OBS crea una clave predeterminada la primera vez que carga un objeto en el bucket. Las claves personalizadas o las claves predeterminadas se utilizan para cifrar y descifrar las claves de encriptación de datos (DEK).

Cuando se utiliza una clave personalizada en un proyecto de IAM no predeterminado para cifrar objetos, solo el propietario de la clave puede cargar o descargar los objetos cifrados.

Encabezados recién agregados

Se agregan dos encabezados para SSE-KMS. Puede configurar los encabezados de Tabla 1 para habilitar SSE-KMS.

También puede configurar la encriptación predeterminada de un bucket para cifrar los objetos que cargue en el bucket. Después de habilitar la encriptación predeterminada para un bucket, cualquier solicitud de carga de objetos sin el encabezado de encriptación incluido heredará la configuración de encriptación del bucket. Para obtener más información, véase Configuración de la encriptación de bucket.

Tabla 1 Campos de encabezado utilizados en el modo SSE-KMS

Elemento

Descripción

x-obs-server-side-encryption

Indica que SSE-KMS se utiliza para cifrar objetos.

Tipo: string

Ejemplo: x-obs-server-side-encryption:kms

x-obs-server-side-encryption-kms-key-id

Indica la clave principal para cifrar el objeto cuando se utiliza SSE-KMS. Si no se proporciona este encabezado, se utilizará la clave principal predeterminada. Si no existe una clave principal por defecto, OBS creará una y la usará por defecto.

Tipo: string

Se admiten los dos formatos siguientes:

- regionID:domainID:key/key_id

- key_id

regionID indica el ID de la región a la que pertenece la clave. domainID indica el ID del tenant al que pertenece la clave. key_id indica el ID de la clave creada en DEW.

Ejemplos:

- x-obs-server-side-encryption-kms-key-id:region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

- x-obs-server-side-encryption-kms-key-id:4f1cd4de-ab64-4807-920a-47fc42e7f0d0

Las API donde se aplican los encabezados de SSE-KMS

Puede configurar encabezados sobre SSE-KMS en las siguientes API:

Puede configurar una política de bucket para restringir los encabezados de solicitud de un bucket especificado. Por ejemplo, si necesita que las solicitudes de carga de objetos no contengan el encabezado x-obs-server-side-encryption:"kms", puede usar la siguiente política de bucket:

{
    "Statement": [
        {
            "Sid": "DenyUnEncryptedObjectUploads",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "PutObject",
            "Resource": "YourBucket/*",
            "Condition": {
                "StringNotEquals": {
                    "x-obs-server-side-encryption": "kms"
                }
            }
        }
    ]
}

Ejemplo de solicitud: uso de la clave predeterminada para encriptar un objeto

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
PUT /encryp1 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: Wed, 06 Jun 2018 09:08:21 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:f3/7eS6MFbW3JO4+7I5AtyAQENU=
x-obs-server-side-encryption:kms
Content-Length: 5242
Expect: 100-continue

[5242 Byte object contents]

Ejemplo de respuesta: Uso de la clave predeterminada para cifrar un objeto

1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D45AA81D038B6AE4C482
ETag: "d8bffdfbab5345d91ac05141789d2477"
x-obs-server-side-encryption: kms
x-obs-server-side-encryption-kms-key-id: region:783fc6652cf246c096ea836694f71855:key/522d6070-5ad3-4765-9737-9312ddc72cdb
x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTv7cHmAnGfBAGXUHeibUsiETTNqlCqC
Date: Wed, 06 Jun 2018 09:08:21 GMT
Content-Length: 0

Ejemplo de solicitud: Uso de una clave personalizada para cifrar un objeto

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
PUT /encryp1 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: Wed, 06 Jun 2018 09:08:50 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:f3/PWjkXYTYGs5lPOctTNEI2QENU=
x-obs-server-side-encryption:kms
x-obs-server-side-encryption-kms-key-id: 522d6070-5ad3-4765-43a7-a7d1-ab21f498482d
Content-Length: 5242
Expect: 100-continue

[5242 Byte object contents]

Ejemplo de respuesta: Uso de una clave personalizada para cifrar un objeto

1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D45AA81D038B6AE4C482
ETag: "d8bffdfbab5345d91ac05141789d2477"
x-obs-server-side-encryption: kms
x-obs-server-side-encryption-kms-key-id: region:783fc6652cf246c096ea836694f71855:key/522d6070-5ad3-4765-43a7-a7d1-ab21f498482d
x-obs-id-2: 32AAAUJAIAABAdiAEAABA09AEAABCTv7cHmAn12BAG83ibUsiET5eqlCqg
Date: Wed, 06 Jun 2018 09:08:50 GMT
Content-Length: 0

Ejemplo de solicitud: Uso de una clave para cifrar una copia de objeto

1
2
3
4
5
6
7
8
9
PUT /destobject HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
x-obs-server-side-encryption:kms
x-obs-server-side-encryption-kms-key-id: region:783fc6652cf246c096ea836694f71855:key/522d6070-5ad3-4765-9737-9312ddc72cdb
Accept: */*
Date: Wed, 06 Jun 2018 09:10:29 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:SH3uTrElaGWarVI1uTq325kTVCI=
x-obs-copy-source: /bucket/srcobject1

Ejemplo de respuesta: Uso de una clave para cifrar una copia de objeto

1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BB78000001648480AF3900CED7F15155
ETag: "d8bffdfbab5345d91ac05141789d2477"
x-obs-server-side-encryption: kms
x-obs-server-side-encryption-kms-key-id: region:783fc6652cf246c096ea836694f71855:key/522d6070-5ad3-4765-9737-9312ddc72cdb
x-obs-id-2: oRAXhgwdaLc9wKVHqTLSmQB7I35D+32AAAUJAIAABAAAQAAEAABAAAQAAEAABCS
Date: Wed, 06 Jun 2018 09:10:29 GMT
Content-Length: 0

Ejemplo de solicitud: Carga de un objeto cifrado mediante una dirección URL firmada

PUT /destobject?AccessKeyId=UI3SN1SRUQE14OYBKTZB&Expires=1534152518&x-obs-server-side-encryption=kms&Signature=chvmG7%2FDA%2FDCQmTRJu3xngldJpg%3D HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: Wed, 06 Jun 2018 09:10:29 GMT

Ejemplo de respuesta: Carga de un objeto cifrado mediante una dirección URL firmada

1
2
3
4
5
6
7
8
9
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BB78000001648480AF3900CED7F15155
ETag: "d8bffdfbab5345d91ac05141789d2477"
x-obs-server-side-encryption: kms
x-obs-server-side-encryption-kms-key-id: region:783fc6652cf246c096ea836694f71855:key/522d6070-5ad3-4765-9737-9312ddc72cdb
x-obs-id-2: oRAXhgwdaLc9wKVHqTLSmQB7I35D+32AAAUJAIAABAAAQAAEAABAAAQAAEAABCS
Date: Wed, 06 Jun 2018 09:10:29 GMT
Content-Length: 0