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:
- Gizli dizi kapsamı oluşturun. Gizli dizi kapsamı, bir adla tanımlanan gizli dizi koleksiyonudur.
- Gizli dizileri kapsama ekleme
- Gizli dizi kapsamında izinler atayın.
- 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
Azure Portal'da oturum açın, Azure anahtar kasası örneğini bulun ve seçin.
Ayarlar'ın altında Access yapılandırma sekmesine tıklayın.
İ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.
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.
Ö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
Ş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çindecreateScope
büyük harfS
kullanmalıdır.Gizli dizi kapsamının adını girin. Gizli dizi kapsam adları büyük/küçük harfe duyarlı değildir.
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.
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.
Oluştur’a tıklayın.
Kapsamın başarıyla oluşturulduğunu doğrulamak için Databricks CLI
databricks 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.
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.