Aracılığıyla paylaş


Gizli dizi yönetimi

Bazen verilere erişim için, JDBC aracılığıyla dış veri kaynaklarının kimliğini doğrulamanız gerekir. Kimlik bilgilerinizi doğrudan not defterine girmek yerine Azure Databricks gizli dizilerini kullanarak kimlik bilgilerinizi depolayabilir ve bunlara not defterlerinde ve işlerde başvurabilirsiniz. Bu makalede Azure Databricks gizli dizilerine genel bir bakış sağlanır.

Gizli dizilere genel bakış

Gizli dizileri yapılandırmak ve kullanmak için:

  1. Gizli dizi kapsamı oluşturun. Gizli dizi kapsamı, bir adla tanımlanan gizli dizi koleksiyonudur.
  2. Gizli dizileri kapsama ekleme
  3. Gizli dizi kapsamında izinler atayın.
  4. Databricks Yardımcı Programlarını kullanarak gizli dizilere erişin, bkz . Gizli dizi yardımcı programı (dbutils.secrets).

İş akışlarınızda gizli dizileri kullanma hakkında uçtan uca bir örnek için bkz . Öğretici: Databricks gizli dizisi oluşturma ve kullanma. Spark yapılandırma özelliğinde veya ortam değişkeninde gizli dizi kullanmak için bkz . Spark yapılandırma özelliğinde veya ortam değişkeninde gizli dizi kullanma.

Uyarı

Yöneticiler, gizli dizi oluşturucuları ve izin verilen kullanıcılar Azure Databricks gizli dizilerini okuyabilir. Databricks, not defterlerinde görüntülenebilen gizli değerleri sansürlemek için çaba gösterse de, bu tür kullanıcıların gizli değerleri okumasını engellemek mümkün değildir. Bkz. Gizli dizi yeniden eylem.

Gizli dizi kapsamlarını yönetme

Gizli dizi kapsamı, bir adla tanımlanan gizli dizi koleksiyonudur. Databricks, gizli kapsamların kişiler yerine rollere veya uygulamalara hizalanması önerilir.

İki tür gizli dizi kapsamı vardır:

  • Azure Key Vault destekli: Azure Key Vault destekli gizli dizi kapsamlarını kullanarak Azure Key Vault'ta depolanan gizli dizilere başvurabilirsiniz. Azure Key Vault destekli gizli dizi kapsamı, Key Vault için salt okunur bir arabirimdir. Azure'da Azure Key Vault destekli gizli dizi kapsamlarında gizli dizileri yönetmeniz gerekir.
  • Databricks destekli: Databricks destekli gizli dizi kapsamı, Azure Databricks tarafından sahip olunan ve yönetilen şifrelenmiş bir veritabanında depolanır.

Gizli kapsam oluşturduktan sonra, kullanıcılara gizli kapsamları okuma, yazma ve yönetme erişimi sağlamak için izinler atayabilirsiniz.

Azure Key Vault destekli gizli dizi kapsamı oluşturma

Bu bölümde, Azure portalını ve Azure Databricks çalışma alanı kullanıcı arabirimini kullanarak Azure Key Vault destekli gizli dizi kapsamının nasıl oluşturulacağı açıklanmaktadır. Databricks CLI'yi kullanarak Azure Key Vault destekli gizli dizi kapsamı da oluşturabilirsiniz.

Gereksinimler

  • Bir Azure anahtar kasası örneğine sahip olmanız gerekir. Anahtar kasası örneğiniz yoksa Azure portalını kullanarak Key Vault oluşturma başlığındaki yönergeleri izleyin.
  • Gizli dizi kapsamını yedeklemek için kullanmak istediğiniz Azure anahtar kasası örneğinde Key Vault Katkıda Bulunanı, Katkıda Bulunanı veya Sahip rolüne sahip olmanız gerekir.

Not

Azure Key Vault destekli gizli dizi kapsamı oluşturmak için, Azure Databricks hizmetine daha önce anahtar kasasına erişim verilmiş olsa bile Azure anahtar kasası örneğinde Katkıda Bulunan veya Sahip rolü gerekir.

