O MaxCompute integra-se ao Key Management Service (KMS) para gerenciamento de chaves. Este tópico descreve a função REWRAP_KEYSET. Essa função recriptografa um keyset encapsulado com uma chave do KMS especificada.
Contexto
O MaxCompute integra-se ao KMS para gerenciar chaves. Uma chave do KMS criptografa um keyset gerado para criar um keyset encapsulado. A função REWRAP_KEYSET recriptografa um keyset encapsulado, originalmente criado pela função NEW_WRAPPED_KEYSET, com uma nova chave do KMS.
Pré-requisitos
Antes de usar a função REWRAP_KEYSET, conclua as tarefas a seguir:
Tenha um keyset encapsulado gerado pela função
NEW_WRAPPED_KEYSET. Para mais informações, consulte NEW_WRAPPED_KEYSET.Crie uma nova chave do KMS e obtenha seu Alibaba Cloud Resource Name (ARN) (kms_cmk_arn). Conceda à função do RAM permissão para usar a nova chave. Para mais informações, consulte Enable KMS and complete the configuration.
Sintaxe
binary REWRAP_KEYSET(string <kms_cmk_arn> , string <role-arn>, string <wrapped_keyset>, [string <role_chain>])
Parâmetros
-
kms_cmk_arn: Obrigatório.
ARN da chave mestra do cliente (CMK) do KMS usada para recriptografar o keyset. O formato é
'acs:kms:<RegionId>:<UserId>:key/<CmkId>'. O ARN contém o ID da região, o ID do usuário e o ID da CMK. Obtenha o ARN na página de detalhes da chave no console do Key Management Service. Para mais informações, consulte Enable KMS and complete the configuration. -
role_arn: Obrigatório.
ARN da função do RAM com permissões nas chaves antiga e nova do KMS. Essa função deve ser concedida ao MaxCompute. O formato é
'acs:ram:${<userAID>}:role/${<roleName>}'. O ARN contém o ID do usuário e o nome da função. Para obter o ARN, consulte Enable KMS and complete the configuration. -
wrapped_keyset: Obrigatório.
Keyset encapsulado a ser recriptografado.
-
role_chain: Opcional.
Especifica a cadeia de funções para autorização do usuário. O valor do parâmetro segue o formato
'acs:ram:<userAID>:role/<roleName2>,acs:ram:<userBID>:role/<roleName3>},...'. Use cadeias de funções para chamar keysets encapsulados entre contas da Alibaba Cloud.
Valor de retorno
Retorna um keyset encapsulado do tipo BINARY. Se necessário, use a função HEX para converter o keyset encapsulado do tipo BINARY em um keyset do tipo STRING. Para mais informações sobre a função HEX, consulte HEX.
Exemplos de uso
Execute o código de exemplo a seguir, que contém variáveis, no editor de código ou insira as variáveis diretamente na instrução SQL. O MaxCompute não oferece suporte a escopos de variáveis entre instruções SQL.
-
Recriptografar um keyset encapsulado:
SELECT hex(REWRAP_KEYSET('acs:kms:cn-hangzhou:1**************7:key/key-hzz******************', 'acs:ram::1**************7:role/kms', unhex('<wrapped_keyset>'))); -
Recriptografar um keyset encapsulado e permitir que funções de outras contas da Alibaba Cloud o chamem:
SELECT hex(REWRAP_KEYSET('acs:kms:cn-hangzhou:1**************7:key/key-hzz******************', 'acs:ram:${<UserId>}:role/${<roleName>}', unhex('<wrapped_keyset>'), 'acs:ram:${<UserAId>}:role/${<roleName2>},acs:ram:${<UserBId>}:role/${<roleName3>}')));