Quando a criptografia no lado do cliente está ativada, o sistema criptografa os objetos localmente antes de enviá-los ao Object Storage Service (OSS). Somente o proprietário da chave mestra do cliente (CMK) pode descriptografar esses objetos, o que aumenta a segurança dos dados durante a transmissão e o armazenamento.
Precauções
Este tópico usa o ID da região
cn-hangzhouda China (Hangzhou) como exemplo. Por padrão, o sistema utiliza o endpoint público. Para acessar o OSS a partir de outros serviços da Alibaba Cloud na mesma região, use o endpoint interno. Para obter mais informações sobre o mapeamento entre regiões e endpoints do OSS, consulte OSS regions and endpoints.Ao usar a criptografia no lado do cliente, garanta a integridade e a validade da chave mestra do cliente (CMK).
Ao copiar ou migrar dados criptografados, você é responsável pela integridade e validade dos metadados do objeto.
Definição de métodos
O OSS SDK for Python V2 oferece suporte aos seguintes métodos para usar CMKs:
-
CMKs baseadas em RSA gerenciadas por você
O SDK fornece a implementação padrão Rivest-Shamir-Adleman (RSA). Ao fornecer uma CMK, passe a chave pública e a chave privada para o SDK.
-
CMKs personalizadas
Caso o método de CMK baseada em RSA não atenda aos seus requisitos, implemente a criptografia e a descriptografia usando CMKs personalizadas.
Use esses métodos de criptografia para evitar vazamentos e proteger seus dados no cliente. Mesmo em caso de vazamento, terceiros não conseguirão descriptografar as informações.
Para obter mais informações sobre os princípios da criptografia no lado do cliente no OSS, consulte Client-side encryption no Guia do Usuário do OSS.
Para utilizar a criptografia no lado do cliente, crie uma instância do cliente de criptografia e chame as operações da API relacionadas. O sistema criptografa e descriptografa seus objetos automaticamente durante a requisição.
class EncryptionClient:
...
def __init__(self,client: Client, master_cipher: MasterCipher, decrypt_master_ciphers: Optional[List[MasterCipher]] = None)
Parâmetros da requisição
|
Parâmetro |
Tipo |
Descrição |
|
client |
*Client |
Uma instância de cliente sem criptografia. |
|
master_cipher |
MasterCipher |
A instância de CMK para criptografar e descriptografar chaves de dados. |
|
decrypt_master_ciphers |
List[MasterCipher] |
A instância de CMK para descriptografar chaves de dados. |
A tabela a seguir lista as operações fornecidas pelo EncryptionClient:
|
Operação básica |
Descrição |
|
get_object_meta |
Consulta os cabeçalhos de metadados HTTP padrão do objeto. |
|
head_object |
Consulta todas as informações de metadados do objeto. |
|
get_object |
Baixa e descriptografa o objeto. |
|
put_object |
Envia e criptografa o objeto. |
|
initiate_multipart_upload |
Inicia um upload multipart e o contexto de criptografia multipart (EncryptionMultiPartContext). |
|
upload_part |
Inicia um upload multipart e executa a criptografia automaticamente. Ao chamar a operação da API, defina o contexto para criptografia no upload multipart. |
|
complete_multipart_upload |
Combina todas as partes em um objeto completo após o envio de todas as partes. |
|
abort_multipart_upload |
Cancela uma tarefa de upload multipart e exclui todas as partes enviadas por essa tarefa. |
|
list_parts |
Lista todas as partes enviadas pela tarefa de upload multipart. |
Use CMKs baseadas em RSA
Use uma CMK baseada em RSA para criptografar objetos em uploads simples e descriptografar objetos em downloads simples
Use uma CMK baseada em RSA para criptografar um objeto em upload multipart
Use CMKs personalizadas
Use uma CMK personalizada para criptografar objetos em uploads simples e descriptografar objetos em downloads simples
Referências
Para obter mais informações sobre os princípios da criptografia no lado do cliente no OSS, consulte Client-side encryption.
Para obter mais informações sobre as operações de criptografia no lado do cliente no OSS SDK for Python V2, consulte o Guia de operação.
Para o código de exemplo completo de criptografia e descriptografia de objetos em uploads e downloads simples com CMK baseada em RSA, consulte o Exemplo do GitHub.
Para o código de exemplo completo de criptografia e descriptografia de objetos em uploads e downloads simples com CMK baseada em KMS, consulte o Exemplo do GitHub.