Anahtar kasası Azure Databricks çalışma alanından farklı bir kiracıda varsa, gizli dizi kapsamını oluşturan Azure AD kullanıcısının anahtar kasasının kiracısında hizmet sorumluları oluşturma izni olmalıdır. Aksi takdirde aşağıdaki hata oluşur:

Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}

Azure Databricks için Azure anahtar kasası örneğinizi yapılandırma

  1. Azure Portal'da oturum açın, Azure anahtar kasası örneğini bulun ve seçin.

  2. Ayarlar'ın altında Access yapılandırma sekmesine tıklayın.

  3. İzin modeli'i Vault erişim ilkesiolarak ayarlayın.

    Not

    Azure Key Vault destekli bir gizli kapsam rolü oluşturmak, anahtar kasası erişim ilkelerini kullanarak Azure Databricks hizmetinin uygulama kimliğine 'Al' ve 'Listele' izinleri verir. Azure rol tabanlı erişim denetimi izin modeli Azure Databricks ile desteklenmez.

  4. Ayarlaraltında, seçeneğini seçin.

  5. Güvenlik duvarları ve sanal ağlarErişime izin ver:belirli sanal ağlardan ve IP adreslerinden genel erişime izin ver olarak ayarlayın.

    Özel Durum'un altında Güvenilen Microsoft hizmetleri bu güvenlik duvarını atlamasına izin ver'i işaretleyin.

    Not

    Ayrıca Erişime izin ver:tüm ağlardan genel erişime izin ver olarak ayarlayabilirsiniz.

