Terraform kullanarak hizmet sorumlusu sağlama
Not
Bunun yerine Azure portalını ve Azure Databricks kullanıcı arabirimini kullanarak Microsoft Entra Id yönetilen hizmet sorumlusu sağlamak için bkz . Hizmet sorumlularını yönetme.
Microsoft Entra Id yönetilen hizmet sorumluları, Azure databricks'in kimlik doğrulaması için de desteklediği Azure kaynakları için yönetilen kimliklerden farklıdır. Azure Databricks kimlik doğrulaması için Microsoft Entra ID yönetilen hizmet sorumluları yerine Azure kaynakları için yönetilen kimliklerin nasıl kullanılacağını öğrenmek için bkz . Azure Databricks otomasyonu için Azure yönetilen kimlikleri kimlik doğrulamasını ayarlama ve kullanma.
Hizmet sorumlusu, betikler, uygulamalar ve CI/CD platformları gibi otomatik araçlara ve sistemlere yönelik bir kimliktir. Databricks, Azure Databricks kullanıcı hesabınız ve kişisel erişim belirteciniz yerine bir hizmet sorumlusu ve OAuth belirteci veya kişisel erişim belirteci kullanmanızı önerir. Avantajlar arasında şunlar bulunmaktadır:
- Bir kullanıcıdan bağımsız olarak kaynaklara erişim verme ve kaynaklara erişimi kısıtlama.
- Kullanıcıların kendi erişim belirteçlerini daha iyi korumasını sağlama.
- Diğer kullanıcıları etkilemeden hizmet sorumlusunu devre dışı bırakma veya silme.
- Herhangi bir hizmet sorumlusunu etkilemeden kuruluştan ayrılan bir kullanıcıyı kaldırma.
Terraform'u kullanarak Azure'da Microsoft Entra ID yönetilen hizmet sorumlusu oluşturmak için bu yönergeleri izleyin, Databricks Terraform sağlayıcısını kullanarak Microsoft Entra ID hizmet sorumlusunu Azure Databricks çalışma alanınıza bağlayın ve ardından isteğe bağlı olarak hizmet sorumlusu için bir Microsoft Entra ID belirteci veya Azure Databricks OAuth belirteci oluşturun.
Gereksinimler
- The Terraform CLI. Bkz. Terraform'ı indirme.
- Azure CLI, komutunu çalıştırarak hedef Microsoft Entra Id (eski adıYla Azure Active Directory) aboneliğinde
az login
oturum açtı. Microsoft Entra ID hizmet sorumlusu kullanarak oturum açmak için bkz . Microsoft Entra ID hizmet sorumlusuyla Azure CLI oturum açma. Azure Databricks kullanıcı hesabı kullanarak oturum açmak için bkz . Azure Databricks kullanıcı hesabıyla Azure CLI oturumu açma.
1. Adım: Hizmet sorumlusunu oluşturma
Microsoft Entra Id yönetilen hizmet sorumlunuz zaten varsa 2. Adım'a geçin.
Terminalinizde boş bir dizin oluşturun ve ardından bu dizine geçin. (Her ayrı Terraform yapılandırma dosyası kümesi kendi dizininde olmalıdır.) Örneğin:
mkdir terraform_azure_service_principal_demo && cd terraform_azure_service_principal_demo
.mkdir terraform_azure_service_principal_demo && cd terraform_azure_service_principal_demo
Bu boş dizinde adlı
main.tf
bir dosya oluşturun. Bu dosyaya aşağıdaki içeriği ekleyin ve dosyayı kaydedin.variable "azure_service_principal_display_name" { description = "A display name for the <entra-service-principal>." type = string } terraform { required_providers { azuread = { source = "hashicorp/azuread" } } } provider "azurerm" { features {} } resource "azuread_application" "this" { display_name = var.azure_service_principal_display_name } resource "azuread_service_principal" "this" { application_id = azuread_application.this.application_id } resource "time_rotating" "month" { rotation_days = 30 } resource "azuread_service_principal_password" "this" { service_principal_id = azuread_service_principal.this.object_id rotate_when_changed = { rotation = time_rotating.month.id } } output "azure_client_id" { description = "The Azure AD service principal's application (client) ID." value = azuread_application.this.application_id } output "azure_client_secret" { description = "The Azure AD service principal's client secret value." value = azuread_service_principal_password.this.value sensitive = true }
Aynı dizinde adlı
terraform.tfvars
bir dosya oluşturun. Aşağıdaki içeriği bu dosyaya ekleyin, aşağıdaki değeri değiştirip dosyayı kaydedin:azure_service_principal_display_name
değerini Microsoft Entra ID hizmet sorumlusunun görünen adıyla değiştirin.
azure_service_principal_display_name = "<A display name for the <entra-service-principal>>"
komutunu çalıştırarak dosyayı içeren
main.tf
çalışma dizininiterraform init
başlatın. Daha fazla bilgi için terraform web sitesindeki Command: init bölümüne bakın.terraform init
komutunu çalıştırarak
terraform validate
yapılandırmada söz dizimi hataları olup olmadığını denetleyin. Daha fazla bilgi için bkz . Terraform web sitesinde Komut: doğrulama .terraform validate
komutunu çalıştırarak
terraform apply
yapılandırmanın istenen durumuna ulaşmak için gereken değişiklikleri uygulayın. Daha fazla bilgi için Terraform web sitesinde Command: apply bölümüne bakın.terraform apply
Hizmet sorumlusunu oluşturduktan sonra ve azure_client_secret
çıkış değerlerini kopyalayınazure_client_id
; daha sonra bunlara ihtiyacınız olacaktır.
Değerini almak azure_client_secret
için dosyasını içeren main.tf
çalışma dizininde bulunan dosyasında değerini görün outputs.client_secret.value
terraform.tfstate
.
2. Adım: Hizmet sorumlusunu Azure Databricks çalışma alanına ekleme
Not
Aşağıdaki içerik, Azure Databricks çalışma alanı düzeyinde bir hizmet sorumlusu ekler. Azure Databricks çalışma alanınız kimlik federasyonu için etkinleştirildiyse, aşağıdaki içerik de hizmet sorumlusunu ilgili Azure Databricks hesabıyla otomatik olarak eşitler.
Terminalinizde boş bir dizin oluşturun ve ardından bu dizine geçin. Her ayrı Terraform yapılandırma dosyası kümesi kendi dizininde olmalıdır. Örneğin:
mkdir terraform_databricks_service_principal_demo && cd terraform_databricks_service_principal_demo
.mkdir terraform_databricks_service_principal_demo && cd terraform_databricks_service_principal_demo
Bu boş dizinde adlı
main.tf
bir dosya oluşturun. Bu dosyaya aşağıdaki içeriği ekleyin ve dosyayı kaydedin.variable "databricks_host" { description = "The Azure Databricks workspace URL." type = string } variable "azure_client_id" { type = string description = "The application (client) ID of the <entra-service-principal> to link to an Azure Databricks service principal. This application (client) ID will be the application ID of the Azure Databricks service principal." } variable "databricks_service_principal_display_name" { type = string description = "A workspace display name for the Azure Databricks service principal." } terraform { required_providers { databricks = { source = "databricks/databricks" } } } provider "databricks" { host = var.databricks_host } resource "databricks_service_principal" "sp" { application_id = var.azure_client_id display_name = var.databricks_service_principal_display_name } output "databricks_service_principal_application_id" { value = databricks_service_principal.sp.application_id description = "Application ID of the Azure Databricks service principal." } output "databricks_service_principal_display_name" { value = databricks_service_principal.sp.display_name description = "Workspace display name of the Azure Databricks service principal." } output "databricks_workspace_service_principal_id" { value = databricks_service_principal.sp.id description = "Workspace ID of the Azure Databricks service principal. This ID is generated by Azure Databricks for this workspace." }
Not
Bu hizmet sorumlusunu gruplara eklemek ve bu hizmet sorumlusuna yetkilendirmeler eklemek için Terraform web sitesindeki databricks_service_principal bakın.
Aynı dizinde adlı
terraform.tfvars
bir dosya oluşturun. Bu dosyaya aşağıdaki içeriği ekleyin, aşağıdaki değerleri değiştirip dosyayı kaydedin:databricks_host
değerini Azure Databricks çalışma alanının URL'si ile değiştirin.azure_client_id
değerini 1. Adımdakiazure_client_id
değerle değiştirin.databricks_service_principal_display_name
değerini Azure Databricks hizmet sorumlusunun çalışma alanı görünen adıyla değiştirin.
databricks_host = "<The Azure Databricks workspace URL, starting with https://>" azure_client_id = "<The Azure client ID of the Azure Active AD service principal>" databricks_service_principal_display_name = "<A workspace display name for the Azure Databricks service principal>"
komutunu çalıştırarak dosyayı içeren
main.tf
çalışma dizininiterraform init
başlatın. Daha fazla bilgi için terraform web sitesindeki Command: init bölümüne bakın.terraform init
komutunu çalıştırarak
terraform validate
yapılandırmada söz dizimi hataları olup olmadığını denetleyin. Daha fazla bilgi için bkz . Terraform web sitesinde Komut: doğrulama .terraform validate
komutunu çalıştırarak
terraform apply
yapılandırmanın istenen durumuna ulaşmak için gereken değişiklikleri uygulayın. Daha fazla bilgi için Terraform web sitesinde Command: apply bölümüne bakın.terraform apply
Hizmet sorumlusunu oluşturduktan sonra, hizmet sorumlusu için bir Microsoft Entra Id belirteci oluşturmak için ihtiyacınız olacağı için çıkış değerini kopyalayın databricks_service_principal_application_id
.
(İsteğe bağlı) 3. Adım: Microsoft Entra ID hizmet sorumlusu için Microsoft Entra Id (eski adıYla Azure Active Directory) erişim belirteci oluşturma
Databricks, Microsoft Entra Id hizmet sorumluları için Microsoft Entra Id (eski adı Azure Active Directory) belirteçlerini el ile oluşturmanızı önermez. Bunun nedeni, her Microsoft Entra Id belirtecinin kısa süreli olması ve genellikle bir saat içinde süresinin dolmasıdır. Bu süreden sonra, el ile yeni bir Microsoft Entra Id belirteci oluşturmanız gerekir. Bunun yerine, Databricks istemcisi birleşik kimlik doğrulama standardını uygulayan katılımcı araçlardan veya SDK'lardan birini kullanın. Bu araçlar ve SDK'lar, aşağıdaki Databricks kimlik doğrulama türlerinden yararlanarak süresi dolan Microsoft Entra ID belirteçlerini sizin için otomatik olarak oluşturur ve değiştirir:
- Azure yönetilen kimlikleri kimlik doğrulaması
- Microsoft Entra ID hizmet sorumlusu kimlik doğrulaması
- Azure CLI kimlik doğrulaması
Microsoft Entra ID hizmet sorumlusu için el ile Microsoft Entra ID belirteci oluşturmanız gerekiyorsa, aşağıdaki bilgileri toplayın ve Microsoft kimlik platformu REST API ile Microsoft Entra ID erişim belirteci alma veya Azure CLI ile Microsoft Entra ID erişim belirteci alma başlığı altındaki yönergeleri izleyin:
- Yönergelerde Kiracı Kimliği / Dizin (kiracı) kimliği olarak kullanacağınız Microsoft Entra Id hizmet sorumlunuzun kiracı kimliği /
<tenant-id>
. Kiracı kimliğini almak için bkz . Azure portalında hizmet sorumlusu sağlama. databricks_service_principal_application_id
Adım 2'deki ve yönergelerde İstemci Kimliği / Uygulama (istemci) Kimliği /<client-id>
olarak kullanacağınız değer.azure_client_secret
Adım 1'deki ve yönergelerde İstemci gizli anahtarı / Değer /<client-secret>
olarak kullanacağınız değer.
Microsoft Entra Id belirtecini oluşturduktan sonra, betiğinize, uygulamanıza veya sisteminize sağlamanız gerekeceği için değeri kopyalayın access_token
.
(İsteğe bağlı) 4. Adım: Microsoft Entra ID hizmet sorumlusu için Azure Databricks OAuth belirteci oluşturma
Databricks, Microsoft Entra ID yönetilen hizmet sorumluları için Azure Databricks OAuth belirteçlerini el ile oluşturmanızı önermez. Bunun nedeni, her Azure Databricks OAuth belirtecinin kısa süreli olması ve genellikle bir saat içinde süresi dolmasıdır. Bu süreden sonra, el ile yeni bir Azure Databricks OAuth belirteci oluşturmanız gerekir. Bunun yerine, Databricks istemcisi birleşik kimlik doğrulama standardını uygulayan katılımcı araçlardan veya SDK'lardan birini kullanın. Bu araçlar ve SDK'lar, OAuth makineden makineye (M2M) kimlik doğrulamasını kullanarak süresi dolan Azure Databricks OAuth belirteçlerini sizin için otomatik olarak oluşturur ve değiştirir.
Microsoft Entra ID hizmet sorumlusu için el ile Azure Databricks OAuth belirteci oluşturmanız gerekiyorsa bkz . OAuth makineden makineye (M2M) kimlik doğrulaması için el ile erişim belirteçleri oluşturma ve kullanma.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin