Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-14 GMT+08:00

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.

Tabela 1 Campos de cabeçalho usados no modo SSE-KMS

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