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.
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:
- Carga de objetos - PUT
- Carga de objetos - POST: x-obs-server-side-encryption y x-obs-server-side-encryption-kms-key-id deben colocarse en el formulario en lugar de encabezamientos.
- Copia de objetos (los encabezados recién agregados se aplican a las copias de objetos)
- Inicio de una carga multiparte
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 |