Azure Key Vault destekli gizli dizi kapsamı oluşturma

  1. Şuraya git: https://<databricks-instance>#secrets/createScope . değerini Azure Databricks dağıtımınızın çalışma alanı URL'si<databricks-instance>değiştirin. Bu URL büyük/küçük harfe duyarlıdır. Örneğin, scope içinde createScope büyük harf Skullanmalıdır.

    Kapsam oluşturma

  2. Gizli dizi kapsamının adını girin. Gizli dizi kapsam adları büyük/küçük harfe duyarlı değildir.

  3. Yetkilendirmeyi Yönet seçeneğinde, Oluşturucu veya Tüm çalışma alanı kullanıcıları seçeneklerini seçerek gizli kapsamda hangi kullanıcıların YÖNET iznine sahip olduğunu belirtin.

    YÖNET izni, kullanıcıların kapsam dahilinde okuma ve yazma yapmalarına ve izinleri tanımalarına olanak tanır. Hesabınızın Oluşturucu'yı seçebilmesi için Premium plana sahip olması gerekir.

  4. DNS Adını (örneğin, https://databrickskv.vault.azure.net/) ve Kaynak Kimliğini girin, örneğin:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Bu özellikler, Azure portalınızdaki bir Azure Key Vault'un Ayarlar > Özellikleri sekmesinden kullanılabilir.

  5. Oluştur’a tıklayın.

  6. Kapsamın başarıyla oluşturulduğunu doğrulamak için Databricks CLIdatabricks secrets list-scopes komutunu kullanın.

Databricks destekli gizli dizi kapsamı oluşturma

Bu bölümde, Databricks CLI (sürüm 0.205 ve üzeri) kullanılarak gizli dizi kapsamının nasıl oluşturulacağı açıklanmaktadır. Gizli Diziler API'sini de kullanabilirsiniz.

Gizli dizi kapsamı adları:

  • Çalışma alanı içinde benzersiz olmalıdır.
  • Alfasayısal karakterler, tireler, alt çizgiler, @ve noktalardan oluşmalıdır ve 128 karakteri aşamaz.
  • Büyük/küçük harfe duyarsız.

Gizli dizi kapsamı adları hassas değildir ve çalışma alanı içindeki tüm kullanıcılar tarafından okunabilir.

Databricks CLI kullanarak kapsam oluşturmak için:

databricks secrets create-scope <scope-name>

Varsayılan olarak kapsamlar, kapsamı oluşturan kullanıcı için YÖNET izniyle oluşturulur. Databricks destekli bir gizli dizi kapsamı oluşturduktan sonra, gizli diziler ekleyebilirsiniz.

Gizli kapsamları listele

CLI kullanarak bir çalışma alanında var olan kapsamları listelemek için:

databricks secrets list-scopes

Ayrıca Gizli Kapsamlar API'sinikullanarak gizli kapsamları listeleyebilirsiniz.

Gizli dizi kapsamını silme

Gizli dizi kapsamının silinmesi, kapsama uygulanan tüm gizli dizileri ve ACL'leri siler. CLI kullanarak bir kapsamı silmek için aşağıdakileri çalıştırın:

databricks secrets delete-scope <scope-name>

Gizli Diziler API'sini kullanarak gizli dizi kapsamını da silebilirsiniz.

Gizli dizileri yönetme

Gizli dizi, gizli dizi kapsamında benzersiz bir anahtar adı kullanarak hassas malzemeleri depolayan bir anahtar-değer çiftidir.

Bu bölümde, Databricks CLI (sürüm 0.205 ve üzeri) kullanılarak gizli dizi kapsamının nasıl oluşturulacağı açıklanmaktadır. Gizli Diziler API'sini de kullanabilirsiniz. Gizli dizi adları büyük/küçük harfe duyarlı değildir.

Gizli anahtar oluşturma

Gizli dizi oluşturma yöntemi, Azure Key Vault destekli kapsam mı yoksa Databricks destekli kapsam mı kullandığınıza bağlıdır.

Azure Key Vault destekli kapsamda gizli dizi oluşturma

Azure Key Vault'ta bir gizli dizi oluşturmak için Azure portalını veya Azure Set Secret REST API'sini kullanın. Örnek için bkz . 4. Adım: İstemci gizli dizisini Azure Key Vault'a ekleme.

Azure Key Vault

Databricks destekli kapsamda gizli dizi oluşturma

Bu bölümde, Databricks CLI (sürüm 0.205 ve üzeri) kullanarak veya Python içinDatabricks SDK'sını kullanarak bir not defterinde nasıl gizli dizi oluşturulacağı açıklanır. Gizli Diziler API'sini de kullanabilirsiniz. Gizli dizi adları büyük/küçük harfe duyarlı değildir.

Databricks CLI

Databricks destekli bir kapsamda gizli dizi oluşturduğunuzda, gizli dizi değerini üç yoldan biriyle belirtebilirsiniz:

  • –string-value bayrağını kullanarak değeri dize olarak belirtin.
  • Etkileşimli olarak istendiğinde gizli diziyi girin (tek satırlı gizli diziler).
  • Standart girişi (çok satırlı gizli diziler) kullanarak gizli diziyi geçirin.

Örneğin:

databricks secrets put-secret --json '{
  "scope": "<scope-name>",
  "key": "<key-name>",
  "string_value": "<secret>"
}'

Çok satırlı gizli dizi oluşturuyorsanız, standart girişi kullanarak gizli diziyi geçirebilirsiniz. Örneğin:

(cat << EOF
this
is
a
multi
line
secret
EOF
) | databricks secrets put-secret <scope-name> <key-name>

Python için Databricks SDK'sı

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

w.secrets.put_secret("<secret_scope>","<key-name>",string_value ="<secret>")

Gizli diziyi okuma

Not defterindeki veya işteki sırları okumak için Secrets yardımcı programını (dbutils.secrets)kullanmanız gerekir. Örneğin:

password = dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")

Gizli bilgileri listele

Belirli bir kapsamdaki gizli bilgileri listelemek için:

databricks secrets list-secrets <scope-name>

Yanıt, gizli dizilerin anahtar adları gibi gizli dizilerle ilgili meta veri bilgilerini görüntüler. Bu meta verileri listelemek için bir not defterinde veya işte Sırlar yardımcı programını (dbutils.secrets) kullanırsınız. Örneğin:

dbutils.secrets.list('my-scope')

Gizli anahtarı silme

Databricks CLI ile bir kapsamdan gizli dizi silmek için:

