Encriptación del lado del servidor (SSE-KMS)
En el modo SSE-KMS, OBS utiliza las claves proporcionadas por KMS para el encriptación del lado del servidor. Cuando un objeto cifrado usando SSE-KMS se agrega a un bucket en una región por primera vez, OBS crea una clave principal de cliente (CMK) predeterminada, que se usa para cifrar y descifrar las claves proporcionadas por KMS. El modo SSE-KMS no admite las claves creadas por los clientes. La ACL y la política del bucket no permiten el acceso autorizado entre inquilinos a objetos cifrados mediante SSE-KMS.
Se agrega dos encabezados para soportar SSE-KMS en modo SSE-KMS.
También puede configurar el método de encriptación predeterminado para un bucket para cifrar objetos en el bucket. Cuando la encriptación predeterminada está habilitada para un bucket, cualquier solicitud de carga de objetos sin el encabezado de encriptación especificada activará la encriptación predeterminada del bucket para los objetos cargados. Para obtener más información acerca de la configuración de encriptación de bucket, consulte Configuración de la encriptación de bucket.
Elemento |
Descripción |
---|---|
x-obs-server-side-encryption |
Indica que se utiliza SSE-KMS. Los objetos se cifran mediante SSE-KMS. Tipo: string Ejemplo: x-obs-server-side-encryption:kms |
x-obs-server-side-encryption-kms-key-id |
Indica el ID de clave principal de un objeto cifrado. Este encabezado se utiliza en modo SSE-KMS. Si el cliente no proporciona el ID de clave principal, se utilizará el ID de clave principal por defecto. Tipo: string Se admiten los dos formatos siguientes: 1. regionID:domainID:key/key_id 2. key_id regionID es el ID de la región a la que pertenece la clave. domainID es el ID de cuenta del tenant al que pertenece la clave. key_id es el ID de clave creado en DEW. Ejemplo: 1. x-obs-server-side-encryption-kms-key-id: region:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0 or 2.x-obs-server-side-encryption-kms-key-id:4f1cd4de-ab64-4807-920a-47fc42e7f0d0 |
Las operaciones de API a las que se aplican los encabezados recién agregados:
- Operación PUT para cargar objetos
- Operación POST para cargar objetos (x-obs-server-side-encryption y x-obs-server-side-encryption-kms-key-id deben colocarse en la tabla en lugar del campo de encabezado)
- PutObject-Copy (los encabezados recién agregados se aplican a los objetos de destino)
- Operaciones de API para iniciar una tarea de carga de varias partes
OBS admite las políticas de bucket. Puede usar una política de bucket para implementar la encriptación del lado del servidor en todos los objetos almacenados en un bucket. Por ejemplo, la solicitud de carga de objetos de un inquilino no contiene el encabezado x-obs-server-side-encryption:"kms" para la encriptación del servidor (SSE-KMS), la siguiente política de bucket rechazará la solicitud de carga.
{ "Statement":[{ "Sid":"DenyUnEncryptedObjectUploads", "Effect":"Deny", "Principal":"*", "Action":"PutObject", "Resource":"YourBucket/*", "Condition":{ "StringNotEquals":{ "x-obs-server-side-encryption":"kms" } } } }
Solicitud de muestra 1
Utilizar la clave predeterminada para cifrar el objeto cargado.
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] |
Respuesta de muestra 1
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 |
Solicitud de muestra 2
Utilizar una clave especificada para cifrar el objeto cargado.
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] |
Respuesta de muestra 2
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 |
Solicitud de muestra 3
Copiar un objeto común y guárdelo como un objeto cifrado encripándolo con una clave especificada.
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 |
Respuesta de muestra 3
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: oRAXhgwdTLc9wKVHqTLSmQB7I35D+32AAAUJAIAABAAAQAAEAABAAAQAAEAABCS Date: Wed, 06 Jun 2018 09:10:29 GMT Content-Length: 0 |
Solicitud de muestra 4
Llevar la firma en la URL y cargue el objeto cifrado.
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
Respuesta de muestra 4
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: oRAXhgwdTLc9wKVHqTLSmQB7I35D+32AAAUJAIAABAAAQAAEAABAAAQAAEAABCS Date: Wed, 06 Jun 2018 09:10:29 GMT Content-Length: 0 |