Добавление ключевых областей хранилища для azure блоков данных, имеющих проблемы - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь автоматизировать добавление области видимости Keyvault для Azure службы DataBricks.

Пытался использовать пример из здесь

Код

$Region = "southindia"
$ResID = "/subscriptions/*******/resourceGroups/******/providers/Microsoft.KeyVault/vaults/testkv123d"
$databricsOrgId = **********


Connect-Databricks -Region $Region -DatabricksOrgId $databricsOrgId `
    -ApplicationId ************ `
    -Secret ************ -TenantId ************  -Verbose

Connect-Databricks -Region $Region -ApplicationId ************** `
            -Secret ****************** `
            -ResourceGroupName ******* `
            -SubscriptionId ****************************** `
            -WorkspaceName *********** `
            -TenantId ********** -Verbose

Add-DatabricksSecretScope -ScopeName "kvscope" -Verbose -KeyVaultResourceId $ResID

Сведения о выпуске

VERBOSE: POST https://southindia.azuredatabricks.net/api/2.0/secrets/scopes/create with -1-byte payload
Invoke-RestMethod : {"error_code":"INTERNAL_ERROR","message":"There was an internal error handling request POST to /api/2.0/secrets/scopes/create. Please try again later."}
At C:\Program Files\WindowsPowerShell\Modules\azure.databricks.cicd.tools\2.0.55\Public\Add-DatabricksSecretScope.ps1:73 char:9
+         Invoke-RestMethod -Method Post -Body $BodyText -Uri "$global: ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

1 Ответ

0 голосов
/ 22 января 2020

Согласно моим исследованиям, у нас нет способа создать Azure Key Vault-поддержанные области с REST API. Мы просто можем создать его в Azure интерфейсе Databricks. Другими словами, если мы предоставляем ключевой идентификатор ресурса хранилища при вызове REST API или CLI, API-интерфейс не может быть обработан внутренним сервером. Для получения более подробной информации, пожалуйста, обратитесь к документу enter image description here

Так что если вы используете модуль PowerShell для создания секретной области, вы можете просто создать Области при поддержке базы данных .

Например 1. Создание нового принципала службы . Кроме того, обратите внимание, что сделайте участника-участника службы участником вашей рабочей области Databricks, используя блейд Access Control (IAM) на портале Azure. *

Сценарий
$region="your workspace region"
Connect-Databricks -Region $region -ApplicationId "<sp app id>" -Secret "<sp client secret>" `
            -ResourceGroupName "<  resource group name >" `
            -SubscriptionId "<subscription id>" `
            -WorkspaceName "<workspace  name>" `
            -TenantId "<your tenant id>"
$token = New-DatabricksBearerToken -LifetimeSeconds 3600 -Comment "Secret Scope Creation"
Add-DatabricksSecretScope -Bearer $token.token_value -Region $region -ScopeName "test11"  -AllUserAccess 
Get-DatabricksSecretScopes -Region $region -ScopeName "test11"

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...