databricks secrets delete-secret <scope-name> <key-name>

Gizli Diziler API'sini de kullanabilirsiniz.

Azure Key Vault tarafından yönetilen bir kapsamdan gizli dizi silmek için Azure SetSecret REST API'sini veya Azure portalı kullanıcı arabirimini kullanın.

Gizli dizi kapsamı izinlerini yönetme

Varsayılan olarak, gizli dizi kapsamlarını oluşturan kullanıcıya YÖNET izni verilir. Bu, kapsam oluşturucusunun kapsamdaki gizli dizileri okumasına, kapsama gizli diziler yazmasına ve kapsamdaki izinleri yönetmesine olanak tanır.

Not

Gizli dizi ACL'leri kapsam düzeyindedir. Azure Key Vault destekli kapsamlar kullanıyorsanız, kapsama erişim izni verilen kullanıcılar Azure Key Vault'taki tüm gizli dizilere erişebilir. Erişimi kısıtlamak için ayrı Azure anahtar kasası örnekleri kullanın.

Bu bölümde, Databricks CLI (sürüm 0.205 ve üzeri) kullanılarak gizli dizi erişim denetiminin nasıl yönetileceğini açıklar. Gizli Diziler API'sini de kullanabilirsiniz. Gizli dizi izin düzeyleri için bkz. Gizli dizi ACL'leri

Gizli kapsamda bir kullanıcıya izin verme

Databricks CLI kullanarak gizli kapsam üzerinde bir kullanıcıya izin atamak için:

databricks secrets put-acl <scope-name> <principal> <permission>

Zaten uygulanmış izni olan bir sorumlu için put isteği yapmak, var olan izin düzeyinin üzerine yazar.

alanı principal mevcut bir Azure Databricks sorumlusunu belirtir. Kullanıcı kendi e-posta adresi, değerini kullanan applicationId bir hizmet sorumlusu ve grup adı kullanılarak bir grup kullanılarak belirtilir. Daha fazla bilgi için bkz . Sorumlu.

Gizli dizi kapsamı izinlerini görüntüleme

Belirli bir gizli dizi kapsamının tüm gizli dizi kapsamı izinlerini görüntülemek için:

databricks secrets list-acls <scope-name>

Belirli bir gizli kapsam için bir yetkiliye uygulanan gizli kapsam izinlerini almak için:

databricks secrets get-acl <scope-name> <principal>

Verilen sorumlu ve kapsam için hiçbir ACL yoksa, bu istek başarısız olur.

Gizli dizi kapsamı iznini silme

Belirli bir gizli dizi kapsamı için sorumluya uygulanan gizli dizi kapsamı iznini silmek için:

databricks secrets delete-acl <scope-name> <principal>

Gizli dizi yeniden eylem

Kimlik bilgilerini Azure Databricks gizli dizileri olarak depolamak, not defterlerini ve işleri çalıştırdığınızda kimlik bilgilerinizi korumanızı kolaylaştırır. Ancak, standart çıkış arabelleklerine yanlışlıkla gizli dizi yazdırmak veya değişken ataması sırasında değeri görüntülemek kolaydır.

Bunu önlemek için Azure Databricks, dbutils.secrets.get()kullanılarak okunan tüm gizli değerleri gizler. Not defteri hücresi çıktısında görüntülendiği zaman, gizli değerler [REDACTED]ile değiştirilir.

Örneğin, dbutils.secrets.get() kullanarak bir değişkene gizli bir değer atar ve sonra yazdırırsanız, o değişken [REDACTED]ile değiştirilir.

Uyarı

Not defteri hücre çıkışı için gizli dizi redaksiyon yalnızca değişmez değerlere uygulanır. Gizli dizi redaksiyon işlevi, gizli dizi değişmez değerinin kasıtlı ve rastgele dönüşümlerini engellemez. Gizli dizilerin düzgün denetlendiğinden emin olmak için erişim denetimi listelerini kullanarak komutları çalıştırma izinlerini sınırlamanız gerekir. Bu, paylaşılan not defteri bağlamlarına yetkisiz erişimi engeller.