Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
JDBC aracılığıyla dış veri kaynaklarına erişirken genellikle kimlik doğrulaması gerekir. Kimlik bilgilerini doğrudan not defterlerine girmek yerine Databricks gizli dizilerini kullanarak güvenli bir şekilde depolayabilir ve bunlara not defterlerinizde ve işlerinizde başvurabilirsiniz. Bu yaklaşım güvenliği artırır ve kimlik bilgisi yönetimini basitleştirir. Bu sayfa Databricks gizli bilgilerine genel bir bakış sunar.
Uyarı
Databricks, bulut depolamadaki verilere erişimi yapılandırmak için Unity Kataloğu'nu kullanmanızı önerir. Bkz. Unity Kataloğu'nu kullanarak bulut nesne depolamasına bağlanma.
Sırlar özeti
Gizli bilgileri yapılandırmak ve kullanmak için:
- Gizli bir kapsam oluşturun. Bir gizli kapsam, bir adla tanımlanan sırların bir koleksiyonudur.
- Gizli bilgileri kapsama ekleyin.
- Gizli kapsam üzerinde izinler atayın.
- Kodunuzda gizli bilgileri referans alın.
İş akışlarınızda gizli bilgileri nasıl kullanabileceğinize dair uçtan uca bir örnek için Tutorial: Create and use a Databricks secret bölümüne bakın. Spark yapılandırma özelliği veya ortam değişkeninde bir sır kullanmak için, Spark yapılandırma özelliğinde veya ortam değişkeninde bir sır kullanın bölümüne bakın.
Uyarı
Çalışma alanı yöneticileri, gizli dizi oluşturucuları ve izin verilen kullanıcılar Databricks gizli dizilerine erişebilir ve bu gizli dizileri okuyabilir. Databricks, deneme defteri çıktılarındaki gizli değerleri maskelemeye çalışsa da, bu kullanıcıların gizli içerikleri görüntülemesini tamamen engellemek mümkün değildir. Hassas bilgileri korumak için gizli erişim izinlerini her zaman dikkatli bir şekilde atayın.
Gizli kapsamları yönet
Bir gizli kapsam, bir adla tanımlanan sırların bir koleksiyonudur. Databricks, gizli kapsamların kişilere değil, roller veya uygulamalara hizalanmasını önermektedir.
Gizli kapsamın iki türü vardır:
- Azure Anahtar Kasası destekli: Azure Anahtar Kasası destekli gizli kapsamlar kullanarak, Azure Anahtar Kasası'nda depolanan sırları referans alabilirsiniz. Azure Key Vault destekli gizli kapsam, Key Vault'a salt okunur bir arayüzdür. Azure'da, Azure Key Vault tarafından desteklenen gizli alanlardaki sırları yönetmelisiniz.
- Databricks-destekli: Databricks-destekli bir gizli kapsam, Azure Databricks tarafından sahip olunan ve yönetilen şifreli bir veritabanında saklanır.
Gizli dizi kapsamı oluşturduktan sonra, kullanıcılara gizli dizi kapsamlarını okuma, yazma ve yönetme erişimi vermek için izinler atayabilirsiniz.
Azure Key Vault destekli bir gizli alan oluşturun
tr-TR: Bu bölüm, Azure portalı ve Azure Databricks çalışma alanı kullanıcı arayüzünü kullanarak Azure Key Vault destekli bir gizli alanın nasıl oluşturulacağını açıklar. Ayrıca Databricks CLI kullanarak bir Azure Key Vault destekli gizli alan oluşturabilirsiniz.
Gereksinimler
- Azure anahtar kasası örneğine sahip olmalısınız. Anahtar kasası örneğiniz yoksa, Azure portalını kullanarak bir Anahtar Kasası Oluşturun yönergelerini izleyin.
- Kullanmak istediğiniz gizli kapsamı desteklemek için Azure anahtar kasası örneğinde, Key Vault Contributor, Contributor veya Owner rolüne sahip olmalısınız.
Uyarı
Azure Key Vault destekli bir gizli kapsam oluşturmak, daha önce Azure Databricks hizmetine anahtar kasasına erişim izni verilmiş olsa bile, Azure anahtar kasası örneğinde Katkıda Bulunan veya Sahip rolünü gerektirir.
Anahtar kasası Azure Databricks çalışma alanından farklı bir kiracıya aitse, 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
Azure Portal'da oturum açın, Azure anahtar kasası örneğini bulun ve seçin.
Ayarlar altında, Erişim yapılandırması sekmesine tıklayın.
İzin modeli'i Vault erişim ilkesiolarak ayarlayın.
Uyarı
Azure Key Vault destekli gizli dizi kapsamı rolü oluşturmak, anahtar kasası erişim ilkelerini kullanarak Azure Databricks hizmetinin uygulama kimliğine Alma ve Listeleme izinleri verir. Azure rol tabanlı erişim kontrolü izin modeli, Azure Databricks ile desteklenmemektedir.
Ayarlaraltında, Ağseçeneğini seçin.
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.
İstisna altında, Güvenilir Microsoft hizmetlerinin bu güvenlik duvarını aşmasına izin ver seçeneğini işaretleyin.
Uyarı
Şunlarla erişime izin ver ayarını da yapabilirsiniz: Şuradan erişime izin ver:Tüm ağlardan genel erişime izin ver.
Azure Key Vault destekli gizli kapsam oluşturma
https://<databricks-instance>#secrets/createScope'e gidin. Azure Databricks dağıtımınızın<databricks-instance>ile 'yi değiştirin. Bu URL büyük/küçük harf duyarlıdır. Örneğin,scopeiçindekicreateScope, büyük harfleSkullanmalıdır.
Gizli kapsamın adını girin. Gizli kapsam adları büyük/küçük harf duyarlılığı göstermemektedir.
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 Premium plan'e sahip olması gerekir ki Creator seçilebilsin.
DNS Adını (örneğin, ) ve Kaynak Kimliğini girin, örneğin:
/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKVBu özellikler, Azure portalınızdaki bir Azure Key Vault'un Ayarlar > Özellikleri sekmesinden kullanılabilir.
Oluştur'utıklayın.
Başarılı bir şekilde oluşturulduğunu doğrulamak için Databricks CLI
databricks secrets list-scopeskomutunu kullanın.
Databricks destekli bir gizli kapsam oluşturun
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. Ayrıca Secrets API'yi kullanabilirsiniz.
Gizli kapsam adları
- Bir çalışma alanı içinde benzersiz olmalı.
- Alfasayısal karakterler, kısa çizgiler, alt çizgiler,
@ve noktalar içermeli ve 128 karakteri geçmemelidir. - Büyük/küçük harfe duyarsızdır.
Gizli kapsam adları, hassas olmayan olarak değerlendirilir ve çalışma alanı içindeki tüm kullanıcılar tarafından okunabilir.
Databricks CLI kullanarak bir kapsam oluşturmak için:
databricks secrets create-scope <scope-name>
Varsayılan olarak, kapsamlar, kapsamı oluşturan kullanıcı için YÖNETİM izniyle oluşturulur. Bir Databricks destekli gizli kapsam oluşturduktan sonra, ona gizli bilgiler 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.
Bir gizli kapsamı sil
Bir gizli kapsamı silmek, kapsama uygulanan tüm gizleri ve ACL'leri siler. CLI kullanarak bir kapsam silmek için, aşağıdakini çalıştırın:
databricks secrets delete-scope <scope-name>
Gizli bir kapsamı Sırlar API'si kullanarak da silebilirsiniz.
Sırları Yönet
Gizli bir bilgi, gizli bir kapsam içinde benzersiz bir anahtar adı kullanarak hassas materyali 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. Ayrıca Secrets API'yi kullanabilirsiniz. Gizli adlar büyük/küçük harf duyarsızdır.
Bir sır oluştur.
Bir sır 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 ile desteklenen bir kapsamda bir gizli anahtar oluşturun
Azure Key Vault'ta bir gizli dizi oluşturmak için Azure portalını veya Azure Set Secret REST API'sini kullanın. Bir örnek için, bkz. Adım 4: İstemci gizliliğini Azure Anahtar Kasası'na ekleyin.
Databricks destekli bir kapsamda bir gizli anahtar oluşturun.
Bu bölüm, Databricks CLI (sürüm 0.205 ve üzeri) veya bir not defterinde Databricks SDK for Python kullanarak nasıl gizli bir bilgi oluşturulacağını açıklar. Ayrıca Secrets API'yi kullanabilirsiniz. Gizli adlar büyük/küçük harf duyarsızdır.
Databricks Komut Satırı Arayüzü (CLI)
Databricks destekli bir kapsamda bir gizli anahtar oluşturduğunuzda, gizli değeri üç şekilde belirtebilirsiniz:
- Değeri –string-value bayrağını kullanarak bir dize olarak belirtin.
- İstendiğinde etkileşimli olarak (tek satırlık gizli bilgileri) girin.
- Sırrı standart girdi kullanarak iletin (çok satırlı sırlar).
Örneğin:
databricks secrets put-secret --json '{
"scope": "<scope-name>",
"key": "<key-name>",
"string_value": "<secret>"
}'
Eğer çok satırlı bir gizli bilgi oluşturuyorsanız, bu gizli bilgiyi standart giriş kullanarak iletebilirsiniz. Ö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>")
Bir sırrı oku
Bu bölüm, Databricks CLI (sürüm 0.205 ve üstü) kullanarak veya bir defterde Secrets utility (dbutils.secrets) kullanarak bir gizliyi nasıl okuyacağınızı açıklar.
Databricks Komut Satırı Arayüzü (CLI)
Bir sırrın değerini Databricks CLI kullanarak okumak için, base64 ile kodlanmış değeri çözmeniz gerekmektedir. Değerini ayıklamak için jq ve kodunu çözmek için base --decode kullanabilirsiniz.
databricks secrets get-secret <scope-name> <key-name> | jq -r .value | base64 --decode
Secrets aracı (dbutils.secrets)
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, sırların anahtar adları gibi sırlarla 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')
Bir sırrı sil
Databricks CLI ile bir kapsamdan bir sırrı silmek için:
databricks secrets delete-secret <scope-name> <key-name>
Ayrıca Secrets API'yi kullanabilirsiniz.
Azure Key Vault tarafından desteklenen bir kapsamdan bir sırrı silmek için, Azure SetSecret REST API'sini ya da Azure portal kullanıcı arayüzünü kullanın.
Gizli kapsam izinlerini yönet
Varsayılan olarak, gizli kapsamları oluşturan kullanıcıya YÖNET izni verilir. Bu, kapsam oluşturucunun kapsam içindeki sırları okumasını, sırları kapsama yazmasını ve kapsam üzerindeki izinleri yönetmesini sağlar.
Uyarı
Gizli ACL'ler, kapsam düzeyindedir. Azure Key Vault destekli kapsamlar kullanıyorsanız, kapsam erişimi verilen kullanıcılar Azure Key Vault'taki tüm sırra erişim sahibi olur. 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. Ayrıca Secrets API'yi kullanabilirsiniz. Gizli izin seviyeleri için Gizli ACL'lere bakın.
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>
Mevcut izin düzeyine sahip bir ana için bir HTTP put isteği yapmak, var olan izin seviyesini değiştirir.
principal alanı, mevcut bir Azure Databricks ilkesini belirtir. Bir kullanıcı, e-posta adresi kullanılarak, bir hizmet sorumlusu applicationId değeri kullanılarak, ve bir grup, grup ismi ile belirtilir. Daha fazla bilgi için Principal kısmına bakın.
Gizli kapsam izinlerini görüntüle
Belirli bir gizli kapsam için tüm gizli 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>
Belirtilen yetkili ve kapsam için bir ACL mevcut değilse, bu istek başarısız olur.
Bir gizli kapsam iznini sil.
Verilen bir gizli kapsam için bir asıl'a uygulanan gizli kapsam iznini silmek için:
databricks secrets delete-acl <scope-name> <principal>
Gizli sansürleme
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, bir sırın standart çıktı tamponlarına yanlışlıkla yazdırılması veya değişken atama sırasında değerin görüntülenmesi kolaydır.
Bunu önlemek için Azure Databricks, dbutils.secrets.get() kullanılarak okunan ve bir Spark yapılandırma özelliğinde referans verilen tüm gizli değerleri sansürler. Görüntülendiğinde, 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ı
Redaction yalnızca literal gizli değerlere uygulanır. Gizli düzenleme işlevi, gizli değerin kasıtlı ve rastgele dönüştürülmesini 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 önler.
SQL'de gizli sansür
Azure Databricks, başvurulan görünümler ve kullanıcı tanımlı işlevler dahil olmak üzere gizli işlevi çağıran tüm SQL DQL (Veri Sorgu Dili) komutlarını gizlemeye çalışır.
secret işlevi kullanıldığında, çıkış mümkün olduğunda [REDACTED] ile değiştirilir. Not defteri düzenlemesi gibi, bu yalnızca sabit değerler için geçerlidir, dönüştürülen veya dolaylı olarak atıfta bulunulan gizli bilgiler için geçerli değildir.
SQL DML (Veri İşleme Dili) komutları için, gizli dizi güvenli olarak kabul edilirse Azure Databricks gizli dizi aramalarına izin verir; örneğin, sha() veya aes_encrypt() gibi bir şifreleme işlevinde sarmalandığında, ham değerlerin şifrelenmemiş olarak depolanmasını engeller.
SQL'de gizli doğrulama
Azure Databricks ayrıca sql DML komutlarını engellemek için doğrulama uygular ve bu da şifrelenmemiş gizli dizilerin tablolara kaydedilmesine neden olabilir. Sorgu çözümleyicisi, hassas bilgilerin düz metin olarak yanlışlıkla depolanmasını önlemeye yardımcı olan bu senaryoları belirlemeye ve önlemeye çalışır.