Encriptação do lado do servidor (SSE-KMS)
No modo SSE-KMS, o OBS usa as chaves fornecidas pelo KMS para encriptação do lado do servidor. Quando um objeto criptografado usando SSE-KMS é adicionado a um bucket em uma região pela primeira vez, o OBS cria uma chave mestra do cliente (CMK) padrão, que é usada para criptografar e descriptografar as chaves fornecidas pelo KMS. O modo SSE-KMS não suporta as chaves criadas pelos clientes. A ACL e a política do bucket não permitem acesso autorizado entre locatários a objetos criptografados usando SSE-KMS.
Dois cabeçalhos são adicionados para suportar SSE-KMS no modo SSE-KMS.
Você também pode configurar o método de encriptação padrão para um bucket para criptografar objetos no bucket. Quando a encriptação padrão é ativada para um bucket, qualquer solicitação de upload de objetos sem o cabeçalho de encriptação especificado acionará a encriptação padrão do bucket para os objetos carregados. Para obter mais informações sobre a configuração de encriptação de bucket, consulte Configuração da encriptação de um bucket.
Elemento |
Descrição |
---|---|
x-obs-server-side-encryption |
Indica que SSE-KMS é usado. Os objetos são criptografados usando SSE-KMS. Tipo: string Exemplo: x-obs-server-side-encryption:kms |
x-obs-server-side-encryption-kms-key-id |
Indica o ID da chave mestra de um objeto criptografado. Este cabeçalho é usado no modo SSE-KMS. Se o cliente não fornecer o ID da chave mestra, o ID da chave mestra padrão será usado. Tipo: string Os dois formatos a seguir são suportados: 1. regionID:domainID:key/key_id 2. key_id regionID é o ID da região à qual a chave pertence. domainID é o ID da conta do locatário ao qual a chave pertence. key_id é o ID da chave criado emDEW. Exemplo: 1. x-obs-server-side-encryption-kms-key-id: região:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0 ou 2. x-obs-server-side-encryption-kms-key-id:4f1cd4de-ab64-4807-920a-47fc42e7f0d0 |
Operações de API às quais os cabeçalhos recém-adicionados se aplicam:
- Operação PUT para fazer upload de objetos
- Operação POST para upload de objetos (x-obs-server-side-encryption e x-obs-server-side-encryption-kms-key-id precisam ser colocados na tabela em vez do campo de cabeçalho)
- PutObject-Copy (os cabeçalhos recém-adicionados se aplicam aos objetos de destino)
- Operações de API para iniciar uma tarefa de upload de várias partes
O OBS suporta políticas de bucket. Você pode usar uma política de bucket para implementar a encriptação do lado do servidor em todos os objetos armazenados em um bucket. Por exemplo, se a solicitação de upload de objeto de um locatário não contém o cabeçalho x-obs-server-side-encryption:"kms" para encriptação do lado do servidor (SSE-KMS), a política de bucket a seguir rejeitará a solicitação de upload.
{ "Statement":[{ "Sid":"DenyUnEncryptedObjectUploads", "Effect":"Deny", "Principal":"*", "Action":"PutObject", "Resource":"YourBucket/*", "Condition":{ "StringNotEquals":{ "x-obs-server-side-encryption":"kms" } } } }
Solicitação de exemplo 1
Use a chave padrão para encriptar o objeto carregado.
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] |
Resposta de exemplo 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 |
Solicitação de exemplo 2
Use uma chave especificada para encriptar o objeto carregado.
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] |
Resposta de exemplo 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 |
Solicitação de exemplo 3
Copie um objeto comum e salve-o como um objeto encriptado encriptando-o usando uma chave 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 |
Resposta de exemplo 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 |
Solicitação de exemplo 4
Carregue a assinatura no URL e carregue o objeto encriptado.
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
Resposta de exemplo 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 |