MaxCompute s'intègre à Key Management Service (KMS) pour la gestion des clés. Cette rubrique décrit la fonction REWRAP_KEYSET, qui rechiffre un jeu de clés encapsulé avec une clé KMS spécifiée.
Contexte
MaxCompute s'intègre à KMS pour gérer les clés. Une clé KMS chiffre un jeu de clés généré afin de créer un jeu de clés encapsulé. La fonction REWRAP_KEYSET rechiffre avec une nouvelle clé KMS un jeu de clés encapsulé précédemment généré par la fonction NEW_WRAPPED_KEYSET.
Prérequis
Avant d'utiliser la fonction REWRAP_KEYSET, effectuez les tâches suivantes :
Disposez d'un jeu de clés encapsulé généré par la fonction
NEW_WRAPPED_KEYSET. Pour plus d'informations, consultez la rubrique NEW_WRAPPED_KEYSET.Créez une nouvelle clé KMS et obtenez son Alibaba Cloud Resource Name (ARN) (kms_cmk_arn). Accordez au rôle RAM l'autorisation d'utiliser la nouvelle clé. Pour plus d'informations, consultez la rubrique Enable KMS and complete the configuration.
Syntaxe
binary REWRAP_KEYSET(string <kms_cmk_arn> , string <role-arn>, string <wrapped_keyset>, [string <role_chain>])
Paramètres
-
kms_cmk_arn : Obligatoire.
ARN de la clé maître client (CMK) KMS utilisée pour rechiffrer le jeu de clés. Le format est
'acs:kms:<RegionId>:<UserId>:key/<CmkId>'. L'ARN contient l'ID de région, l'ID d'utilisateur et l'ID de la CMK. Récupérez l'ARN depuis la page des détails de la clé dans la console Key Management Service. Pour plus d'informations, consultez la rubrique Enable KMS and complete the configuration. -
role_arn : Obligatoire.
ARN du rôle RAM disposant des autorisations sur les anciennes et nouvelles clés KMS. Ce rôle doit être accordé à MaxCompute. Le format est
'acs:ram:${<userAID>}:role/${<roleName>}'. L'ARN contient l'ID d'utilisateur et le nom du rôle. Pour obtenir l'ARN, consultez la rubrique Enable KMS and complete the configuration. -
wrapped_keyset : Obligatoire.
Jeu de clés encapsulé à rechiffrer.
-
role_chain : Facultatif.
Chaîne de rôles pour l'autorisation des utilisateurs. La valeur du paramètre suit le format
'acs:ram:<userAID>:role/<roleName2>,acs:ram:<userBID>:role/<roleName3>},...'. Les chaînes de rôles permettent d'appeler des jeux de clés encapsulés entre différents comptes Alibaba Cloud.
Valeur de retour
La fonction renvoie un jeu de clés encapsulé de type BINARY. Utilisez la fonction HEX pour convertir ce jeu de clés BINARY en type STRING, selon vos besoins métier. Pour plus d'informations sur la fonction HEX, consultez la rubrique HEX.
Exemples d'utilisation
Exécutez l'exemple de code suivant contenant des variables dans l'éditeur de code, ou intégrez les variables directement dans l'instruction SQL. MaxCompute ne prend pas en charge les portées de variables entre plusieurs instructions SQL.
-
Rechiffrer un jeu de clés encapsulé :
SELECT hex(REWRAP_KEYSET('acs:kms:cn-hangzhou:1**************7:key/key-hzz******************', 'acs:ram::1**************7:role/kms', unhex('<wrapped_keyset>'))); -
Rechiffrer un jeu de clés encapsulé et autoriser les rôles d'autres comptes Alibaba Cloud à l'appeler :
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>}')));