Todos os produtos
Search
Central de documentação

MaxCompute:ROTATE_WRAPPED_KEYSET

Última atualização: Sep 08, 2026

O MaxCompute integra-se ao Key Management Service (KMS) para gerenciar chaves. Este tópico descreve como usar a função ROTATE_WRAPPED_KEYSET para descriptografar um keyset encapsulado, rotacionar chaves e criptografar dados com uma nova chave.

Informações básicas e pré-requisitos

Use o MaxCompute em conjunto com o KMS para gerenciar chaves. Gere um keyset encapsulado criptografando um keyset com base em uma chave do KMS. A função ROTATE_WRAPPED_KEYSET usa uma nova chave do KMS e um novo algoritmo de chave para recriptografar um keyset encapsulado criado pela função NEW_WRAPPED_KEYSET. Diferentemente da função REWRAP_KEYSET, a função ROTATE_WRAPPED_KEYSET permite adotar um novo algoritmo durante a recriptografia.

Antes de usar a função ROTATE_WRAPPED_KEYSET, verifique se os seguintes pré-requisitos foram atendidos:

  • Gere um keyset encapsulado usando a função NEW_WRAPPED_KEYSET. Para mais informações, consulte NEW_WRAPPED_KEYSET.

  • Crie uma chave do KMS e obtenha o ARN da chave especificado por kms_cmk_arn. Conceda permissões a uma função do RAM para usar a nova chave.

Sintaxe

binary ROTATE_WRAPPED_KEYSET(string <kms_cmk_arn> , string <role-arn>, string <wrapped_keyset>,string <key_type> [,string description,[string <role_chain>]])

Parâmetros

  • kms_cmk_arn: obrigatório. Define o ARN da chave mestra do cliente (CMK) do KMS usada para recriptografar o keyset encapsulado. O valor segue o formato 'acs:kms:<RegionId>:<UserId>:key/<CmkId>', onde RegionId indica o ID da região, UserId o ID do usuário e CmkId o ID da CMK. Obtenha o ARN na página Detalhes da Chave no console do KMS.

  • role_arn: obrigatório. Especifica o ARN da função do RAM que possui permissões tanto na chave antiga quanto na nova do KMS. O formato do valor é 'acs:ram:${<userAID>}:role/${<roleName>}', sendo userAID o ID do usuário e roleName o nome da função.

  • wrapped_keyset: obrigatório. Indica o keyset encapsulado a ser recriptografado.

  • key_type: obrigatório. Determina o tipo de algoritmo da chave no novo keyset gerado. Valores válidos: AES-GCM-256, AES-SIV-CMAC-128 e AES-SIV-CMAC-256.

  • description: opcional. Fornece uma descrição para a chave.

  • role_chain: opcional.

    Define a cadeia de funções para autorização do usuário. O valor deve seguir o padrão 'acs:ram:<userAID>:role/<roleName2>,acs:ram:<userBID>:role/<roleName3>},...'. Cadeias de funções permitem invocar keysets encapsulados entre diferentes contas da Alibaba Cloud.

Valor retornado

Retorna um keyset encapsulado do tipo BINARY. Se necessário, use a função HEX para converter esse resultado para o tipo STRING, conforme sua necessidade de negócio. Consulte HEX para detalhes sobre a função HEX.

Exemplos

Nota

Execute o código de exemplo abaixo contendo variáveis no editor de código ou insira as variáveis diretamente na instrução SQL. O MaxCompute não oferece suporte a escopo de variáveis entre instruções SQL distintas.

  • Recriptografe um keyset encapsulado.

    @kms_resource_keyId := 'acs:kms:${<RegionId>}:${<UserId>}:key/${<CmkId>}';
    @role_arn := 'acs:ram:${<UserId>}:role/${<roleName>}';
    @origin_key := unhex('<wrapped_keyset>');
    select hex(ROTATE_WRAPPED_KEYSET(@kms_resource_keyId, @role_arn, @origin_key, 'AES-GCM-256', 'hello world'));
  • Recriptografe um keyset encapsulado e permita que outras funções o invoquem.

    @kms_resource_keyId := 'acs:kms:${<RegionId>}:${<UserId>}:key/${<CmkId>}';
    @role_arn := 'acs:ram:${<UserId>}:role/${<roleName>}';
    @origin_key := unhex('<wrapped_keyset>');
    @role_chain := 'acs:ram:${<UserAId>}:role/${<roleName2>},acs:ram:${<UserBId>}:role/${<roleName3>}';
    select hex(ROTATE_WRAPPED_KEYSET(@kms_resource_keyId, @role_arn, @origin_key, 'AES-GCM-256', 'hello world', @role_chain));