Anahtarları yönetmek için MaxCompute ile Key Management Service (KMS) hizmetini birlikte kullanabilirsiniz. Bu konu, USE_WRAPPED_KEYSET işlevini açıklar. Bu işlev, verileri şifrelemek veya şifresini çözmek amacıyla şifreleme ya da şifre çözme işlevlerinde parametre olarak kullanılan temel bir anahtar kümesine dönüştürmek için sarmalanmış bir anahtar kümesini kullanmanıza olanak tanır.
Arka plan bilgileri ve ön koşullar
Anahtarları yönetmek için MaxCompute ile KMS hizmetini birlikte kullanabilirsiniz. Mevcut bir anahtar kümesini bir KMS anahtarıyla şifreleyerek sarmalanmış bir anahtar kümesi oluşturabilirsiniz. USE_WRAPPED_KEYSET işlevi, NEW_WRAPPED_KEYSET işlevi kullanılarak oluşturulan sarmalanmış bir anahtar kümesini temel bir anahtar kümesine dönüştürür. Temel anahtar kümesi, verileri şifrelemek veya şifresini çözmek için şifreleme veya şifre çözme işlevlerinde parametre olarak kullanılır. Sarmalanmış bir anahtar kümesiyle ilgili bilgileri almak ve bu bilgileri sonraki bakım işlemleri için kaydetmek amacıyla USE_WRAPPED_KEYSET işlevini de kullanabilirsiniz.
USE_WRAPPED_KEYSET işlevini kullanmadan önce aşağıdaki ön koşulların karşılandığından emin olun:
NEW_WRAPPED_KEYSETişlevi kullanılarak bir sarmalanmış anahtar kümesi oluşturulmuş olmalıdır. Daha fazla bilgi için bkz. NEW_WRAPPED_KEYSET.Bir KMS anahtarı oluşturulmuş ve anahtarın Alibaba Cloud Resource Name (ARN) bilgisi alınmış olmalıdır. Anahtar ARN değeri kms_cmk_arn parametresiyle belirtilir. Yeni anahtarı kullanma izni bir RAM rolüne verilmiştir.
Söz dizimi
binary USE_WRAPPED_KEYSET(string <kms_cmk_arn> , string <role-arn>, string <wrapped_keyset> [,string <role_chain>])
Parametreler
kms_cmk_arn: gereklidir. Bu parametre, şifrelemek istediğiniz anahtar kümesinin KMS müşteri ana yönetici anahtarı (CMK) ARN değerini belirtir. Parametre değeri
'acs:kms:<RegionId>:<UserId>:key/<CmkId>'biçimindedir. RegionId bölge kimliğini, UserId kullanıcı kimliğini ve CmkId CMK kimliğini belirtir. ARN bilgisini KMS console üzerindeki Key Details sayfasından alabilirsiniz.role_arn: gereklidir. Bu parametre, KMS üzerinde izinlere sahip olan RAM rolünün ARN değerini belirtir. Rolün MaxCompute tarafından üstlenilmesi gerekir. Parametre değeri
'acs:ram:${<userAID>}:role/${<roleName>}'biçimindedir. userAID kullanıcı kimliğini ve roleName rol adını belirtir.wrapped_keyset: gereklidir. Bu parametre, mevcut bir sarmalanmış anahtar kümesini belirtir.
role_chain: isteğe bağlıdır. Bu parametre, kullanıcı yetkilendirmesi için rol zincirini belirtir. Parametre değeri
'acs:ram:<userAID>:role/<roleName2>,acs:ram:<userBID>:role/<roleName3>},...'biçimindedir. Rol zincirlerini kullanarak farklı Alibaba Cloud hesapları arasında sarmalanmış anahtar kümelerini çağırabilirsiniz.
Dönüş değeri
STRUCT türünde hassas verileri gizlenmiş bir anahtar kümesi döndürülür. İş ihtiyaçlarınıza göre anahtar kümesiyle ilgili alanları elde etmek için get_json_object işlevini kullanabilirsiniz.
Örnekler
Kod düzenleyicide değişkenler içeren aşağıdaki örnek kodu çalıştırabilir veya değişkenleri SQL ifadesine doğrudan ekleyebilirsiniz. MaxCompute, SQL ifadeleri arasında değişken kapsamlarını desteklemez.
Sarmalanmış bir anahtar kümesinin anahtar algoritması bilgilerini alın.
@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>}';
@use_keyset_new := USE_WRAPPED_KEYSET(@kms_resource_keyId, @role_arn, @origin_key, @role_chain);
select get_json_object(get_json_object(use_keyset_new.wrapped_keyset_info,'$.masked_keyset'), '$.key[0].key_meta_data.type');
Aşağıdaki sonuç döndürülür:
+-----+
| _c0 |
+-----+
| AES-GCM-256 |
+-----+